Passer au contenu principal
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
}

Autorisations

x-api-key
string
header
requis

Paramètres de chemin

id
string
requis
Exemple:

"YOUR_WALLET_ID"

Corps

application/json
message
string
Exemple:

"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
string
Exemple:

"OPTIONAL_METADATA"

note
string
Exemple:

"OPTIONAL_NOTE"

Réponse

200 - application/json

200 - Solana / 200 - Tron

data
object
message
string
Exemple:

"Message signed successfully"

statusCode
number
Exemple:

200