Request to unstake currency across a portfolio
curl --request POST \
--url https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/staking/unstake \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>",
"currency_symbol": "<string>",
"amount": "<string>",
"metadata": {
"external_id": "<string>"
},
"validator_provider": "VALIDATOR_PROVIDER_UNSPECIFIED"
}
'import requests
url = "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/staking/unstake"
payload = {
"idempotency_key": "<string>",
"currency_symbol": "<string>",
"amount": "<string>",
"metadata": { "external_id": "<string>" },
"validator_provider": "VALIDATOR_PROVIDER_UNSPECIFIED"
}
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>',
currency_symbol: '<string>',
amount: '<string>',
metadata: {external_id: '<string>'},
validator_provider: 'VALIDATOR_PROVIDER_UNSPECIFIED'
})
};
fetch('https://api.prime.coinbase.com/v1/portfolios/{portfolio_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}/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>',
'currency_symbol' => '<string>',
'amount' => '<string>',
'metadata' => [
'external_id' => '<string>'
],
'validator_provider' => 'VALIDATOR_PROVIDER_UNSPECIFIED'
]),
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}/staking/unstake"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\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}/staking/unstake")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prime.coinbase.com/v1/portfolios/{portfolio_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 \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\n}"
response = http.request(request)
puts response.read_body{
"activity_id": "<string>",
"transaction_id": "<string>"
}Request to unstake currency across a portfolio
Creates an execution request to unstake funds across a portfolio. This will unstake funds in one or more wallets in the portfolio, with a total bonded balance up to the requested unstake amount.
POST
/
v1
/
portfolios
/
{portfolio_id}
/
staking
/
unstake
Request to unstake currency across a portfolio
curl --request POST \
--url https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/staking/unstake \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>",
"currency_symbol": "<string>",
"amount": "<string>",
"metadata": {
"external_id": "<string>"
},
"validator_provider": "VALIDATOR_PROVIDER_UNSPECIFIED"
}
'import requests
url = "https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/staking/unstake"
payload = {
"idempotency_key": "<string>",
"currency_symbol": "<string>",
"amount": "<string>",
"metadata": { "external_id": "<string>" },
"validator_provider": "VALIDATOR_PROVIDER_UNSPECIFIED"
}
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>',
currency_symbol: '<string>',
amount: '<string>',
metadata: {external_id: '<string>'},
validator_provider: 'VALIDATOR_PROVIDER_UNSPECIFIED'
})
};
fetch('https://api.prime.coinbase.com/v1/portfolios/{portfolio_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}/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>',
'currency_symbol' => '<string>',
'amount' => '<string>',
'metadata' => [
'external_id' => '<string>'
],
'validator_provider' => 'VALIDATOR_PROVIDER_UNSPECIFIED'
]),
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}/staking/unstake"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\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}/staking/unstake")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prime.coinbase.com/v1/portfolios/{portfolio_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 \"currency_symbol\": \"<string>\",\n \"amount\": \"<string>\",\n \"metadata\": {\n \"external_id\": \"<string>\"\n },\n \"validator_provider\": \"VALIDATOR_PROVIDER_UNSPECIFIED\"\n}"
response = http.request(request)
puts response.read_body{
"activity_id": "<string>",
"transaction_id": "<string>"
}Path Parameters
The portfolio ID
Body
application/json
The client generated idempotency key (uuid required) for requested execution. Subsequent requests using the same key will not create new transactions.
The currency symbol to unstake
The quantity of the chosen currency to unstake
Show child attributes
Show child attributes
ValidatorProvider enumerates the ETH validator service providers accepted for unstaking.
Available options:
VALIDATOR_PROVIDER_UNSPECIFIED, VALIDATOR_PROVIDER_COINBASE_CLOUD, VALIDATOR_PROVIDER_MAVAN, VALIDATOR_PROVIDER_FIGMENT, VALIDATOR_PROVIDER_CODEFI, VALIDATOR_PROVIDER_ATTESTANT, VALIDATOR_PROVIDER_GALAXY Was this page helpful?
⌘I