Vordium LabsDocs

Bridge

How USDC enters and leaves Vordium through one vault on Arbitrum One, how a payout is signed, and how anyone can check the reserves.

USDC on Vordium is Bridged USDC: backed 1:1 by USDC held in the Vordium vault. There is one vault, on Arbitrum One, and every account's USDC balance on Vordium is backed by what it holds.

Deposits and withdrawalsA deposit is USDC sent to the bridge vault on Arbitrum One, directly or through Circle's cross-chain transfer from another chain. The network sees the deposit and credits the account on Vordium. A withdrawal is signed by the account owner on Vordium; the validators sign the payout and the vault pays it on Arbitrum One.Your walleton Arbitrum or ArcBridge vaultArbitrum One · USDCYour Vordium accountcredited in USDCdepositseen, creditedWithdrawalsigned by the ownerPayoutsigned by the validatorsYour walletpaid on Arbitrum or Arcvault pays
Deposits and withdrawals

The contracts

FactMainnet
Vault chainArbitrum One
Vault chain id42161
Vault0x04D6f8b77A340b33d4bf04bE20dC96ec14d4A299
Deposit handler0x0ae6d8d70cC4B31B6D4A97e9058040f4F7E74F19
USDC token0xaf88d065e77c8cC2239327C5EDb3A432268e5831

The testnet has its own vault, on Arbitrum Sepolia, holding a test token: see Testnet.

The vault's code is verified on the chain's explorer. GET /bridge/v4/vaults serves the vault, its handler and the hash of their code, so a client can check it is talking to the right contracts.

Deposits

Whether deposits are open right now: —. The vault takes a deposit only while the network says deposits are open; a client must check depositsOpen for the chain the deposit is made on and treat anything other than true as closed.

  • From Arbitrum. Approve the vault to take the USDC, then deposit. The account credited on Vordium is the address that deposited. The validators see the vault's Deposited event and credit the account once the deposit is final on Arbitrum.
  • From Arc, Circle's chain, through Circle's cross-chain transfer (CCTP). The USDC is burned on Arc and minted into the deposit handler, which then deposits it into the vault for your account; no ETH is needed. Until the handler has processed it, the USDC sits in the handler — never lost, not yet credited.

Every deposit has a status at GET /bridge/v4/deposits/{address}: pending, credited, waiting (to be finished later with the same bytes), or not accepted with a reason. A deposit that is not accepted and is owed back can be claimed on Arbitrum by the address it is owed to.

Withdrawals

A withdrawal is signed by the account's own key — a trading key or an agent key can never withdraw. The account signs a WithdrawIntentV4 naming the amount, the recipient, the route and a deadline, and sends it to POST /bridge/v4/withdraw. Read the next nonce from GET /bridge/v4/withdraw-nonce/{account}.

The validators then sign the vault's payout message, and the vault pays only what the validators have signed — each payout at most once. Routes: paid on Arbitrum directly, or sent on through Circle's CCTP to another chain. For a CCTP route, show the reader Circle's fee before they sign.

The withdrawal fee is —; the amount must be larger than the fee, and the vault pays the amount less the fee. A payout reads pending until it is paid, then paid. Once ready, its exact vault call is served at GET /bridge/v4/withdrawal/{account}/{nonce}/call, so anyone — the account itself included — can send it.

Proof of reserves

GET /reserves reads the vault on its own chain and compares it with what Vordium owes: the USDC held, credited, paid, refunded, pending withdrawals, and whether the vault is solvent. It names the block of the vault's chain it read. Every credited deposit and every paid withdrawal is recorded on the chain, so anyone can recompute the figures.

Network facts last checked against the network 2026-10-22 13:00:37 UTC · mainnet spec v28 · testnet spec v8

On this page