Request to unstake a wallet
curl --request POST \
--url https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>",
"inputs": {
"amount": "<string>",
"validator_allocations": [
{
"validator_address": "<string>",
"amount": "<string>"
}
]
}
}
'import requests
url = "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake"
payload = {
"idempotency_key": "<string>",
"inputs": {
"amount": "<string>",
"validator_allocations": [
{
"validator_address": "<string>",
"amount": "<string>"
}
]
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '<string>',
inputs: {
amount: '<string>',
validator_allocations: [{validator_address: '<string>', amount: '<string>'}]
}
})
};
fetch('https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotency_key' => '<string>',
'inputs' => [
'amount' => '<string>',
'validator_allocations' => [
[
'validator_address' => '<string>',
'amount' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"wallet_id": "<string>",
"transaction_id": "<string>",
"activity_id": "<string>"
}Staking
Request to unstake a wallet
Creates an execution request to unstake delegated or staked funds in a wallet
POST
/
v1
/
portfolios
/
{portfolio_id}
/
wallets
/
{wallet_id}
/
staking
/
unstake
Request to unstake a wallet
curl --request POST \
--url https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>",
"inputs": {
"amount": "<string>",
"validator_allocations": [
{
"validator_address": "<string>",
"amount": "<string>"
}
]
}
}
'import requests
url = "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake"
payload = {
"idempotency_key": "<string>",
"inputs": {
"amount": "<string>",
"validator_allocations": [
{
"validator_address": "<string>",
"amount": "<string>"
}
]
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '<string>',
inputs: {
amount: '<string>',
validator_allocations: [{validator_address: '<string>', amount: '<string>'}]
}
})
};
fetch('https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotency_key' => '<string>',
'inputs' => [
'amount' => '<string>',
'validator_allocations' => [
[
'validator_address' => '<string>',
'amount' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/staking/unstake")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotency_key\": \"<string>\",\n \"inputs\": {\n \"amount\": \"<string>\",\n \"validator_allocations\": [\n {\n \"validator_address\": \"<string>\",\n \"amount\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"wallet_id": "<string>",
"transaction_id": "<string>",
"activity_id": "<string>"
}Body
application/json
StakingUnstakeRequest represents a request to initiate an unstaking operation.
The client generated idempotency key for requested execution. Subsequent requests using the same key will fail
WalletUnstakeInputs contains the custom inputs for unstaking operations on a wallet. Requirements and supported fields vary by asset type.
Show child attributes
Show child attributes
Response
200 - application/json
A successful response.
StakingUnstakeResponse contains the response data from initiating an unstaking operation.
Was this page helpful?
⌘I