CDP API V1
REST API
- Addresses
- Assets
- Networks
- Smart Contracts
- Staking
- POSTBroadcast a staking operation for wallet
- POSTBuild a new staking operation
- POSTBuild a new staking operation for wallet
- GETFetch historical staking balances
- POSTFetch staking rewards
- GETGet latest staking operation
- GETGet latest staking operation for wallet
- POSTGet staking context
- GETGet validator by ID
- GETList validators
- POST
- Trades
- Transfers
- Wallets
- Webhooks
- Onramp/Offramp
JSON-RPC API
Build a new staking operation
Builds a new staking operation containing a dynamic list of staking transactions based on the specified network, asset, address, and custom options.
It returns a StakingOperation resource, a unified interface for the entire staking process. Regardless of network complexity, the API abstracts away all the underlying details through it. You can iterate through this resource to access each staking transaction and have them be signed and broadcasted to land the staking transaction onchain.
Read up more about the stake operation and how to interact with it here.
curl --request POST \
--url https://api.cdp.coinbase.com/platform/v1/stake/build \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"network_id": "ethereum-mainnet",
"asset_id": "ETH",
"address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"action": "unstake",
"options": {}
}'
{
"id": "d91d652b-d020-48d4-bf19-5c5eb5e280c7",
"wallet_id": "d91d652b-d020-48d4-bf19-5c5eb5e280c7",
"network_id": "ethereum-hoodi",
"address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"status": "initialized",
"transactions": [
{
"network_id": "base-sepolia",
"from_address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"unsigned_payload": "<string>",
"signed_payload": "<string>",
"transaction_hash": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"transaction_link": "https://sepolia.basescan.org/tx/0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"status": "pending",
"content": {
"from": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"gas": 1000,
"gas_price": 1000,
"hash": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"input": "<string>",
"nonce": 136,
"to": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"index": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"value": 100,
"type": 2,
"max_fee_per_gas": 190,
"max_priority_fee_per_gas": 100,
"priority_fee_per_gas": 1000,
"transaction_access_list": {
"access_list": [
{
"address": "<string>",
"storage_keys": [
"<string>"
]
}
]
},
"flattened_traces": [
{
"error": "<string>",
"type": "<string>",
"from": "<string>",
"to": "<string>",
"value": "<string>",
"gas": 123,
"gas_used": 123,
"input": "<string>",
"output": "<string>",
"sub_traces": 123,
"trace_address": [
123
],
"trace_type": "<string>",
"call_type": "<string>",
"trace_id": "<string>",
"status": 123,
"block_hash": "<string>",
"block_number": 123,
"transaction_hash": "<string>",
"transaction_index": 123
}
],
"block_timestamp": "2023-04-01T12:00:00Z",
"mint": "0",
"rlp_encoded_tx": "0x02f582426882013d8502540be4008502540be41c830493e094a55416de5de61a0ac1aa8970a280e04388b1de4b6f843a4b66f1c0808080"
}
}
],
"metadata": "<any>"
}
Authorizations
Enter your JSON Web Token (JWT) here. Refer to the Generate JWT section of our Authentication docs for information on how to generate your Bearer Token.
Body
Response
successful staking transaction generated
A list of onchain transactions to help realize a staking action.
curl --request POST \
--url https://api.cdp.coinbase.com/platform/v1/stake/build \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"network_id": "ethereum-mainnet",
"asset_id": "ETH",
"address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"action": "unstake",
"options": {}
}'
{
"id": "d91d652b-d020-48d4-bf19-5c5eb5e280c7",
"wallet_id": "d91d652b-d020-48d4-bf19-5c5eb5e280c7",
"network_id": "ethereum-hoodi",
"address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"status": "initialized",
"transactions": [
{
"network_id": "base-sepolia",
"from_address_id": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"unsigned_payload": "<string>",
"signed_payload": "<string>",
"transaction_hash": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"transaction_link": "https://sepolia.basescan.org/tx/0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"status": "pending",
"content": {
"from": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"gas": 1000,
"gas_price": 1000,
"hash": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"input": "<string>",
"nonce": 136,
"to": "0xfc807D1bE4997e5C7B33E4d8D57e60c5b0f02B1a",
"index": "0x53e11e94ebb2438d6ddcfa07dabc9b551d2f440f8363fea941083bc397a86a42",
"value": 100,
"type": 2,
"max_fee_per_gas": 190,
"max_priority_fee_per_gas": 100,
"priority_fee_per_gas": 1000,
"transaction_access_list": {
"access_list": [
{
"address": "<string>",
"storage_keys": [
"<string>"
]
}
]
},
"flattened_traces": [
{
"error": "<string>",
"type": "<string>",
"from": "<string>",
"to": "<string>",
"value": "<string>",
"gas": 123,
"gas_used": 123,
"input": "<string>",
"output": "<string>",
"sub_traces": 123,
"trace_address": [
123
],
"trace_type": "<string>",
"call_type": "<string>",
"trace_id": "<string>",
"status": 123,
"block_hash": "<string>",
"block_number": 123,
"transaction_hash": "<string>",
"transaction_index": 123
}
],
"block_timestamp": "2023-04-01T12:00:00Z",
"mint": "0",
"rlp_encoded_tx": "0x02f582426882013d8502540be4008502540be41c830493e094a55416de5de61a0ac1aa8970a280e04388b1de4b6f843a4b66f1c0808080"
}
}
],
"metadata": "<any>"
}