Contracts
Four contracts on Robinhood Chain. They are new. No owner, no admin, no pause, no upgrade, no sweep and no fee in any of them.
| Contract | Address | Does |
|---|---|---|
| LockerTimeChest | Not deployed yet | Vesting streams and fixed-date locks. Holds deposits until the rules release them. |
| LockerDropTree | Not deployed yet | Merkle airdrops. Holds a drop's deposit until it is claimed, or reclaimed after the stated end. |
| LockerBulkRoute | Not deployed yet | Bulk sends. Holds nothing: tokens go straight from the sender to each recipient. |
| LockerStakeYard | Not deployed yet | Team-funded staking pools. Holds stakes and unspent budgets. |
What the code guarantees
- A balance moves only for the party the rules name: recipient, lock owner, claimant, staker, or sender and funder where stated.
- What is credited is what actually arrived: at deposit, a token that delivers less than asked is refused. A tax switched on later is not stopped.
- Every entry point is guarded against reentry, and state changes before tokens move.
- Each token, stream and drop is accounted apart. A hostile token can only misbehave with itself.
What it cannot do
- It cannot stop a token issuer from blocking an address, pausing a token or burning a balance.
- It cannot see an airdrop list, so a sender's own row looks like any other.
- It cannot rescue anything. See the risks.
Check a deployment yourself
cd contracts && ./setup.sh && forge test forge build --force && cd .. && npm run contracts:artifacts -- --check npm run verify-deployment -- --chest <address> --chest-tx <creation tx> ...
The script compares the code at each address, byte for byte, with this build. The list in a machine-readable form is at /contracts.json.