LEGACY
Onchain time capsules · Robinhood Chain · chain 4663

The contract waits.
You set the date.

Seal ETH, tokens or NFTs for any wallet, with a message, until a timestamp you choose. No custodian, no admin key, no early exit.

Public browsing is open. Sealing costs 0.001 ETH. One signature.
See a gift card
SCROLL
LEGACY / 000

The capsule is a struct.
The timestamp moves the asset.

LEGACY keeps the asset, the beneficiary, the unlock time and the message as four fields in one storage struct. The website is just a window on the contract, and it can disappear without breaking a single capsule.

03asset types: ETH, tokens and stocks, NFT
00admin withdrawal paths
01signature to seal ETH
LEGACY / 001

Four leaves. One rule.

Scroll to turn
Lifecycle leaf / 0101 / 04
01

Seal

createEthCapsule(beneficiary, unlockAt, revocable, title, message). Asset and fee travel in the same transaction. One signature.

Creator signedCapsuleCreated
Fee 0.001 ETHPublic by design
Lifecycle leaf / 0202 / 04
02

Wait

block.timestamp < unlockAt reverts with TooEarly(). The contract holds. Nobody can shorten the lock, not even the owner.

TooEarly()Public by design
Held by codeNo early exit
Lifecycle leaf / 0303 / 04
03

Claim

claim(id) checks the beneficiary, checks the timestamp, flips the flag, moves the asset, emits CapsuleClaimed. The beneficiary signs once.

Beneficiary signedPublic by design
nonReentrantCapsuleClaimed
Lifecycle leaf / 0404 / 04
04

Reveal

The message reveals on the public gift card, with the receipt and the transaction hash. Messages are public calldata, never secrets.

Gift cardPublic by design
/gift/[id]Calendar export
LEGACY / 002

Connect a wallet. Seal what it already holds.

No minting, no NFT required. The app reads the connected wallet, lists ETH, every ERC-20 balance including tokenized stocks on Robinhood Chain, and any NFT, and you pick what to seal. Three entry points, one storage struct, one claim path.

01

ETH

Asset and creation fee travel in one transaction. Direct transfers to the contract revert, so the only way in is createEthCapsule.

createEthCapsulepayable1 signature
02

Tokens and stocks

Any ERC-20, including tokenized stocks issued on Robinhood Chain. Approve, then create. Fee-on-transfer tokens are balance-accounted at entry.

createERC20Capsuleapprove + createstock tokens
03

NFT, optional

For collectibles and deeds only. The NFT is received through a guarded onERC721Received that accepts the expected token, sender and id.

createERC721Capsuleguarded receiptoptional path
LEGACY / 003

The owner cannot touch a capsule.

Owner powers stop at the creation fee, capped at 0.01 ETH, the fee recipient and ownership transfer. No proxy, no upgrade path, no library imports.

  • Owner cannot withdraw or move any capsule asset
  • Owner cannot change a beneficiary or an unlock time
  • Owner cannot claim, cancel or pause a capsule
  • receive() and fallback() revert. nonReentrant on create, claim, cancel
CAPSULE / LEGACY #0042
1.00 ETH irrevocable
sealed
creator0x71B8…EB20signed create
beneficiary0xa913…6aB4only claimer
unlockAt2 351 116 800 · 2044hard gate
revocablefalsefinal
claim()reverts TooEarly()until unlockAt
Open a receipt
LEGACY / 004

The guarantee, in seven lines.

The whole security model fits in one function. Beneficiary check, timestamp check, state update, transfer, event. Reentrancy guard on top.

function claim(uint256 id) external nonReentrant {    Capsule storage c = _open(id);    if (msg.sender != c.beneficiary) revert Unauthorized();    if (block.timestamp < c.unlockAt)  revert TooEarly();    c.claimed = true;    _transferAsset(c, c.beneficiary);    emit CapsuleClaimed(id, c.beneficiary);}
Messages are public calldata. The interface hides them until unlock, but they are not encrypted. Never store a seed phrase or a password in a capsule. The contract is not independently audited.
LEGACY / 005

Every state change becomes a receipt.

The app links the create, claim, cancel and beneficiary-update transactions, and every capsule has a public receipt page and a gift card.

ActionFunctionWhoCheckStatusReceipt
sealcreateEthCapsulecreatorfee + unlockAt > nowwallet signedCapsuleCreated
waitclaimanyoneblock.timestamp < unlockAtreverts TooEarlyno state change
claimclaimbeneficiarysender + timestampwallet signedCapsuleClaimed
cancelcancelcreatorrevocable == truewallet signedCapsuleCancelled
reassignupdateBeneficiarycreatorrevocable == truewallet signedBeneficiaryUpdated
LEGACY / 006 · Programmable V2

When time is not the only condition.

A V2 capsule holds one to four conditions that must all pass inside claim(): TIME, PRICE from an AggregatorV3 oracle with a staleness window, ERC20_BALANCE, ERC721_OWNER. ETH and ERC-20 capsules can roll a percentage forward into a child capsule with a new lock.

TIME ≥ 2044-06-30ANDPRICE ETH/USD ≥ 10 000ANDHOLDS ≥ 1 000 GOVrollover 25% → child capsule
Oracle

Price gate

Chainlink-style latestRoundData, rejected when stale or when decimals exceed 36.

Balance

Still holding

Released only if the beneficiary still holds the governance token at claim time.

Rollover

Child capsule

A share rolls into a new capsule with its own unlockAt. Vesting without a vesting contract.

LEGACY / 007 · live from the contract

The inbox is the marketplace of time.

Every capsule addressed to the connected wallet, with a live countdown, a claim button that activates at unlock, and a calendar export.

Open future inbox
Capsules sealed
Creation fee0.001ETH
Hard fee cap0.01ETH
Chain id4663
Admin paths0
Reading the contract…Live data comes straight from Robinhood Chain.
LEGACY / 008

Seal your first capsule. One signature.

Lock today. Reveal tomorrow. Live forever. Start with a tiny, short-duration ETH capsule, confirm the early claim reverts, then use meaningful funds.

Contract 0xaeaa…a3f1 · Robinhood Chain · fee 0.001 ETH · not audited yet