Skip to main content
POST
/
v2
/
deposit-destinations
Create crypto deposit destination
curl --request POST \
  --url https://api.cdp.coinbase.com/platform/v2/deposit-destinations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
  "type": "crypto",
  "crypto": {
    "network": "base"
  },
  "target": {
    "accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
    "asset": "usd"
  },
  "metadata": {
    "customer_id": "123e4567-e89b-12d3-a456-426614174000",
    "reference": "order-12345"
  }
}
'
{
  "depositDestinationId": "depositDestination_af2937b0-9846-4fe7-bfe9-ccc22d935114",
  "accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
  "type": "crypto",
  "network": "base",
  "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
  "crypto": {
    "network": "base",
    "address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
  },
  "target": {
    "accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
    "asset": "usd"
  },
  "status": "active",
  "metadata": {
    "customer_id": "123e4567-e89b-12d3-a456-426614174000",
    "reference": "order-12345"
  },
  "createdAt": "2023-10-08T14:30:00Z",
  "updatedAt": "2023-10-08T14:30:00Z"
}

Authorizations

Authorization
string
header
required

A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.

Headers

X-Idempotency-Key
string

An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.

Required string length: 1 - 128

Body

application/json

Request to create a new cryptocurrency deposit destination. Until May 15, 2026, either network (legacy) or crypto.network (new) must be provided. After May 15, 2026, the root-level network field will be removed and only crypto.network will be accepted.

accountId
string
required

The ID of the Account, which is a UUID prefixed by the string account_, that owns the deposit destination.

Pattern: ^account_[a-f0-9\-]{36}$
Example:

"account_af2937b0-9846-4fe7-bfe9-ccc22d935114"

type
enum<string>
required

The type of deposit destination. Only crypto destinations can be created via the API.

Available options:
crypto
Example:

"crypto"

network
enum<string>
deprecated

DEPRECATED: Use crypto.network instead. This field will be removed after May 15, 2026. The blockchain network for the deposit destination. Either this field or crypto.network must be provided.

Available options:
base,
ethereum,
solana,
aptos,
arbitrum,
arbitrum-sepolia,
optimism,
polygon,
world,
world-sepolia
Example:

"base"

crypto
object

Crypto-specific details. After May 15, 2026, this will be the only way to specify the network.

Example:
{ "network": "base" }
target
Target Account · object

The intended target for deposited funds.

Example:
{
"accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"asset": "usd"
}
metadata
object

Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.

Example:
{
"customer_id": "cust_12345",
"order_reference": "order-67890"
}

Response

Successfully created deposit destination.

A deposit destination for receiving funds to an account. Can be either a cryptocurrency address or fiat bank account instructions.

depositDestinationId
string
required

The ID of the Deposit Destination, which is a UUID prefixed by the string depositDestination_.

Pattern: ^depositDestination_[a-f0-9\-]{36}$
Example:

"depositDestination_af2937b0-9846-4fe7-bfe9-ccc22d935114"

accountId
string
required

The ID of the Account, which is a UUID prefixed by the string account_.

Pattern: ^account_[a-f0-9\-]{36}$
Example:

"account_af2937b0-9846-4fe7-bfe9-ccc22d935114"

type
enum<string>
required

The type of deposit destination.

Available options:
crypto
Example:

"crypto"

address
string
required
deprecated

DEPRECATED: Use crypto.address instead. This field will be removed after May 15, 2026.

Required string length: 1 - 128
Example:

"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"

network
enum<string>
required
deprecated

DEPRECATED: Use crypto.network instead. This field will be removed after May 15, 2026.

Available options:
base,
ethereum,
solana,
aptos,
arbitrum,
arbitrum-sepolia,
optimism,
polygon,
world,
world-sepolia
Example:

"base"

crypto
object
required

Crypto-specific details for this deposit destination. Always populated in responses. Contains the network and address.

Example:
{
"network": "base",
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
}
status
enum<string>
required

The status of the deposit destination.

Available options:
active,
inactive,
pending
Example:

"active"

createdAt
string<date-time>
required

The timestamp when the deposit destination was created.

Example:

"2023-10-08T14:30:00Z"

updatedAt
string<date-time>
required

The timestamp when the deposit destination was last updated.

Example:

"2023-10-08T14:30:00Z"

target
Target Account · object

The intended target for deposited funds.

Example:
{
"accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"asset": "usd"
}
metadata
object

Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.

Example:
{
"customer_id": "cust_12345",
"order_reference": "order-67890"
}