Skip to main content
A deposit address is a monitored blockchain address assigned to a customer’s wallet. When crypto arrives at the address, OMS automatically creates and executes a transaction, no developer action required after setup.
Programmatic deposit address provisioning is not yet available in the OMS API. To be notified when it launches, register your interest.

Register interest

Share your use case and we’ll reach out when programmatic deposit address provisioning is available.
Deposit addresses do not expire. OMS keeps them active until they are paused or removed.

Object

{
  "id": "da_...",
  "object": "depositAddress",
  "customerId": "cst_...",
  "status": "active",
  "transactionType": "cryptoToCrypto",
  "source": {
    "asset": "usdc",
    "network": "polygon",
    "depositInstructions": {
      "address": "0xabc123...",
      "asset": "usdc",
      "network": "polygon"
    }
  },
  "destination": {
    "wallet": { "wallet": "wlt_..." },
    "asset": "usdc",
    "network": "polygon"
  },
  "createdAt": "2025-01-15T10:32:00Z"
}
Give your customers the depositInstructions.address to display in your UI. Any supported asset sent to that address is automatically routed to the linked wallet.

How it differs from a wallet address

A customer’s wallet also has an address field, but direct deposits to a wallet address only trigger a wallet.depositDetected event, OMS does not auto-convert or route the funds. Deposit addresses are the correct pattern when you want OMS to act on incoming crypto.
Wallet addressDeposit address
OMS action on depositwallet.depositDetected event onlyAuto-creates and executes transaction
Routing configurationNoneAsset, network, destination wallet
ReusableYesYes

Status lifecycle

StatusMeaning
activeMonitoring for incoming deposits
pausedTemporarily inactive; deposits are not processed
deletedPermanently removed

Provisioning

Deposit addresses are provisioned by Polygon during onboarding and early access. In the sandbox, a simulation endpoint POST /deposit-addresses/{depositAddressId}/simulate is available for testing inbound transfers.