Contracts
Robinhood Chain testnet, chain ID 46630. Mainnet is not deployed.
| Contract | Address |
|---|---|
AgoraVault |
0x62FE0Dd6c79Fd5c3BD71324a9381A5dA7bCF6343 |
AgoraOracle |
0xDf639c3Da24F570B343e30501c423Aac4078A2b7 |
AgoraPerps |
0xDC58a5638dc9c64473D61DB0E065EE2Df6590184 |
AgoraLend |
0xC253bD503Bfb6bB105EFecBDA26712d185d9B0e8 |
AgoraGacha |
0x88217977C7B290Ff74B663074CA9C52DecedAe8f |
| MockUSDG | 0x90426f3b86d32e662b758b2b3E9902aFA77373c1 |
The testnet deployment settles in a mintable test token, not real USDG. Testnet balances are valueless.
Upgradeability
Non-upgradeable. No proxy, no delegatecall, no admin key that can change contract logic after deployment. Ownership is Ownable2Step, so a transfer must be accepted by the incoming owner; production deploys hand ownership to a Safe.
The owner can configure market parameters within hard caps, pause draws, set royalties up to 10%, and rotate the treasury. The owner cannot mint tokens without a signed voucher, alter a settled position, change a committed draw sequence, or move a user's balance.
Oracle
Prices are posted by an N-of-M signer quorum. Each post carries a market id, price and timestamp, signed EIP-712 by each signer. The contract requires signatures from distinct signers in sorted order so the same key cannot be counted twice, rejects a price deviating from the previous one by more than the market's deviation cap, rejects posts closer together than the market's minimum interval measured on wall-clock time, and rejects timestamps more than 60 seconds in the future.
A single compromised signer cannot move a price. A quorum can, within the deviation cap and rate limit.
Audit
Not independently audited. The contracts carry a unit, fuzz and invariant test suite and an adversarial review was run against them, but no third-party audit has been performed.