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 supported tokens 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 a supported token 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 tokens ──► Receiver Address ──► Orderly detects transfer

                                     Deploy proxy (if first time)

                                     Deposit into Vault atomically

                                     Balance credited to account

Supported Chains & Tokens

Supported chains and tokens are returned dynamically by the GET /v1/public/token endpoint. Check the chain_details for each token — entries where exclusive_deposit_supported is true are eligible for deposit via transfer.
ChainChain IDSupported TokensMinimum Deposit
Arbitrum42161USDC, USDT5
BNB Chain56USDC, USDT5
Only the chain + token combinations listed above are supported. Sending unsupported tokens or transferring on unsupported chains will result in permanent loss of funds with no recovery path.

Smart Contract Addresses

ChainDepositFactoryDepositBeaconImpl
Arbitrum (42161)0x8dCBDFF1758d9Bd77b37ff78982912C35FDc2F210x43001EF2e62Ac260FA78D5a0Af8787261e4D82F9
BNB Chain (56)0x8dCBDFF1758d9Bd77b37ff78982912C35FDc2F210xDE5C8345DD0Ce07eb0c7A210F307Ae6DB61584cb
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 with the desired chain_id and token to retrieve the user’s unique receiver address. This address is deterministic and will not change.The response includes receiver_address, token_address, and minimum_deposit for the requested chain + token combination.
This is a private endpoint — all receiver address APIs require standard Orderly authentication headers.
2

User transfers tokens to the receiver address

The user sends the requested token (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 transfer status

After the user transfers, poll Get Receiver Events to track the deposit status. We recommend polling every 10 seconds.Status values:
StatusMeaning
PENDINGTransfer detected, waiting for processing
PROCESSEDDeposit transaction submitted on-chain
COMPLETEDFunds credited to account
FAILEDDeposit failed (auto-retries in progress)
Only transfers with amount >= minimum_deposit are returned.
4

Verify the deposit

Once the status is COMPLETED, the balance is credited. You can confirm 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 the minimum deposit threshold are treated as dust and will not be deposited or refunded. The funds remain in the receiver contract with no recovery mechanism.
Only supported chain + token combinations are accepted. Sending any other token or transferring on an unsupported chain will result in permanent loss — there is no recovery path. Check GET /v1/public/token for currently supported combinations.
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.