4.0Access & security
Contracts
Three contracts on Robinhood Chain. None has an owner, a fee or an upgrade path. Addresses appear here once deployed.
Addresses
| Contract | Address |
|---|---|
| KiboraLatticeBook | 0xf3a84cf49f5c753b41bd9e6c414a98d306a8a1e4 |
| KiboraWardForge | 0x3af8b0955eb904a591ecad868e8657d0f5107c7a |
| KiboraWard | one per user, opened by the forge |
KiboraLatticeBook
- publish(uint8 suite, bytes key): stores your key for a suite after checking its exact FIPS length; emits KeyPublished(account, suite, version, keyHash, key).
- revoke(uint8 suite): removes it; emits KeyRevoked.
- keyOf(account, suite), keyHashOf, suitesOf, versionOf, activeKeys, publishCount: reads.
- Suites: 1-3 ML-KEM-512/768/1024, 4-6 ML-DSA-44/65/87, 7-8 SLH-DSA-SHA2-128f/s.
KiboraWardForge and KiboraWard
- forge.open(guardian, haven, delay): opens a ward with you as keeper; delay between 1 hour and 30 days; the three roles must differ. Emits WardOpened.
- ward.queue(asset, to, amount): keeper only; asset 0x0 is ETH. Emits ExitQueued with readyAt.
- ward.execute(id): keeper only, after readyAt, unless cancelled or voided.
- ward.cancel(id): keeper or guardian.
- ward.evacuate(asset): keeper or guardian; sends the whole balance to the haven and voids every earlier queued transfer.
Verifying a deployment
The open-source repository includes a script that compares deployed code byte for byte with this build, checks the creation transactions and decodes a ward's fixed roles:
shell
npm run verify-deployment -- --book <address> --book-tx <hash> --forge <address> --forge-tx <hash> npm run verify-deployment -- --forge <address> --forge-tx <hash> --ward <address> \ --keeper <a> --guardian <a> --haven <a> --delay <seconds>