Skip to main content
Each Orderly account is assigned an exclusive receiver address — a unique, deterministic deposit address. Users can fund their perp account by simply sending USDC to this address, from a wallet, CEX withdrawal, or any on-chain transfer. No gas tokens, wallet connection, or smart contract interaction is needed on the user’s side.

How It Works

Each user gets a unique receiver address derived via the CREATE2 algorithm. When USDC lands at that address, Orderly’s backend automatically detects the transfer, deploys a minimal proxy contract (if needed), and deposits the funds into the Vault — all in a single atomic transaction paid for by the platform.
User sends USDC ──► Receiver Address ──► Orderly detects transfer

                                    Deploy proxy (if first time)

                                    Deposit into Vault atomically

                                    Balance credited to account

Supported Chains & Tokens

ParameterValue
ChainArbitrum (chain ID: 42161)
TokenUSDC
Minimum deposit5 USDC
Only USDC on Arbitrum is supported. Sending other tokens or transferring on other chains will result in permanent loss of funds with no recovery path.

Smart Contract Addresses

ContractArbitrum Mainnet Address
DepositFactory0x8dCBDFF1758d9Bd77b37ff78982912C35FDc2F21
DepositBeaconImpl0x43001EF2e62Ac260FA78D5a0Af8787261e4D82F9
The DepositFactory acts as a beacon that stores the current implementation address. Each user’s receiver address is a lightweight DepositProxy that delegates to the DepositBeaconImpl for deposit logic. Proxies are deployed on-demand during the first deposit.

Integration Flow

1

Get the user's receiver address

Call Get Receiver Address to retrieve the user’s unique receiver address. This address is deterministic and will not change.The response includes receiver_address, token_address (USDC contract), and minimum_deposit.
2

User transfers USDC to the receiver address

The user sends USDC (ERC-20 transfer) to the receiver_address returned above. This can be done from:
  • Any EVM wallet (MetaMask, Rabby, etc.)
  • A CEX withdrawal (Binance, OKX, etc.)
  • A smart contract or multisig
No approval or special transaction format is needed — a standard ERC-20 transfer is all it takes.
The transfer amount must meet or exceed the minimum_deposit value returned by Get Receiver Address. Transfers below this threshold are treated as dust — they will not be deposited, refunded, or recoverable.
3

Poll for pending transfers

After the user transfers, poll Get Receiver Events to check for pending transfers. We recommend polling every 10 seconds.This endpoint returns transfers that have been detected but not yet deposited into the Vault. Once a transfer is fully processed and credited, it is removed from this list.
Only transfers with amount >= minimum_deposit are returned. Dust transfers are ignored.
4

Verify the deposit

When a transfer disappears from receiver events, the deposit is complete. You can confirm the credited balance via the Get Asset History endpoint with side=DEPOSIT.

Eligibility

Not all accounts can use this feature:
RequirementDetail
Account typeMust be a regular account (not sub-accounts or Strategy Providers)
Chain typeMust be an EVM account (Solana accounts are not supported)
Error codes from GET /v1/client/asset/receiver_address:
CodeMeaning
82Chain ID does not exist
83Chain ID not supported for this feature
84Account type not eligible
86Solana accounts not supported

Limitations & Edge Cases

Transfers below 5 USDC are treated as dust and will not be deposited or refunded. The funds remain in the receiver contract with no recovery mechanism.
Only USDC on Arbitrum is supported. Sending any other token or transferring on an unsupported chain will result in permanent loss — there is no recovery path.
Yes. Each transfer is tracked and processed independently as a separate deposit record (1:1 mapping).
Most deposits complete within 1–2 minutes. If a deposit remains in PENDING for more than 15 minutes, contact support.
No additional fees are charged for deposits via transfer. The platform absorbs the gas cost.
No. The receiver address is deterministic (derived via CREATE2) and remains the same for the lifetime of the account.