Contracts
Small contracts, no owner, no upgrade path. Deployed on Robinhood Chain mainnet.
Addresses
| Contract | Address |
|---|---|
| GRAD10 vault | 0x8e775C4e621684e7DB8e491BE69445512bD8b4b1 |
| RWAX vault | 0x1C683a8b5092553956D97338819b5877184C0Ce9 |
| YLD1 vault | 0x8DC9D5a13235824D1B1533b9DC64472A8217358F |
| GraduationRegistry | 0x1F1b30651689a11BF7816F65cAB826965826209C |
| BootstrapExecutor | 0x93EaDB7bc0d9F985F4871eb8835Eaa7897C68C9C |
| Pons v2 factory (upstream) | 0xA5aAb3F0c6EeadF30Ef1D3Eb997108E976351feB |
The machine-readable list is at /api/contracts.
Architecture
IPonsV2
graduation facts, locked pool ids, depth
GraduationRegistry
permissionless listing, eligibility rules
YieldETFVault ×3
ERC-4626 shares, NAV, epoch rebalance
reads flow left to right; each vault delegates swaps and fee collection to its executor module
Sources are published and verifiable on Blockscout. The vault core is deliberately small enough to read in one sitting; swap execution and Uniswap v4 fee collection live behind an executor module set once at deployment.
GraduationRegistry
| Function | Who | What |
|---|---|---|
register(token) | anyone | lists a Pons v2 graduate, snapshots its pool |
refreshSnapshot(token) | anyone | updates the depth used for weighting |
isEligible(token) | view | listed, 7+ days old, 25+ ETH deep |
YieldETFVault
| Function | Who | What |
|---|---|---|
deposit() | anyone, payable | mints shares at NAV for the sent ETH |
redeem(shares) | holder | burns shares, pays ETH at NAV from idle balance |
rebalance() | anyone, once per epoch | harvests fees, recaps weights, pays the 0.002 ETH tip |
totalAssets() | view | idle ETH plus the executor's position mark |
The vault has no owner functions at all: no pause, no allowlist, no parameter setters. The constants (15% cap, 24h epoch, 0.002 ETH tip) are compiled in.