Verify our contracts

Read the source. Rebuild it. Compare every runtime byte at the two addresses below, using an RPC provider you choose. No wallet connection or signing.

Robinhood chain 4663 · bound token 0xAF10A9639499aB029B05149844373091E3F7c975. These explicit addresses identify this deployment; this page is not a production-safety attestation.

Download source + build kit (ZIP)Read the verification instructions

ZIP SHA256 · File checksums · Machine-readable identity & snapshot

1. GM custody

GMContractCustodyV5 — holds the draw funds and implements commitment, settlement and the bound Pons integrations.

Deployed address
0x9f54c5b7372f4920368ed165f00de643bf5f5d73
Deployed runtime
8,155 bytes · Captured runtime hex
SHA256 of decoded runtime bytes
4413a71eeeb5212c58c1c4684f8c7abe541e2df3c0f1daafba85149ff8e50ee3
Deployment transaction · block 64454830
0x630bc658e63e5a28b5b2970020dcc9b1b2f78eae4b3fb039bf85ba787a7ebb6a
Source
GMContractCustodyV5.sol + GMContractCustody.sol

The rebuild fills 41 exact compiler slots across 10 immutable groups from the declared bindings, then compares the entire runtime. It does not ignore immutable regions. Exact immutable values · ABI, creation code, runtime templates and compiler slot map.

2. Drand quicknet verifier

GMDrandQuicknetVerifier — the stateless BLS verifier called by custody, with the quicknet key and chain hash in source. It has no immutable slots.

Deployed address
0x567a4a4e8aae79f4068fd65495e4fc465fe1c856
Deployed runtime
4,456 bytes · Captured runtime hex
SHA256 of decoded runtime bytes
e207cf195489a91e23ef50bd7ea6b4106ac086b5a7e42aa2e42871651da02815
Source & dependency
GMDrandQuicknetVerifier.sol, BLS2.sol and Precompiles.sol

bls-solidity commit 9e10df92d631fab9c46f0ce9cd5c445f857bedcb · MIT license · Original provenance. The BLS dependency is experimental and unaudited. Source matching is not a cryptography audit.

Reproduce the build

Solidity 0.8.34+commit.80d5c536, optimizer 200 runs, EVM cancun. Exact standard JSON settings, source names and embedded sources: solc-input.json. Compiler provenance: frozen official build entry.

Requires Python 3.9+ and the exact Linux x86-64 solc binary (not bundled); live reads also use curl. No pip/npm packages. The README includes compiler acquisition and independent provenance checks. A fresh-machine installation is not claimed.

In the extracted gm-contract-verification-kit directory, with your pinned compiler path:

python3 -I -B verify.py --solc /path/to/solc-0.8.34

This recompiles the sources and checks the included captured runtimes. Live chain: Not checked in offline mode. To compare against your own chain-4663 HTTPS RPC, set GM_RPC_URL locally, then run:

python3 -I -B verify.py --solc /path/to/solc-0.8.34 --rpc-env GM_RPC_URL

Only read calls are allowed. Wrong chain, corrupt source/input, wrong compiler, changed immutable value, any runtime-byte mismatch or unavailable RPC means failure (exit 1), not a partial pass. A successful live run prints the actual block number/hash checked.

The included snapshot was read at block 64473663 on 2026-09-16 at 11:29 UTC. It is historical evidence, not a continuously refreshed live badge. The provider's block hash was re-read; provider responses are not independent consensus proofs.

What the immutable bindings mean

Solidity nameBound role
PONS_ESCROWFee escrow
GM_TOKENAF10 token shown above
USDGQuote / payout token
RESERVE_SAFEReserve payout address
RECOVERY_SAFERecovery-authority address
COMMITTERCommitment-authority address
DRAW_VERIFIERDrand verifier shown above
MINIMUM_CLAIMABLE_USDG2500000 base units (2.5 USDG at 6 decimals)
PONS_CURVELaunch curve
PONS_FACTORYLaunch factory

The “SAFE” names do not establish multisig/Safe implementation or key control. Read all exact addresses and values.

What this does not prove

Explorer links are navigation, not explorer verification badges. The drand verifier is identified by exact address/runtime here, not an asserted original deployment receipt. Source and license notices.