Custodial wallets are in early access and require an OMS API key. Request access if you do not have one yet.
Get a bearer token
You do not send the API key directly on requests. Exchange the key and secret for a short-lived bearer token at The token is valid for 60 minutes. When a request returns
POST /auth/token, then send that token as Authorization: Bearer {token} on every other call.401, exchange your key for a fresh token and retry.Create a customer
Every custodial wallet belongs to a customer record. Create one before provisioning a wallet. If you plan to fund the wallet with fiat (the next-step cash or card flows), include the full set of identifying fields so the customer can be provisioned to move money, not just a name.Store the
cst_ ID. You pass it in the path when provisioning the wallet.In sandbox, endorsements are auto-approved so you can provision and use wallets without a live KYC integration. Provisioning still reads the identifying fields above, so include them in sandbox too.
Provision a custodial wallet
Create the wallet with The
POST /customers/{id}/wallets. The customer ID goes in the path, and the body sets the asset and chain the wallet holds. OMS derives the onchain address and manages the keys.address is the wallet’s onchain Polygon address. The wlt_ ID is what you reference as a source or destination in quotes and transactions.What’s next
Custodial wallets overview
When to use custodial wallets and how OMS secures keys.
Create a wallet (API reference)
Full request and response reference for
POST /customers/{id}/wallets.Fund a wallet
Bring fiat into the wallet with the cash-in or virtual account flows.
Get started with OMS
The end-to-end payments walkthrough, from customer to first transaction.