Most users don’t need this. In the Arcus testnet web app, connect your wallet and click Testnet Deposit to instantly credit ~$1,000 USDC of paper-trading collateral — that’s enough for nearly everything. This guide is for API traders who need a larger balance, or who want to fund programmatically as part of a test harness.
The flow
Funding is an on-chain deposit on Robinhood Chain testnet. The exchange credits your trading account automatically once it observes the deposit on-chain (typically under a minute). The steps never change:Mint the collateral token
The testnet collateral token (
USDG) has an open mint — anyone can mint themselves test tokens. Mint the amount you want to deposit.Approve the deposit proxy
Approve the deposit proxy contract to pull your
USDG. The spender is the deposit proxy, not the bridge.Call `initiateDeposit`
Call
initiateDeposit on the deposit proxy. It pulls your USDG, wraps it into the margin token, and forwards it to the bridge. owner must equal the wallet that signs the transaction.Wait for the credit
Poll
GET /v1/account until your balance reflects the deposit. It also shows up as an APPLIED DEPOSIT on GET /v1/accountTransferUpdates.initiateDeposit → wait — is stable. The contract addresses below are not.
Testnet parameters
You only ever interact with two contracts: the collateral token (USDG) and the deposit proxy. The proxy forwards to the bridge internally, so you never call the BridgeVault directly.
| Parameter | Value (testnet, verify before use) |
|---|---|
| Chain ID | 46630 |
| RPC URL | https://rpc.testnet.chain.robinhood.com |
USDG — collateral token (MockERC20, 6 decimals, open mint) | 0x022f49dbd588908b5a1805886c2107f0315223b4 |
PaxosDepositProxy — deposit entry point | 0x10096bec721173f70add303affc235d7c99fbfd4 |
$1,000 = 1000000000, $100,000 = 100000000000.
Your wallet also needs a small amount of RH-testnet ETH (≈0.001) to pay gas for the cast send transactions below.
Deposit with cast
Using Foundry’s cast. $KEY / $ADDR are the depositing wallet’s private key / address:
initiateDeposit arguments are (owner, accountIndex, token, amount). Use accountIndex 0 unless you trade a non-default subaccount, and token must be the USDG address (the proxy rejects anything else with WrongToken).
Verify
Testnet accounts may already show a small seed balance, so assert the delta (balance after − balance before), not the absolute value.
Troubleshooting
| Symptom | Cause / fix |
|---|---|
initiateDeposit reverts with WrongToken | The token argument must be the USDG address. If it already is, the configured underlying may have changed — confirm the current addresses. |
| Reverts on transfer / allowance | The approval (step 2) must be on USDG with the PaxosDepositProxy as spender — not the bridge. Re-run step 2. |
intrinsic gas too low / max fee per gas less than base fee | Top up the wallet’s RH-testnet ETH and retry; the base fee can rise between blocks. |
| Transaction succeeds but no credit appears | Confirm the deposit tx landed on-chain. If it did and the balance still hasn’t moved after a minute, the deposit wasn’t observed — flag it to the Arcus team with your wallet address. |