Create Address
curl --request POST \
--url https://secureapi.tender.cash/v1/api/wallet/address \
--header 'Content-Type: <content-type>' \
--header 'authorization: <api-key>' \
--header 'x-access-id: <x-access-id>' \
--header 'x-request-id: <x-request-id>' \
--header 'x-timestamp: <x-timestamp>' \
--data '
{
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"networks": [
"ethereum",
"polygon"
]
}
'const options = {
method: 'POST',
headers: {
authorization: '<api-key>',
'x-timestamp': '<x-timestamp>',
'x-request-id': '<x-request-id>',
'x-access-id': '<x-access-id>',
'Content-Type': '<content-type>'
},
body: JSON.stringify({
wallet_reference: 'user-8821',
address_reference: 'slot-2',
networks: ['ethereum', 'polygon']
})
};
fetch('https://secureapi.tender.cash/v1/api/wallet/address', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://secureapi.tender.cash/v1/api/wallet/address"
payload = {
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"networks": ["ethereum", "polygon"]
}
headers = {
"authorization": "<api-key>",
"x-timestamp": "<x-timestamp>",
"x-request-id": "<x-request-id>",
"x-access-id": "<x-access-id>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://secureapi.tender.cash/v1/api/wallet/address",
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([
'wallet_reference' => 'user-8821',
'address_reference' => 'slot-2',
'networks' => [
'ethereum',
'polygon'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>",
"authorization: <api-key>",
"x-access-id: <x-access-id>",
"x-request-id: <x-request-id>",
"x-timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "success",
"message": "success",
"data": {
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"addresses": [
{
"network": "ethereum",
"address": "0x111...",
"address_reference": "slot-2"
},
{
"network": "polygon",
"address": "0x222...",
"address_reference": "slot-2"
}
]
}
}Subwallets
Create Address
Generate additional blockchain addresses on specific networks for an existing subwallet
POST
/
v1
/
api
/
wallet
/
address
Create Address
curl --request POST \
--url https://secureapi.tender.cash/v1/api/wallet/address \
--header 'Content-Type: <content-type>' \
--header 'authorization: <api-key>' \
--header 'x-access-id: <x-access-id>' \
--header 'x-request-id: <x-request-id>' \
--header 'x-timestamp: <x-timestamp>' \
--data '
{
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"networks": [
"ethereum",
"polygon"
]
}
'const options = {
method: 'POST',
headers: {
authorization: '<api-key>',
'x-timestamp': '<x-timestamp>',
'x-request-id': '<x-request-id>',
'x-access-id': '<x-access-id>',
'Content-Type': '<content-type>'
},
body: JSON.stringify({
wallet_reference: 'user-8821',
address_reference: 'slot-2',
networks: ['ethereum', 'polygon']
})
};
fetch('https://secureapi.tender.cash/v1/api/wallet/address', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://secureapi.tender.cash/v1/api/wallet/address"
payload = {
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"networks": ["ethereum", "polygon"]
}
headers = {
"authorization": "<api-key>",
"x-timestamp": "<x-timestamp>",
"x-request-id": "<x-request-id>",
"x-access-id": "<x-access-id>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://secureapi.tender.cash/v1/api/wallet/address",
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([
'wallet_reference' => 'user-8821',
'address_reference' => 'slot-2',
'networks' => [
'ethereum',
'polygon'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>",
"authorization: <api-key>",
"x-access-id: <x-access-id>",
"x-request-id: <x-request-id>",
"x-timestamp: <x-timestamp>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "success",
"message": "success",
"data": {
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"addresses": [
{
"network": "ethereum",
"address": "0x111...",
"address_reference": "slot-2"
},
{
"network": "polygon",
"address": "0x222...",
"address_reference": "slot-2"
}
]
}
}Auth method: Signed (HMAC) — this endpoint requires the full set of signed
headers:
x-access-id, x-request-id, x-timestamp, and an HMAC-SHA256
authorization signature. See Authentication.Example
const res = await fetch(`${BASE}/wallet/address`, {
method: 'POST',
headers: makeHeaders(),
body: JSON.stringify({
wallet_reference: 'user-8821',
address_reference: 'slot-2',
networks: ['ethereum', 'polygon'],
}),
});
const { data } = await res.json();
/*
{
wallet_reference: 'user-8821',
address_reference: 'slot-2',
addresses: [
{ network: 'ethereum', address: '0x111...', address_reference: 'slot-2' },
{ network: 'polygon', address: '0x222...', address_reference: 'slot-2' }
]
}
*/
res = requests.post(
f"{BASE}/wallet/address",
headers=make_headers(),
json={
"wallet_reference": "user-8821",
"address_reference": "slot-2",
"networks": ["ethereum", "polygon"],
},
)
data = res.json()["data"]
Headers
string
required
Base64-encoded HMAC-SHA256 signature of the request payload using the API secretExample:
"5e73d044c44d733fcf819ad3409aaad..."string
required
Current timestamp in ISO 8601 formatExample:
"2025-03-15T09:45:53.000Z"string
required
Unique identifier for the request (UUID v4)Example:
"550e8400-e29b-41d4-a716-446655440000"string
required
Your API access ID provided by TenderExample:
"your-access-id-here"string
required
Example:
"application/json"Body
string
required
The reference of the wallet to add addresses to.Example:
"user-8821"string
required
A label for this batch of addresses — useful for grouping addresses by deposit slot or asset
type.Example:
"slot-2"array
required
List of network identifiers to create addresses on.Example:
["ethereum", "polygon"]Response
string
required
Example:
"success"string
required
Example:
"success"object
required
Authorizations
Signed (HMAC) authentication. Required headers: x-access-id, x-request-id (UUID v4), x-timestamp (ISO 8601), and authorization (Base64 HMAC-SHA256 signature of {timeStamp, requestId, accessId} using your access secret).
Headers
Body
application/json
Response
200 - application/json
Addresses created successfully