Skip to main content
Request one deposit address for the chain you selected. The API creates or returns the address for your Stabyl account on that route. Addresses are requested on demand, so you do not need to create addresses across every supported chain before the user chooses a route. Production requires approved KYB before this endpoint returns an existing address or provisions a new one. A non-approved account receives 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

Store chain, 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 network and chain.slug values returned by GET /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.
Crypto deposits credit the USD wallet after confirmation and any required compliance checks. 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.