Skip to main content
GET
/
v0
/
insto
/
custody
/
vaults
/
{vault_id}
/
whitelist
/
addresses
List whitelist addresses
curl --request GET \
  --url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/whitelist/addresses \
  --header 'api-key: <api-key>' \
  --header 'api-nonce: <api-key>' \
  --header 'api-otp: <api-key>' \
  --header 'api-sign: <api-key>'
import requests

url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/whitelist/addresses"

headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<api-key>",
"api-otp": "<api-key>"
}

response = requests.get(url, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {
'api-key': '<api-key>',
'api-sign': '<api-key>',
'api-nonce': '<api-key>',
'api-otp': '<api-key>'
}
};

fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/whitelist/addresses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/whitelist/addresses"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-sign", "<api-key>")
req.Header.Add("api-nonce", "<api-key>")
req.Header.Add("api-otp", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
[
  {
    "asset": "BTC",
    "asset_class": "currency",
    "address_name": "My BTC Wallet",
    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "tag": "destination-tag-42",
    "description": "Primary cold storage wallet",
    "beneficiary": {
      "recipient": "other",
      "type": "business",
      "name": "Blue Moon",
      "last_name": "Smith",
      "vasp_name": "Self-custody",
      "country": "US",
      "province": "California",
      "address_1": "123 Main St",
      "address_2": "Apt 4B",
      "city": "New York",
      "postal_code": "10001"
    }
  }
]
{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "asset_class is required when asset is supplied"
},
"detail": "asset supplied without asset_class",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Permission Denied",
"data": {
"message": "Caller lacks read access to vault VABCDEF234567A"
},
"detail": "The caller does not have access to the requested vault.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:gateway/ReadUpstream",
"status": 500,
"title": "Internal Server Error",
"data": "<unknown>",
"detail": "Failed to read response from upstream custody service.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:gateway/Connect",
"status": 503,
"title": "Service Unavailable",
"data": "<unknown>",
"detail": "Downstream custody service is temporarily unreachable; retry with backoff.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}

Authorizations

api-key
string
header
required
api-sign
string
header
required
api-nonce
string
header
required
api-otp
string
header
required

Path Parameters

vault_id
string
required

Vault identifier, a V-prefixed 14-char base32 string with a final check character.

Example:

"VABCDEF234567A"

Query Parameters

asset
string

Filter results to a single asset code (e.g. BTC). Requires asset_class when supplied.

Example:

"BTC"

asset_class
string

Asset class filter. Required when asset is supplied. Currently only currency is supported.

Example:

"currency"

Response

Whitelisted withdrawal addresses for the vault.

asset
string
required

Asset code of the whitelisted address (e.g. BTC, ETH, USD).

Example:

"BTC"

asset_class
string
required

Asset class. Currently always currency.

Example:

"currency"

address_name
string
required

Human-readable label assigned to the address at whitelisting time.

Example:

"My BTC Wallet"

address
string

Destination blockchain address. Omitted for entries that only carry beneficiary information.

Example:

"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"

tag
string

Destination tag, memo, or other secondary identifier required by chains that use one. Examples: XRP destination tag, EOS memo.

Example:

"destination-tag-42"

description
string

Free-text description provided when the address was whitelisted.

Example:

"Primary cold storage wallet"

beneficiary
object

Beneficiary details captured for the address. Omitted when no beneficiary information was provided.