https://sandbox.cdp.coinbase.com
Prerequisites
Before you begin, you’ll need:CDP CLI
CDP CLI
Install the CDP CLI (requires Node.js 22+):Configure a Sandbox environment using your CDP Secret API Key JSON file from the CDP Portal:
A funded Sandbox account
A funded Sandbox account
See the Custodial Accounts Quickstart for setting up a Sandbox account with funds.Set the account ID:
1. Create a deposit destination
Create a deposit destination for the account on Base network. The example below also includes an optionaltarget (which makes it a liquidation address) and metadata for tracking:
Example response
Example response
2. List deposit destinations
List all deposit destinations for the account:Example response
Example response
3. Simulate a deposit
Because Sandbox is not connected to a blockchain, use the fake-deposit endpoint to trigger the inbound flow. Simulate an external sender depositing funds to the deposit address:Example response
Example response
- Webhook events fire:
payments.transfers.processingthenpayments.transfers.completed - Transfer record is created: visible via the List Transfers API
- Balance is credited: the account balance updates immediately
The
asset_symbol and network in the simulation request must match the deposit destination’s configuration.4. Inspect the webhook payload
When the simulated deposit settles, CDP fires apayments.transfers.completed webhook to your subscribed endpoint. The payload includes the full transfer record, a reference back to the deposit destination, and any metadata set on the destination.
Example webhook payload
Example webhook payload
eventType:payments.transfers.completed, the deposit settled into the accountdata.source.address: the on-chain address of the external senderdata.details.depositDestination.id: links the transfer back to the destination created in Step 1data.metadata: the metadata set on the deposit destination is propagated to every payin transfer for that destinationeventID: unique per (transferId, status). Use it for idempotency to deduplicate retries
payments.transfers.processing event also fires earlier in the flow when the deposit is first detected. For most integrations, listening only for completed is sufficient.
To receive these events, subscribe a webhook endpoint via the Webhooks API.
5. Verify the balance update
Confirm the deposit credited to the account:Using the Portal UI
Deposit destinations can also be created and deposits simulated through the Portal UI.Navigate to Accounts
Go to the Accounts page in CDP Portal Sandbox
Create a new deposit address
Click Create deposit address, select the account and network, then click Create address
Move to production
To run this flow on real blockchains, switch from the Sandbox base URL to the production base URL and use a production API key. Production deposit destinations are real on-chain addresses.What to read next
Deposit Destinations overview
Concepts, types, and supported networks
Transfers
Move funds from an account to an external address
Webhooks
Subscribe to real-time deposit event notifications
REST API reference
Full Deposit Destinations API reference