403, even if
an address was provisioned previously. Development and staging skip this gate.
chain is the route family (evm, tron, or solana) from
GET /partner/wallets/chains. When the family has more than one network, as
evm does in production, also pass the exact network as slug; omitting it
returns 400.
Response Handling
Storechain, slug, address, and memo together. When displaying deposit
instructions, show the exact network next to the address. If your interface
has QR codes, encode only the returned address and keep the network label
visible outside the QR code.
Safety Rules
- Use the
networkandchain.slugvalues returned byGET /partner/wallets/chains. - Show the exact returned network, address, and memo.
- Sending funds on a different network can permanently lose funds.
- Do not rewrite, trim, or normalize crypto addresses beyond basic whitespace handling.
- Save the network alongside every address, deposit record, and support ticket reference.
USDT and USDC are stablecoin rails for USD activity.
If a deposit needs Travel Rule information, wallet transaction reads return
status: "hold" with required_action.type: "travel_rule". Submit the sender
details through POST /partner/wallets/crypto/deposits/{id}/travel-rule.
required_action.status then changes to submitted and stays present, with
the deposit still on hold, until clearance completes and the wallet is
credited.
Deposit States
Use deposit webhooks for timely changes and wallet transaction reads for
periodic reconciliation and webhook-gap recovery.
Common failures are
400 for an unsupported chain or a missing slug, 401 for a missing X-Api-Key, 403 for a key without wallets:view or an account whose production KYB is not approved, and 503 when no route on that family currently accepts new deposit addresses.