curl --request POST \
--url https://api.kraken.com/funding/v1/addresses \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"network_id": "d9d375da-44b7-4be1-8a00-8b281acfe366"
},
"address_details": {
"crypto": {
"address": "0xBef7B36845cA31045E86D0B46DBCac4e6752..."
}
},
"name": "Personal Wallet",
"description": "My hardware wallet address"
}
'import requests
url = "https://api.kraken.com/funding/v1/addresses"
payload = {
"scope": { "network_id": "d9d375da-44b7-4be1-8a00-8b281acfe366" },
"address_details": { "crypto": { "address": "0xBef7B36845cA31045E86D0B46DBCac4e6752..." } },
"name": "Personal Wallet",
"description": "My hardware wallet address"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
scope: {network_id: 'd9d375da-44b7-4be1-8a00-8b281acfe366'},
address_details: {crypto: {address: '0xBef7B36845cA31045E86D0B46DBCac4e6752...'}},
name: 'Personal Wallet',
description: 'My hardware wallet address'
})
};
fetch('https://api.kraken.com/funding/v1/addresses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/funding/v1/addresses"
payload := strings.NewReader("{\n \"scope\": {\n \"network_id\": \"d9d375da-44b7-4be1-8a00-8b281acfe366\"\n },\n \"address_details\": {\n \"crypto\": {\n \"address\": \"0xBef7B36845cA31045E86D0B46DBCac4e6752...\"\n }\n },\n \"name\": \"Personal Wallet\",\n \"description\": \"My hardware wallet address\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
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))
}{
"address_id": "AB7J4FF-BGM7G-V2JMIH",
"verified": true
}Create Funding Address
Save a withdrawal address to the account for a funding method, network, or network group. See Adding a withdrawal address for how those scopes work.
API Key Permissions Required: Funds permissions - Add withdrawal addresses
curl --request POST \
--url https://api.kraken.com/funding/v1/addresses \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"network_id": "d9d375da-44b7-4be1-8a00-8b281acfe366"
},
"address_details": {
"crypto": {
"address": "0xBef7B36845cA31045E86D0B46DBCac4e6752..."
}
},
"name": "Personal Wallet",
"description": "My hardware wallet address"
}
'import requests
url = "https://api.kraken.com/funding/v1/addresses"
payload = {
"scope": { "network_id": "d9d375da-44b7-4be1-8a00-8b281acfe366" },
"address_details": { "crypto": { "address": "0xBef7B36845cA31045E86D0B46DBCac4e6752..." } },
"name": "Personal Wallet",
"description": "My hardware wallet address"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
scope: {network_id: 'd9d375da-44b7-4be1-8a00-8b281acfe366'},
address_details: {crypto: {address: '0xBef7B36845cA31045E86D0B46DBCac4e6752...'}},
name: 'Personal Wallet',
description: 'My hardware wallet address'
})
};
fetch('https://api.kraken.com/funding/v1/addresses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/funding/v1/addresses"
payload := strings.NewReader("{\n \"scope\": {\n \"network_id\": \"d9d375da-44b7-4be1-8a00-8b281acfe366\"\n },\n \"address_details\": {\n \"crypto\": {\n \"address\": \"0xBef7B36845cA31045E86D0B46DBCac4e6752...\"\n }\n },\n \"name\": \"Personal Wallet\",\n \"description\": \"My hardware wallet address\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<api-key>")
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))
}{
"address_id": "AB7J4FF-BGM7G-V2JMIH",
"verified": true
}Authorizations
The "API-Key" header should contain your API key.
Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path.
The "API-Nonce" header should contain an always-increasing 64-bit integer, most commonly a Unix timestamp in milliseconds. Each request must use a nonce greater than the nonce of the previous request signed with the same API key.
Query Parameters
Account ID
Body
Request to create a withdrawal address for a given network group, network or funding method.
- method_id
- network_id
- network_group_id
Show child attributes
Show child attributes
Show child attributes
Show child attributes
User provided name for the address. Must be unique and contain at least one non-whitespace character. Surrounding whitespace is removed.
1User provided description of the address.
Was this page helpful?