Skip to content
Docs / Addresses

Build on Ordeo

Networks, addresses and how to check a deployment

Ordeo runs on Robinhood Chain mainnet. Nothing is deployed yet: every address below reads “Not deployed yet” until it is set in the site’s contract configuration.


On this page

Network

SettingValue
NetworkRobinhood Chain mainnet
Chain id4663 (0x1237)
Native currencyETH, 18 decimals
Public RPChttps://rpc.mainnet.chain.robinhood.com
Fallback RPC (reads)https://robinhood-rpc.publicnode.com
Explorerhttps://robinhoodchain.blockscout.com

Ordeo contracts

ContractAddress
ORDEO tokenNot launched yet
OrdeoShroudNot deployed yet
OrdeoTradeDeskNot deployed yet
OrdeoYieldSplit0xd9cbcd9648d3eca02be499cbf0dab89339d54c76
OrdeoKeyLedger0x0e34be7e115e7e76354fd3bd47b300ea250bc349
OrdeoAttestor0xcfb6a0246527b6a382270c03bd5f3d8283d230f5
OrdeoSponge20xa10d8b060347400aabfc16d338d649650d637279
OrdeoSponge30xfffa4c17744afeff68eadd13f89746d55fdd9b56
OrdeoChallengeLog0xd0aaabd9477d05d76063cf42a1b014932cc68281
OrdeoConstraintSum0x739573d3836b88f5d720eceee738450861679f61
Pool deployment blockNot deployed yet

Addresses are set in one place, src/config/contracts.ts, and the token address in src/config/brand.ts. While the pool, its deployment block and the real token address are empty, the app runs in practice mode and sends no transactions.

Pons and Uniswap v4 addresses

ContractAddress
Launch factory (Pons V2)0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
Pons meme hook (v4 hook)0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044
Uniswap v4 quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94
Universal router0x8876789976dEcBfCbBbe364623C63652db8C0904
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3

Each of these was checked to have code on Robinhood Chain mainnet. They belong to Pons and Uniswap, not to Ordeo.

Deploy order and constructor arguments

  1. 01

    OrdeoSponge2, OrdeoSponge3

    Hash libraries (poseidon-solidity 0.0.5, MIT, unmodified). No arguments.

  2. 02

    OrdeoChallengeLog, OrdeoConstraintSum

    Libraries of the generated verifier. No arguments.

  3. 03

    OrdeoAttestor

    No arguments; linked to OrdeoChallengeLog and OrdeoConstraintSum. The verification key is compiled in.

  4. 04

    OrdeoKeyLedger

    No arguments.

  5. 05

    OrdeoYieldSplit

    (address team, address holders, address ponsFactory). Team and holders must differ from each other and from zero; the factory must have code and report a fee escrow with code. holders is the harvester’s wallet.

  6. 06

    Launch ORDEO on Pons

    With the splitter as creator fee recipient, paired with ETH. This fixes the token address.

  7. 07

    OrdeoShroud

    (address verifier, address token, address feeSink, uint256 shieldFeeBps, uint256 transferFeeBps, uint256 unshieldFeeEth, uint256 unshieldFeeToken), linked to OrdeoSponge2 and OrdeoSponge3. feeSink is the splitter. Proposed values: shield 10 bps, transfer 10 bps, 0.0001 ETH and 10 ORDEO (times the token’s decimals). The owner confirms them before deploying.

  8. 08

    OrdeoTradeDesk

    (address ponsFactory, address poolManager, address pool). All three must have code; the token is read from the pool.

Checking an address with verify-deployment

npm run verify-deployment -- <address> [--kind <contract>] [--tx <creation tx>] [--rpc <url>]
  • It compares the deployed runtime code byte for byte with the build committed in this repository (npm run contracts:artifacts -- --check proves that file is a fresh build).
  • Only three kinds of bytes may differ, and each is then checked on its own: a library’s own address, linked library addresses (each verified the same way) and immutables, decoded by name and compared to their expected values.
  • The contract kind is taken from --kind or found by exact match, never guessed from size.
  • With --tx, the creation input must equal this build’s creation code followed by constructor arguments equal to the deployed immutables.

Any failure exits non-zero.

Verifying source on Blockscout

Source verification on https://robinhoodchain.blockscout.com must use exactly the build settings in contracts/foundry.toml:

SettingValue
Compilersolc 0.8.28
OptimizerOn, 200 runs
EVM versionparis
via-IROff
Metadata hashNone (no CBOR metadata appended)
  1. Open the contract’s address on the explorer and choose to verify and publish its source.
  2. Use the Solidity standard JSON input. Foundry prints it with forge verify-contract --show-standard-json-input.
  3. Give the library addresses: OrdeoSponge2 and OrdeoSponge3 for the pool, OrdeoChallengeLog and OrdeoConstraintSum for the verifier.
  4. Paste the ABI-encoded constructor arguments, the same ones verify-deployment checks.
  5. Verify the libraries first, then the verifier, registry and splitter, then the pool and router.