A dead drop for tokens.

Send value without sending a wallet address.

Lock ETH or any token in a glass box. Protect it with a code, a date or an on-chain condition. Share the link — whoever opens it, claims it. No address exchanged, no one in between.

Drop a box
Checking Robinhood Chain

How it works

Three steps, one transaction each side.

A dead drop: you leave something in a place, you tell someone where. Here the place is a contract and the key is a link.

01

Drop

Pick the asset and the amount. Add a code, a date, a condition — or none of them. One transaction seals the box.

02

Share

The link carries the box's secret after the #, generated in your browser and stored nowhere. If you set a code, say it in person, by voice — anywhere but the link.

03

Open

The recipient opens the link, types the code if there is one, and picks any wallet to receive. Their browser signs, the box sends. Nobody needed their address before.

Three locks

Code, date, condition. Any of them, all of them.

Every lock is optional and they combine: a birthday gift that opens on the day, needs a code, and only for the wallet holding the family NFT.

A code

A passphrase the chain never sees. It is folded into the claim key with the link's secret through 300 000 rounds of PBKDF2 — guessing it offline needs the link and a lot of patience.

A date

Opens at a moment you choose — a birthday, a vesting date, Monday 9 am. Expires at another: after that nobody can claim it, and you take it back.

A condition

An on-chain rule checked at claim time. Built in: the recipient holds a token (or an NFT), or a cosigner you name has released it. Or plug in your own ICondition.

What the chain sees

A box is a public record. The key to it is not.

Every box is readable by anyone on Robinhood Chain. What opens it never touches the chain until the moment it opens.

On-chainDroplock.getBox(id)
sender
who dropped it
token · amount
what is inside — what actually arrived
key
an address: the claim key's, derived from link + code
unlockAt · expiresAt
the window
condition · args
the rule, if any, and what it needs
status
sealed · claimed · reclaimed
Never on-chain
  • The secret. 16 random bytes, born in your browser, living only after the # of the link.
  • The code. Typed by two people, hashed by two browsers, never sent anywhere.
  • The recipient. Chosen at the moment of claiming, by the one claiming. The signature names them; a copied transaction cannot.
// contracts/conditions/ICondition.sol interface ICondition { function validate(bytes args) view returns (bool); function check(uint256 boxId, address recipient, bytes args, bytes proof) view returns (bool); }

Questions

The parts worth asking about.

Is this custodial?+

No. The contract has no owner, no admin function and no fee. It can only pay the address a valid claim signature names, or return a box to its sender after expiry. Its address is the same on every chain that has the CREATE2 proxy, and anyone can put it there from /deploy.

What if the link leaks?+

A link is a bearer instrument: whoever has it can claim, exactly like cash in an envelope. For anything that matters, add a code (told separately) and an expiry. A leaked link with a code still needs the code.

Can I cancel a drop?+

Not before it expires — that is what lets a recipient trust a box. Set the expiry you can live with; 30 days is the default. After it, Reclaim returns the tokens to you. A box with no expiry that nobody opens stays sealed forever.

Can a bot front-run a claim?+

No. The claim signature names the recipient; a transaction copied from the mempool towards another address is refused. The transaction can even be sent by someone else on the recipient's behalf — a relayer paying gas.

What does it cost?+

Gas. The contract takes nothing, and there is no account to create.

I lost the link.+

The secret exists only in the link. Nobody — including this site — can regenerate it. The box waits until its expiry, then you reclaim it. No expiry means no way back; the form says so before you drop.

Which tokens?+

ETH and any ERC-20. Fee-on-transfer tokens work: the box records what actually arrived, and pays out exactly that.

Why this name?+

A working title. "Dropbox" belongs to Dropbox, Inc., so the project ships as DROPLOCK; the name lives in one file and changes in a minute.