Master Wallet Message
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/signing/message \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"message": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"metadata": "OPTIONAL_METADATA",
"note": "OPTIONAL_NOTE"
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{id}/signing/message"
payload = {
"message": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"metadata": "OPTIONAL_METADATA",
"note": "OPTIONAL_NOTE"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: 'I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.',
metadata: 'OPTIONAL_METADATA',
note: 'OPTIONAL_NOTE'
})
};
fetch('https://api.blockradar.co/v1/wallets/{id}/signing/message', 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.blockradar.co/v1/wallets/{id}/signing/message",
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([
'message' => 'I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.',
'metadata' => 'OPTIONAL_METADATA',
'note' => 'OPTIONAL_NOTE'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.blockradar.co/v1/wallets/{id}/signing/message"
payload := strings.NewReader("{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{id}/signing/message")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{id}/signing/message")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amlScreening": {},
"amount": null,
"amountPaid": null,
"amountUSD": "0.00",
"asset": null,
"assetSwept": null,
"assetSweptAmount": null,
"assetSweptAt": null,
"assetSweptGasFee": null,
"assetSweptHash": null,
"assetSweptRecipientAddress": null,
"assetSweptSenderAddress": null,
"blockHash": null,
"blockNumber": null,
"blockchain": {
"configurations": null,
"createdAt": "2024-10-22T10:57:33.465Z",
"derivationPath": "m/44'/501'/0'",
"id": "196badf5-380f-4480-ab4a-d0e4304e91f0",
"isActive": true,
"isEvmCompatible": false,
"isL2": false,
"name": "solana",
"networkFeeModel": "native",
"slug": "solana",
"symbol": "sol",
"tokenStandard": null,
"updatedAt": "2024-11-26T13:04:13.951Z"
},
"chainId": null,
"confirmations": null,
"confirmed": true,
"createdAt": "2026-03-02T11:09:44.137Z",
"createdChannel": "dashboard",
"currency": "USD",
"fee": null,
"feeHash": null,
"feeUSD": null,
"gasFee": null,
"gasPrice": null,
"gasUsed": null,
"hash": "5bfTmhezuvaceHBbQqfsZewsg9JLEwgFTws9r1XxcVougFKx3QG7jKU7sWJqaWXvvXCoFQkqkm5taUyvkFRwpaCj",
"id": "b4d7b006-1156-4152-a50b-3d8583679456",
"isAutoSweep": false,
"metadata": null,
"network": "testnet",
"note": null,
"processingProviderReference": null,
"processingReason": null,
"processingStatus": "PENDING",
"rate": null,
"rateUSD": "0.00",
"reason": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"recipientAddress": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"reference": "4TWtqR6V14sljfQA8Ncy",
"senderAddress": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"signedTransaction": {
"signature": "5bfTmhezuvaceHBbQqfsZewsg9JLEwgFTws9r1XxcVougFKx3QG7jKU7sWJqaWXvvXCoFQkqkm5taUyvkFRwpaCj"
},
"status": "SUCCESS",
"toAmount": null,
"toCurrency": null,
"tokenAddress": null,
"type": "SIGNED",
"updatedAt": "2026-03-02T11:09:44.137Z",
"wallet": {
"address": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"configurations": {
"addresses": {
"isActive": true,
"prefunding": {
"assets": [
{
"alwaysMaintain": true,
"amount": "4",
"blockchain": "solana",
"createdAt": "2025-09-02T11:50:53.807Z",
"currency": "USD",
"id": "17b48f89-ab7e-4962-a0cc-df5b7b5486b2",
"isActive": true,
"name": "Solana Network Fee Funding",
"symbol": "SOL",
"updatedAt": "2025-09-02T11:50:53.807Z"
}
],
"isActive": true
}
}
},
"createdAt": "2024-11-05T07:47:40.388Z",
"derivationPath": "m/44'/501'/0'/0'",
"description": "This is Solana Testnet Wallet",
"id": "f8d8e16f-af6f-4707-9ea9-2075eefd95eb",
"isActive": true,
"name": "Solana Wallet",
"network": "testnet",
"status": "ACTIVE",
"updatedAt": "2025-09-02T11:50:53.812Z"
}
},
"message": "Message signed successfully",
"statusCode": 200
}Master Wallet Message
Master Wallet Message
POST
/
v1
/
wallets
/
{id}
/
signing
/
message
Master Wallet Message
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/signing/message \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"message": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"metadata": "OPTIONAL_METADATA",
"note": "OPTIONAL_NOTE"
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{id}/signing/message"
payload = {
"message": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"metadata": "OPTIONAL_METADATA",
"note": "OPTIONAL_NOTE"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: 'I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.',
metadata: 'OPTIONAL_METADATA',
note: 'OPTIONAL_NOTE'
})
};
fetch('https://api.blockradar.co/v1/wallets/{id}/signing/message', 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.blockradar.co/v1/wallets/{id}/signing/message",
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([
'message' => 'I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.',
'metadata' => 'OPTIONAL_METADATA',
'note' => 'OPTIONAL_NOTE'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.blockradar.co/v1/wallets/{id}/signing/message"
payload := strings.NewReader("{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{id}/signing/message")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{id}/signing/message")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.\",\n \"metadata\": \"OPTIONAL_METADATA\",\n \"note\": \"OPTIONAL_NOTE\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amlScreening": {},
"amount": null,
"amountPaid": null,
"amountUSD": "0.00",
"asset": null,
"assetSwept": null,
"assetSweptAmount": null,
"assetSweptAt": null,
"assetSweptGasFee": null,
"assetSweptHash": null,
"assetSweptRecipientAddress": null,
"assetSweptSenderAddress": null,
"blockHash": null,
"blockNumber": null,
"blockchain": {
"configurations": null,
"createdAt": "2024-10-22T10:57:33.465Z",
"derivationPath": "m/44'/501'/0'",
"id": "196badf5-380f-4480-ab4a-d0e4304e91f0",
"isActive": true,
"isEvmCompatible": false,
"isL2": false,
"name": "solana",
"networkFeeModel": "native",
"slug": "solana",
"symbol": "sol",
"tokenStandard": null,
"updatedAt": "2024-11-26T13:04:13.951Z"
},
"chainId": null,
"confirmations": null,
"confirmed": true,
"createdAt": "2026-03-02T11:09:44.137Z",
"createdChannel": "dashboard",
"currency": "USD",
"fee": null,
"feeHash": null,
"feeUSD": null,
"gasFee": null,
"gasPrice": null,
"gasUsed": null,
"hash": "5bfTmhezuvaceHBbQqfsZewsg9JLEwgFTws9r1XxcVougFKx3QG7jKU7sWJqaWXvvXCoFQkqkm5taUyvkFRwpaCj",
"id": "b4d7b006-1156-4152-a50b-3d8583679456",
"isAutoSweep": false,
"metadata": null,
"network": "testnet",
"note": null,
"processingProviderReference": null,
"processingReason": null,
"processingStatus": "PENDING",
"rate": null,
"rateUSD": "0.00",
"reason": "I am verifying ownership of the wallet address 0x... as customer cust_123. This message was signed on 2026-03-03 to confirm my control over this wallet.",
"recipientAddress": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"reference": "4TWtqR6V14sljfQA8Ncy",
"senderAddress": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"signedTransaction": {
"signature": "5bfTmhezuvaceHBbQqfsZewsg9JLEwgFTws9r1XxcVougFKx3QG7jKU7sWJqaWXvvXCoFQkqkm5taUyvkFRwpaCj"
},
"status": "SUCCESS",
"toAmount": null,
"toCurrency": null,
"tokenAddress": null,
"type": "SIGNED",
"updatedAt": "2026-03-02T11:09:44.137Z",
"wallet": {
"address": "DiikCme9VyoW9W7DpbXzmKVfSQhynn3g6j6VXcnCr2gH",
"configurations": {
"addresses": {
"isActive": true,
"prefunding": {
"assets": [
{
"alwaysMaintain": true,
"amount": "4",
"blockchain": "solana",
"createdAt": "2025-09-02T11:50:53.807Z",
"currency": "USD",
"id": "17b48f89-ab7e-4962-a0cc-df5b7b5486b2",
"isActive": true,
"name": "Solana Network Fee Funding",
"symbol": "SOL",
"updatedAt": "2025-09-02T11:50:53.807Z"
}
],
"isActive": true
}
}
},
"createdAt": "2024-11-05T07:47:40.388Z",
"derivationPath": "m/44'/501'/0'/0'",
"description": "This is Solana Testnet Wallet",
"id": "f8d8e16f-af6f-4707-9ea9-2075eefd95eb",
"isActive": true,
"name": "Solana Wallet",
"network": "testnet",
"status": "ACTIVE",
"updatedAt": "2025-09-02T11:50:53.812Z"
}
},
"message": "Message signed successfully",
"statusCode": 200
}Authorizations
Path Parameters
Example:
"YOUR_WALLET_ID"
Body
application/json
⌘I

