GravFi
Operator · deployment

Deploy GravFi contracts

Real deployments signed by your wallet, one transaction per step, on Ethereum and Robinhood Chain. Nothing is simulated; addresses come from receipts and the plan resumes where you left off.

Deploy plan · USDC → gUSDC · mainnet
Mainnet · real funds
Every step below is a real transaction paid from your wallet on Ethereum or Robinhood Chain. Your wallet becomes admin, pauser and relayer. Use a wallet you control; consider moving admin to a multisig afterwards.
Connect the wallet that will own the deployment.
  1. Deploy GravRelayMessenger on Robinhood ChainRobinhood Chainreused 0xB98527…
    localEid 4663 · admin = your wallet
  2. Deploy GravBridge on Robinhood ChainRobinhood Chainreused 0x82efb3…
    messenger = destination messenger · remoteEid 1
  3. messenger.setBridge(bridge)Robinhood Chain
    The destination messenger only accepts sends from the destination bridge.
  4. messenger.grantRole(RELAYER_ROLE, wallet)Robinhood Chain
    Lets this wallet deliver messages from the Bridge page or scripts/relayer.mjs.
  5. 5
    Deploy GravToken gUSDCRobinhood Chain
    "GravFi USD Coin" · 6 decimals · no public mint
  6. 6
    gUSDC.grantRole(BRIDGE_ROLE, bridge)Robinhood Chain
    Only the bridge may mint or burn.
  7. 7
    bridge.setRoute(gUSDC → USDC, Token)Robinhood Chain
    Registers the unwrap route on Robinhood Chain.
  8. Deploy GravRelayMessenger on EthereumEthereumreused 0xecC3bb…
    localEid 1 · admin = your wallet
  9. Deploy GravBridge on EthereumEthereumreused 0xEaab9A…
    messenger = source messenger · remoteEid 4663
  10. messenger.setBridge(bridge)Ethereum
    The source messenger only accepts sends from the source bridge.
  11. messenger.grantRole(RELAYER_ROLE, wallet)Ethereum
    Needed to deliver unwraps back to the source chain.
  12. 12
    Deploy GravVault for USDCEthereum
    Single-asset custody · BRIDGE_ROLE-only movements
  13. 13
    vault.grantRole(BRIDGE_ROLE, bridge)Ethereum
    Only the bridge may deposit into or withdraw from the vault.
  14. 14
    bridge.setRoute(USDC → gUSDC, Vault)Ethereum
    Registers the wrap route on the source chain. After this the bridge is live for this asset.
Addresses
Source token
0xA0b8…eB48
Messenger · source
0xecC3…1472
Bridge · source
0xEaab…6988
Vault
—
Messenger · destination
0xB985…5E70
Bridge · destination
0x82ef…47fA
gUSDC
—
Gas price · Ethereum: — · Robinhood Chain: —
Rough total: ~3.5M gas on the source chain, ~3.5M on Robinhood Chain per first asset.
When finished

Paste these into .env.local (or the Vercel production env) and rebuild. The interface verifies every address on-chain before enabling actions.

NEXT_PUBLIC_BRIDGE_PROVIDER=native
NEXT_PUBLIC_GRAV_MESSENGER_SOURCE=0xecC3bb68bCF41cA868e4B755e5b2DA369c231472
NEXT_PUBLIC_GRAV_MESSENGER_DESTINATION=0xB98527131E79e2Bb2389F58224665e8F5C335E70
NEXT_PUBLIC_GRAV_BRIDGE_SOURCE=0xEaab9Ad8abBDcc19fb144CB764CCd0B7Cc226988
NEXT_PUBLIC_GRAV_BRIDGE_DESTINATION=0x82efb33Ccb8C210AF617fe994E615EC7563947fA
NEXT_PUBLIC_GRAV_VAULT_USDC=
NEXT_PUBLIC_GRAV_TOKEN_USDC=