Skip to main content
Register a managed account, deposit USDC on one chain, and receive it on another.
Building in React? The deposit widget ships this flow as a component — UI, funding methods, withdrawals and refunds included — on top of the same API.
This runs on mainnet and moves real funds. The deposit step below sends 1 USDC — keep it small until the flow works end to end.

Prerequisites

1

Configure your client

Set up gas sponsorship so deposit bridging is covered. This is a one-time call per API key.
You should see Setup: 200.
2

Register a managed account

Register a server-managed account with a target chain and token. The service creates a smart account deterministically from your API key and the salt you provide, and returns deposit addresses.
You should see two deposit addresses printed. The evmDepositAddress is where users send tokens on any supported EVM chain.
3

Verify registration

You should see:
4

Deposit tokens

Transfer USDC to the deposit address on Arbitrum. The deposit service detects it and bridges it to Base automatically.
5

Check deposit status

Poll the deposits endpoint by transaction hash to track the bridging progress. See status tracking for the full response schema.
Once bridging completes, the deposit status changes to completed and includes the destination transaction hash. The USDC is now at the recipient address on Base.

Next steps

Initial setup

Webhooks, sponsorship rules, and deposit whitelists.

Account registration

User-owned accounts, session configuration, and output token rules.

Deposit processing

Deposit lifecycle, retries, and status tracking.

Status tracking

Track deposits via polling or webhooks.