# Coinbase Developer Documentation: API Reference CDP API

## CDP API

### CDP API

- [Welcome to CDP API](https://docs.cdp.coinbase.com/api-reference/v2/introduction.md): Trusted crypto infrastructure at scale
- [API Authentication](https://docs.cdp.coinbase.com/api-reference/v2/authentication.md)
- [API Conventions](https://docs.cdp.coinbase.com/api-reference/v2/conventions.md): Formatting standards and shared patterns used across the CDP API.
- [Pagination](https://docs.cdp.coinbase.com/api-reference/v2/pagination.md): Cursor-based pagination for CDP API list endpoints.
- [Idempotency](https://docs.cdp.coinbase.com/api-reference/v2/idempotency.md)
- [Rate Limits](https://docs.cdp.coinbase.com/api-reference/v2/rate-limits.md)
- [Errors](https://docs.cdp.coinbase.com/api-reference/v2/errors.md)
- [OpenAPI Spec](https://docs.cdp.coinbase.com/api-reference/v2/openapi-spec.md)
- [Troubleshooting](https://docs.cdp.coinbase.com/api-reference/v2/troubleshooting.md): Common issues integrating with the CDP API and how to resolve them.

### REST API

#### Wallets

##### Custodial

###### Accounts

- [Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/accounts.md)
- [Get account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/get-account.md): Get an account by its ID.
- [Get balance for account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/get-balance-for-account.md): Get the balance for an account by asset.
- [List accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/list-accounts.md): List all accounts. The API will return all accounts that the API Key has Permissions to access. You can filter the results by using query parameters, which will be treated as a single conjunction (i.e. AND). Results are sorted by creation date in descending order (newest first).
- [List balances for account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/list-balances-for-account.md): List the balances for an account. Results are sorted by native-fiat equivalent balance in descending order.
- [Create account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/accounts/create-account.md): Create an account. Two ownership modes are supported:

##### Non-custodial

###### User Wallets

###### End User Account Management

- [End User Account Management](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/end-user-account-management.md)
- [Get end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/get-end-user.md): Gets an end user by ID.
- [List end users](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/list-end-users.md): Lists the end users belonging to the developer's CDP Project. By default, the response is sorted by creation date in ascending order and paginated to 20 users per page.
- [Look up end users by identity](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/look-up-end-users-by-identity.md): Looks up end users. Exactly one lookup type must be provided per request:
- [Add EVM account to end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/add-evm-account-to-end-user.md): Adds a new EVM EOA account to an existing end user. End users can have up to 10 EVM accounts. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key.
- [Add EVM smart account to end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/add-evm-smart-account-to-end-user.md): Creates an EVM smart account for an existing end user. The backend will create a new EVM EOA account to serve as the owner of the smart account. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key.
- [Add Solana account to end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/add-solana-account-to-end-user.md): Adds a new Solana account to an existing end user. End users can have up to 10 Solana accounts. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key.
- [Create end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/create-end-user.md): Creates an end user. An end user is an entity that can own CDP EVM accounts, EVM smart accounts, and/or Solana accounts. 1 or more authentication methods must be associated with an end user. By default, no accounts are created unless the optional `evmAccount` and/or `solanaAccount` fields are provid…
- [Import end user private key](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/import-end-user-private-key.md): Imports an existing private key for an end user into the developer's CDP Project. The private key must be encrypted using the CDP SDK's encryption scheme before being sent to this endpoint. This API should be called from the [CDP SDK](https://github.com/coinbase/cdp-sdk) to ensure that the associate…
- [Validate end user access token](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-account-management/validate-end-user-access-token.md): Validates the end user's access token and returns the end user's information. Returns an error if the access token is invalid or expired.

###### End User Accounts

- [End User Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/end-user-accounts.md)
- [Get account-scoped delegation for end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/get-account-scoped-delegation-for-end-user.md): Returns the active account-scoped delegation for the specified end user account, if one exists. Useful for showing delegation status in a UI. When the address corresponds to an EVM Smart Account, this returns the delegation for the Smart Account's owner EOA.
- [Get delegation for end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/get-delegation-for-end-user.md): Returns the active delegation for the specified end user, if one exists. This operation can be performed by the end user themselves or by a developer using their API key.
- [Create account-scoped delegation for end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/create-account-scoped-delegation-for-end-user.md): Creates an account-scoped delegation that allows a developer to sign on behalf of an end user for a single blockchain account (identified by its address) for the specified duration. The end user must be authenticated to authorize this delegation. Multiple account-scoped delegations may exist concurr…
- [Create EIP-7702 delegation for end user EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/create-eip-7702-delegation-for-end-user-evm-account.md): Creates an EIP-7702 delegation for an end user's EVM EOA account, upgrading it with smart account capabilities.
- [Send transaction via end user EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/send-transaction-via-end-user-evm-account.md): Signs a transaction with the given end user EVM account and sends it to the indicated supported network. This API handles nonce management and gas estimation, leaving the developer to provide only the minimal set of fields necessary to send the transaction. The transaction should be serialized as a…
- [Send transaction via end user Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/send-transaction-via-end-user-solana-account.md): Signs a transaction with the given end user Solana account and sends it to the indicated supported network. The API handles recent blockhash management and fee estimation, leaving the developer to provide only the minimal set of fields necessary to send the transaction. The unsigned transaction shou…
- [Send USDC on EVM](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/send-usdc-on-evm.md): Sends USDC from an end user's EVM account (EOA or Smart Account) to a recipient address on a supported EVM network. This endpoint simplifies USDC transfers by automatically handling contract resolution, decimal conversion, gas estimation, and transaction encoding. The `amount` field accepts human-re…
- [Send USDC on Solana](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/send-usdc-on-solana.md): Sends USDC from an end user's Solana account to a recipient address on the Solana network. This endpoint simplifies USDC transfers by automatically handling mint resolution, Associated Token Account (ATA) creation, decimal conversion, and transaction encoding. The `amount` field accepts human-readab…
- [Send user operation for end user Smart Account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/send-user-operation-for-end-user-smart-account.md): Prepares, signs, and sends a user operation for an end user's Smart Account.
- [Sign Base64-encoded message](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-base64-encoded-message.md): Signs an arbitrary Base64 encoded message with the given Solana account. **WARNING:**  Never sign a message that you didn't generate as it may put your funds at risk.
- [Sign EIP-191 message via end user EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-eip-191-message-via-end-user-evm-account.md): Signs an [EIP-191](https://eips.ethereum.org/EIPS/eip-191) message with the given end user EVM account.
- [Sign EIP-712 typed data via end user EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-eip-712-typed-data-via-end-user-evm-account.md): Signs [EIP-712](https://eips.ethereum.org/EIPS/eip-712) typed data with the given end user EVM account.
- [Sign transaction via end user EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-transaction-via-end-user-evm-account.md): Signs a transaction with the given end user EVM account. The transaction should be serialized as a hex string using [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/).
- [Sign transaction via end user Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-transaction-via-end-user-solana-account.md): Signs a transaction with the given end user Solana account. The unsigned transaction should be serialized into a byte array and then encoded as base64. **Transaction types** The following transaction types are supported: * [Legacy transactions](https://solana-labs.github.io/solana-web3.js/classes/Tr…
- [Sign x402 payment via end user Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/sign-x402-payment-via-end-user-solana-account.md): Signs an x402 payment payload using the end user's given Solana account. Accepts the full x402 payment required response body from a resource server plus an index into the accepts array selecting which payment option to sign. The paymentRequired envelope's x402Version, resource, and extensions are c…
- [Revoke account-scoped delegation for end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/revoke-account-scoped-delegation-for-end-user.md): Revokes the active account-scoped delegation for the specified end user account. Other account-scoped delegations for the same user are unaffected. This operation can be performed by the end user themselves or by a developer using their API key. When the address corresponds to an EVM Smart Account,…
- [Revoke delegation for end user](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/end-user-accounts/revoke-delegation-for-end-user.md): Revokes all active delegations for the specified end user. This operation can be performed by the end user themselves or by a developer using their API key.

###### API Key Wallets

###### EVM Accounts

- [EVM Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/evm-accounts.md)
- [Get EIP-7702 delegation operation by ID](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/get-eip-7702-delegation-operation-by-id.md): Returns the EIP-7702 delegation operation. Use the delegationOperationId returned by the Create EIP-7702 delegation endpoint to poll for operation completion.
- [Get EVM account by address](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/get-evm-account-by-address.md): Gets an EVM account by its address.
- [Get EVM account by name](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/get-evm-account-by-name.md): Gets an EVM account by its name.
- [List EVM accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/list-evm-accounts.md): Lists the EVM accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.
- [Create EIP-7702 delegation](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/create-eip-7702-delegation.md): Creates an EIP-7702 delegation for an EVM EOA account, upgrading it with smart account capabilities.
- [Create EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/create-evm-account.md): Creates a new EVM account.
- [Export EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/export-evm-account.md): Export an existing EVM account's private key. It is important to store the private key in a secure place after it's exported.
- [Export EVM account by name](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/export-evm-account-by-name.md): Export an existing EVM account's private key by its name. It is important to store the private key in a secure place after it's exported.
- [Import EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/import-evm-account.md): Import an existing EVM account into the developer's CDP Project. This API should be called from the [CDP SDK](https://github.com/coinbase/cdp-sdk) to ensure that the associated private key is properly encrypted.
- [Send transaction](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/send-transaction.md): Signs a transaction with the given EVM account and sends it to the indicated supported network. This API handles nonce management and gas estimation, leaving the developer to provide only the minimal set of fields necessary to send the transaction. The transaction should be serialized as a hex strin…
- [Sign EIP-191 message](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/sign-eip-191-message.md): Signs an [EIP-191](https://eips.ethereum.org/EIPS/eip-191) message with the given EVM account.
- [Sign EIP-712 typed data](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/sign-eip-712-typed-data.md): Signs [EIP-712](https://eips.ethereum.org/EIPS/eip-712) typed data with the given EVM account.
- [Sign hash](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/sign-hash.md): Signs an arbitrary 32 byte hash with the given EVM account.
- [Sign transaction](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/sign-transaction.md): Signs a transaction with the given EVM account. The transaction should be serialized as a hex string using [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/).
- [Update EVM account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-accounts/update-evm-account.md): Updates an existing EVM account. Use this to update the account's name or account-level policy.

###### EVM Smart Accounts

- [EVM Smart Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/evm-smart-accounts.md)
- [Get Smart Account by address](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/get-smart-account-by-address.md): Gets a Smart Account by its address.
- [Get Smart Account by name](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/get-smart-account-by-name.md): Gets a Smart Account by its name.
- [Get user operation](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/get-user-operation.md): Gets a user operation by its hash.
- [List Smart Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/list-smart-accounts.md): Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page.
- [List spend permissions](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/list-spend-permissions.md): Lists spend permission for the given smart account address.
- [Create Smart Account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/create-smart-account.md): Creates a new Smart Account.
- [Create spend permission](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/create-spend-permission.md): Creates a spend permission for the given smart account address.
- [Prepare and send user operation](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/prepare-and-send-user-operation.md): Prepares, signs, and sends a user operation for an EVM Smart Account. This API can be used only if the owner on Smart Account is a CDP EVM Account.
- [Prepare user operation](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/prepare-user-operation.md): Prepares a new user operation on a Smart Account for a specific network.
- [Revoke spend permission](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/revoke-spend-permission.md): Revokes an existing spend permission.
- [Send user operation](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/send-user-operation.md): Sends a user operation with a signature. The payload to sign must be the `userOpHash` field of the user operation. This hash should be signed directly (not using `personal_sign` or EIP-191 message hashing). The signature must be 65 bytes in length, consisting of: - 32 bytes for the `r` value - 32 by…
- [Update EVM Smart Account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-smart-accounts/update-evm-smart-account.md): Updates an existing EVM smart account. Use this to update the smart account's name.

###### Solana Accounts

- [Solana Accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/solana-accounts.md)
- [Get Solana account by address](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/get-solana-account-by-address.md): Gets a Solana account by its address.
- [Get Solana account by name](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/get-solana-account-by-name.md): Gets a Solana account by its name.
- [List Solana accounts](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/list-solana-accounts.md): Lists the Solana accounts belonging to the developer. The response is paginated, and by default, returns 20 accounts per page.
- [Create Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/create-solana-account.md): Creates a new Solana account.
- [Export Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/export-solana-account.md): Export an existing Solana account's private key. It is important to store the private key in a secure place after it's exported.
- [Export Solana account by name](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/export-solana-account-by-name.md): Export an existing Solana account's private key by its name. It is important to store the private key in a secure place after it's exported.
- [Import Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/import-solana-account.md): Import an existing Solana account into the developer's CDP Project. This API should be called from the [CDP SDK](https://github.com/coinbase/cdp-sdk) to ensure that the associated private key is properly encrypted.
- [Send Solana transaction](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/send-solana-transaction.md): Signs and sends a single Solana transaction using multiple Solana accounts. The transaction may contain contain several instructions, each of which may require signatures from different account keys.
- [Sign message](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/sign-message.md): Signs an arbitrary message with the given Solana account.
- [Sign transaction](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/sign-transaction.md): Signs a transaction with the given Solana account. The unsigned transaction should be serialized into a byte array and then encoded as base64.
- [Update Solana account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-accounts/update-solana-account.md): Updates an existing Solana account. Use this to update the account's name or account-level policy.

###### Policy Engine

- [Policy Engine](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/policy-engine.md)
- [Get policy by ID](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/get-policy-by-id.md): Get a policy by its ID.
- [List policies](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/list-policies.md): Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page.
- [Create policy](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/create-policy.md): Create a policy that can be used to govern the behavior of accounts.
- [Update policy](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/update-policy.md): Updates a policy by its ID. This will have the effect of applying the updated policy to all accounts that are currently using it.
- [Delete policy](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/policy-engine/delete-policy.md): Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it.

###### Wallet Webhooks

- [Wallet Webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/wallet-webhooks/wallet-webhooks.md)
- [Wallet delegation created](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-delegation-created.md): Triggered when the `wallet.delegation.created` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet delegation revoked](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-delegation-revoked.md): Triggered when the `wallet.delegation.revoked` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet hash signed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-hash-signed.md): Triggered when the `wallet.hash.signed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet message signed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-message-signed.md): Triggered when the `wallet.message.signed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction broadcast](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-broadcast.md): Triggered when the `wallet.transaction.broadcast` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction confirmed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-confirmed.md): Triggered when the `wallet.transaction.confirmed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction created](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-created.md): Triggered when the `wallet.transaction.created` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-failed.md): Triggered when the `wallet.transaction.failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-pending.md): Triggered when the `wallet.transaction.pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction replaced](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-replaced.md): Triggered when the `wallet.transaction.replaced` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet transaction signed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-transaction-signed.md): Triggered when the `wallet.transaction.signed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet typed data signed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-typed-data-signed.md): Triggered when the `wallet.typed_data.signed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

#### Payments

##### Acceptance

###### Payment Sessions

- [Payment Sessions](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/payment-sessions.md)
- [Get a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-a-payment-session.md): Retrieves a single payment session by its ID, including its current status, balances, and associated metadata. The API key must have permission to access the requested session.
- [Get a payment session authorization](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-a-payment-session-authorization.md): Retrieves a single authorization by its ID, including its current status, amount, and any associated onchain transactions.
- [Get a payment session capture](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-a-payment-session-capture.md): Retrieves a single capture by its ID, including status, captured amount, associated onchain transactions, and timestamps. Only returns the capture if the API key has permission to access it.
- [Get a payment session refund](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-a-payment-session-refund.md): Retrieves a single refund by its ID, including status, refunded amount, reason, associated onchain transactions, and timestamps. Only returns the refund if the API key has permission to access it.
- [Get a payment session void](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-a-payment-session-void.md): Retrieves a single void by its ID, including status, voided amount, associated onchain transactions, and timestamps. Only returns the void if the API key has permission to access it.
- [Get wallet authorization options](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/get-wallet-authorization-options.md): Returns the available wallet authorization options for a payment session. The session must be in `created` status.
- [List Coinbase account balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-coinbase-account-balances.md): Returns the balances held in the Coinbase account.
- [List payment session authorizations](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-payment-session-authorizations.md): Returns a paginated list of authorizations for a payment session. Each authorization represents a hold on funds and includes its current status and amount.
- [List payment session captures](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-payment-session-captures.md): Returns a paginated list of captures for a payment session. Each capture includes its status, amount, associated onchain transactions, and timestamps. Only captures accessible by the current API key are returned.
- [List payment session refunds](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-payment-session-refunds.md): Returns a paginated list of refunds for a payment session. Each refund includes its status, amount, reason, associated onchain transactions, and timestamps. Only refunds accessible by the current API key are returned.
- [List payment session voids](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-payment-session-voids.md): Returns a paginated list of voids for a payment session. Each void includes its status, amount, associated onchain transactions, and timestamps. Only voids accessible by the current API key are returned.
- [List payment sessions](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/list-payment-sessions.md): Returns a paginated list of payment sessions that the API key has permission to access.
- [Authorize a payment session with a Coinbase account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/authorize-a-payment-session-with-a-coinbase-account.md): **Merchant-initiated.** The merchant charges the payer's Coinbase account using an OAuth grant the payer authorized earlier, so the payer does not need to be present at payment time. The session must be in `created` status.
- [Authorize a payment session with a wallet](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/authorize-a-payment-session-with-a-wallet.md): **Customer-initiated.** Authorizes a payment session using the payer's wallet. The payer signs the payloads themselves, so this call is unauthenticated. The session must be in `created` status.
- [Authorize a payment session with x402](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/authorize-a-payment-session-with-x402.md): **Customer-initiated.** Authorizes a payment session using x402. The payer supplies the payment payload, so this call is unauthenticated. The session must be in `created` status.
- [Cancel a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/cancel-a-payment-session.md): Cancels a payment session before any funds have been authorized or captured. The session must be in `created` status. Cancel is blocked while any authorization action is pending.
- [Capture a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/capture-a-payment-session.md): Captures authorized funds. The session must have a positive `capturable` balance and the `captureExpiresAt` deadline must not have passed.
- [Create a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/create-a-payment-session.md): Creates a payment session that defines what is being paid — amount, asset, and target. Optionally configure execution behavior, expiry deadlines, redirect URLs, and metadata.
- [Refund a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/refund-a-payment-session.md): Returns captured funds to the payer. The session must have a positive `refundable` balance and the `refundExpiresAt` deadline must not have passed.
- [Void a payment session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-sessions/void-a-payment-session.md): Releases all remaining capturable funds back to the payer. The session must have a positive `capturable` balance.

###### Webhooks

- [Payment session authorization failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-authorization-failed.md): Triggered when the `acceptance.payment_session.authorization_failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session authorization pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-authorization-pending.md): Triggered when the `acceptance.payment_session.authorization_pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session authorization succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-authorization-succeeded.md): Triggered when the `acceptance.payment_session.authorization_succeeded` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session canceled](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-canceled.md): Triggered when the `acceptance.payment_session.canceled` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session capture failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-capture-failed.md): Triggered when the `acceptance.payment_session.capture_failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session capture pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-capture-pending.md): Triggered when the `acceptance.payment_session.capture_pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session capture succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-capture-succeeded.md): Triggered when the `acceptance.payment_session.capture_succeeded` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session created](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-created.md): Triggered when the `acceptance.payment_session.created` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session refund failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-refund-failed.md): Triggered when the `acceptance.payment_session.refund_failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session refund pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-refund-pending.md): Triggered when the `acceptance.payment_session.refund_pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session refund succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-refund-succeeded.md): Triggered when the `acceptance.payment_session.refund_succeeded` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session void failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-void-failed.md): Triggered when the `acceptance.payment_session.void_failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session void pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-void-pending.md): Triggered when the `acceptance.payment_session.void_pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payment session void succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-payment-session-void-succeeded.md): Triggered when the `acceptance.payment_session.void_succeeded` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

###### Disbursements

- [Disbursements](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/disbursements/disbursements.md)
- [Get a disbursement](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/disbursements/get-a-disbursement.md): Retrieves a single disbursement by its ID, including source, target, status, amount, associated onchain transactions, error details (if failed), and timestamps. Only returns the disbursement if the API key has permission to access it.
- [List disbursements](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/disbursements/list-disbursements.md): Returns a paginated list of disbursements created by the merchant. Each disbursement includes its source, target, status, amount, and timestamps. Only disbursements accessible by the current API key are returned.
- [Create a disbursement](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/disbursements/create-a-disbursement.md): Creates a merchant-initiated payment of funds from a CDP account owned by the merchant to a Coinbase user account or onchain address. Used for standalone refunds, goodwill disbursements, rebates, and other merchant-driven payouts that are not tied to a specific payment session.

###### Webhooks

- [Disbursement failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-disbursement-failed.md): Triggered when the `acceptance.disbursement.failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Disbursement pending](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-disbursement-pending.md): Triggered when the `acceptance.disbursement.pending` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Disbursement succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-acceptance-disbursement-succeeded.md): Triggered when the `acceptance.disbursement.succeeded` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

##### Deposit Destinations

- [Deposit Destinations](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/deposit-destinations/deposit-destinations.md)
- [Get deposit destination](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/deposit-destinations/get-deposit-destination.md): Get a specific deposit destination by its ID.
- [List deposit destinations](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/deposit-destinations/list-deposit-destinations.md): List deposit destinations. You can optionally filter the results by type, account ID, network, or cryptocurrency address. Results are sorted by creation date in descending order (newest first).
- [Create deposit destination](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/deposit-destinations/create-deposit-destination.md): Create a new deposit destination for an account. Two types are supported:

##### Payment Methods

- [Payment Methods](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-methods/payment-methods.md)
- [Get payment method](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-methods/get-payment-method.md): Get details of a specific payment method by its ID. Returns 404 if the payment method is not found or not owned by the requesting entity.
- [List payment methods](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/payment-methods/list-payment-methods.md): List payment methods linked to your entity. Payment methods represent external financial instruments that can be used as a target for transfers. The list will not include disabled or deleted payment methods.

##### Transfers

- [Transfers](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/transfers.md)
- [Get transfer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/get-transfer.md): Get a transfer by its ID.
- [List transfers](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/list-transfers.md): List transfers for your organization. Use this to view and monitor your transfer activity.
- [Create transfer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/create-transfer.md): Create a new transfer to move funds from a source to a target. All transfers first transition to `quoted`. If `execute: false`, the transfer stays quoted until you call `/v2/transfers/{transferId}/execute`. If `execute: true`, quoted status emits momentarily before the transfer moves to `processing`…
- [Execute transfer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/execute-transfer.md): Executes a transfer which was created using the Create a transfer endpoint.
- [Submit deposit travel rule information](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/transfers/submit-deposit-travel-rule-information.md): Submit travel rule information for a deposit transfer held pending compliance review.

###### Webhooks

- [Payments transfers completed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-completed.md): Triggered when the `payments.transfers.completed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers expired](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-expired.md): Triggered when the `payments.transfers.expired` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-failed.md): Triggered when the `payments.transfers.failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers processing](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-processing.md): Triggered when the `payments.transfers.processing` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers quoted](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-quoted.md): Triggered when the `payments.transfers.quoted` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers travel rule completed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-travel-rule-completed.md): Triggered when the `payments.transfers.travel_rule_completed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Payments transfers travel rule incomplete](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-payments-transfers-travel-rule-incomplete.md): Triggered when the `payments.transfers.travel_rule_incomplete` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

##### Onramp

- [Onramp](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/onramp.md)
- [Get an onramp order by ID](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/get-an-onramp-order-by-id.md): Get an onramp order by ID.
- [Create an onramp order](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/create-an-onramp-order.md): Create a new Onramp order or get a quote for an Onramp order. Either `paymentAmount` or `purchaseAmount` must be provided.
- [Create an onramp session](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/create-an-onramp-session.md): Returns a single-use URL for an Onramp session. This API provides flexible  functionality based on the parameters provided, supporting three cases:
- [Get onramp user limits](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/get-onramp-user-limits.md): Returns the transaction limits for an onramp user based on their payment method and user identifier. Use this API to show users their remaining purchase capacity before initiating an onramp transaction. Currently supports `GUEST_CHECKOUT_APPLE_PAY` payment method with phone number identification. Th…
- [Initiate onramp verification](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/initiate-onramp-verification.md): Initiates OTP verification by sending a 6-digit code to the user via the specified channel (SMS or email). Returns a `verificationId` that must be passed to the Submit Onramp Verification endpoint along with the OTP code within 10 minutes.
- [Request limit upgrade](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/request-limit-upgrade.md): Requests a limit upgrade for an onramp user. Only phone number is currently supported as a userId.
- [Submit onramp verification](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/submit-onramp-verification.md): Submits the OTP code to complete verification. On success, marks the verification as verified and returns the same `verificationId`. The destination does not need to be re-sent. Onramp uses the value captured at initiation time.

###### Webhooks

- [Offramp transaction created](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-offramp-transaction-created.md): Triggered when the `offramp.transaction.created` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Offramp transaction failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-offramp-transaction-failed.md): Triggered when the `offramp.transaction.failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Offramp transaction succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-offramp-transaction-success.md): Triggered when the `offramp.transaction.success` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Offramp transaction updated](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-offramp-transaction-updated.md): Triggered when the `offramp.transaction.updated` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Onramp transaction created](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-onramp-transaction-created.md): Triggered when the `onramp.transaction.created` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Onramp transaction failed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-onramp-transaction-failed.md): Triggered when the `onramp.transaction.failed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Onramp transaction succeeded](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-onramp-transaction-success.md): Triggered when the `onramp.transaction.success` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Onramp transaction updated](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-onramp-transaction-updated.md): Triggered when the `onramp.transaction.updated` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

##### x402 Facilitator

- [x402 Facilitator](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/x402-facilitator.md)
- [Get an x402 bundle](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/get-an-x402-bundle.md): Gets a single curated x402 workflow bundle by its bundle slug, including the bundle metadata and its ordered member resources joined to their full discovery metadata.
- [Get supported payment schemes and networks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/get-supported-payment-schemes-and-networks.md): Get the supported x402 protocol payment schemes and networks that the facilitator is able to verify and settle payments for.
- [List merchant discovery info](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/list-merchant-discovery-info.md): Gets x402 merchant discovery information for a given merchant payment address. This endpoint returns all active x402 resources associated with the specified `payTo` address, allowing clients to discover what payment-gated resources a merchant exposes and their corresponding payment requirements. If…
- [List x402 bundles](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/list-x402-bundles.md): Lists the available curated x402 workflow bundles. A bundle is an ordered, named grouping of curated x402 resources that together cover a common agent workflow. The result set is small and server-controlled, so this endpoint is not paginated.
- [List x402 resources](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/list-x402-resources.md): Lists all active discovered x402 resources. This endpoint returns resources that have been discovered and cached by the x402 facilitator, including their payment requirements and metadata. The response is paginated, and by default, returns 100 items per page.
- [Search x402 resources](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/search-x402-resources.md): Searches for active x402 resources using a text query and optional filters. Supports both text-based and vector-based search depending on availability. Results are sorted by relevance and quality score. Legacy network names (e.g., `base`, `base-sepolia`, `solana`) are automatically normalized to the…
- [Handle MCP JSON-RPC request](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/handle-mcp-json-rpc-request.md): Handles JSON-RPC requests for the Model Context Protocol (MCP). Supports MCP methods for discovering x402 payment resources and tools.
- [Settle payment](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/settle-payment.md): Settle an x402 protocol payment with a specific scheme and network.
- [Validate x402 endpoint](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/validate-x402-endpoint.md): Validates an x402 endpoint's bazaar-discovery configuration by probing the seller's URL live. Returns a uniform array of preflight check results (reachable, returns402, hasBazaarExtension, parse) and a simulated facilitator accept/reject decision so sellers and agents can confirm their endpoint is r…
- [Verify payment](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/x402-facilitator/verify-payment.md): Verify an x402 protocol payment with a specific scheme and network.

#### Trading

##### EVM Swaps

- [EVM Swaps](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-swaps/evm-swaps.md)
- [Get swap price estimate](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-swaps/get-swap-price-estimate.md): Get a price estimate for a swap between two tokens on an EVM network.
- [Create swap quote](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-swaps/create-swap-quote.md): Create a swap quote, which includes the payload to sign as well as the transaction data needed to execute the swap. The developer is responsible for signing the payload and submitting the transaction to the network in order to execute the swap.

#### Onchain Tools

##### EVM Token Balances

- [EVM Token Balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-token-balances/evm-token-balances.md)
- [List EVM token balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/evm-token-balances/list-evm-token-balances.md): Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page.

##### Faucets

- [Faucets](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/faucets/faucets.md)
- [Request funds on EVM test networks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/faucets/request-funds-on-evm-test-networks.md): Request funds from the CDP Faucet on supported EVM test networks.
- [Request funds on Solana devnet](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/faucets/request-funds-on-solana-devnet.md): Request funds from the CDP Faucet on Solana devnet.

##### Onchain Data

- [Onchain Data](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onchain-data/onchain-data.md)
- [List EVM token balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onchain-data/list-evm-token-balances.md): Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page.
- [List token addresses for account](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onchain-data/list-token-addresses-for-account.md): Retrieve all ERC-20 token contract addresses that an account has ever received tokens from. Analyzes transaction history to discover token interactions.

###### Webhooks

- [Onchain activity detected](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-onchain-activity-detected.md): Triggered when onchain activity matching your subscription filters is detected. Your API will receive a POST request at the webhook URL you configured. Use `labels` on your webhook subscription to filter which onchain events are delivered (see the Create Webhook Subscription endpoint for allowed lab…
- [Wallet activity detected](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-activity-detected.md): Triggered when the `wallet.activity.detected` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Wallet activity multi](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-wallet-activity-multi.md): Triggered when the `wallet.activity.multi` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

##### Solana Token Balances

- [Solana Token Balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-token-balances/solana-token-balances.md)
- [List Solana token balances](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/solana-token-balances/list-solana-token-balances.md): Lists the token balances of a Solana address on a given network. The balances include SPL tokens and the native SOL token. The response is paginated, and by default, returns 20 balances per page.

##### SQL API

- [SQL API](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/sql-api/sql-api.md)
- [Get schema details](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/sql-api/get-schema-details.md): Retrieve the schema information for the available tables in the SQL API's indexed data.
- [Get SQL grammar](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/sql-api/get-sql-grammar.md): Retrieve the SQL grammar for the SQL API.
- [Run SQL Query](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/sql-api/run-sql-query.md): Run a read-only SQL query against indexed blockchain data including transactions, events, and decoded logs.

#### Customers

- [Customers](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/customers.md)
- [Get a customer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/get-a-customer.md): Get a customer by their ID. Returns the full customer object.
- [Get customer requirements](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/get-customer-requirements.md): Preview the requirements a hypothetical customer of the given `customerType` and jurisdiction would need to satisfy to enable the requested `capabilities`, without creating a customer record. Partner onboarding UIs can use this to render the collection flow before any customer state exists.
- [List customers](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/list-customers.md): List all customers. The API will return all customers that the API Key has permissions to access. Results are not returned in any guaranteed order.
- [Create a customer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/create-a-customer.md): Create a new customer record. You can optionally request capabilities and submit verification requirements in the same request.
- [Update a customer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/update-a-customer.md): Update customer information and/or request capability changes. This endpoint supports partial updates. Provide only the fields you wish to change.
- [Delete a customer](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/customers/delete-a-customer.md): Initiates deletion of the customer and all associated data. This operation is idempotent — repeated calls for an already-deleted customer return 204. A 404 is returned only when no customer with the given ID exists for the caller's entity.

##### Webhooks

- [Customer deleted](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-customers-customer-deleted.md): Triggered when the `customers.customer.deleted` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.
- [Customers capability changed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-customers-capability-changed.md): Triggered when the `customers.capability.changed` webhook event is emitted. Your API will receive a POST request at the webhook URL you configured.

#### Health

- [Health](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/health/health.md)
- [Maintenance canceled](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-health-maintenance-canceled.md): Fires when a previously scheduled maintenance window is canceled before it starts.
- [Maintenance completed](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-health-maintenance-completed.md): Fires when a maintenance window ends normally; the affected service's or operation's effective status is recomputed and returns to `operational`, unless an organic outage remains in progress, which continues to take priority.
- [Maintenance scheduled](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-health-maintenance-scheduled.md): Fires when a maintenance window is scheduled for a CDP service or operation, ahead of it starting. Subscribe for advance notice to plan around planned downtime.
- [Maintenance started](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-health-maintenance-started.md): Fires when a previously scheduled maintenance window begins; the affected service's or operation's effective status is recomputed and reports `under_maintenance`, unless an organic outage is already in progress, which continues to take priority. Subscribe to react in real time when a dependency ente…
- [Service health updated](https://docs.cdp.coinbase.com/api-reference/v2/webhooks/webhook-health-status-updated.md): Fires whenever the operational status of a CDP service or operation changes — an outage begins, its severity changes, or it recovers to `operational`. Subscribe to react to CDP disruptions in real time.

#### Webhooks

- [Webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/webhooks.md)
- [Get webhook subscription](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/get-webhook-subscription.md): Retrieve detailed information about a specific webhook subscription including configuration, status, creation timestamp, and webhook signature secret.
- [List webhook subscription events](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/list-webhook-subscription-events.md): Retrieve webhook event delivery attempts for a specific subscription. Returns event deliveries in descending order by creation time (newest first), including delivery status, retry count, and response details.
- [List webhook subscriptions](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/list-webhook-subscriptions.md): Retrieve a paginated list of webhook subscriptions for the authenticated project. Returns subscriptions for all CDP product events (onchain, onramp/offramp, wallet, etc.) in descending order by creation time.
- [Create webhook subscription](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/create-webhook-subscription.md): Subscribe to real-time events across CDP products. A webhook subscription provides a `targetURL` and other relevant endpoint configuration to enable receiving webhooks when events occur.
- [Update webhook subscription](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/update-webhook-subscription.md): Update an existing webhook subscription's configuration including event types, target URL, filtering criteria, and enabled status. All required fields must be provided, even if they are not being changed.
- [Delete webhook subscription](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/delete-webhook-subscription.md): Permanently delete a webhook subscription and stop all event deliveries. This action cannot be undone.
