curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/addresses/{addressId}/signing/message \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"message": "Verify ownership of deposit address for provider onboarding.",
"reference": "address-verify-001",
"metadata": {
"provider": "iron",
"addressType": "deposit"
}
}
'{
"data": {
"id": "880f9200-8449-5934-c2df-4769gd78ec20",
"hash": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f32446bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c42c",
"status": "SUCCESS",
"type": "SIGNED",
"senderAddress": "0xA234567890abcdef1234567890abcDEF12345678",
"recipientAddress": "0xA234567890abcdef1234567890abcDEF12345678",
"signedTransaction": {
"r": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f3244",
"s": "0x6bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c4",
"v": 28,
"signature": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f32446bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c42c"
},
"reference": "address-verify-001",
"metadata": {
"provider": "iron",
"addressType": "deposit"
},
"confirmed": true,
"network": "testnet",
"reason": "Verify ownership of deposit address for provider onboarding.",
"blockchain": {
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"name": "ethereum",
"slug": "ethereum"
},
"wallet": {
"id": "d236a191-c1d4-423c-a439-54ce6542ca41",
"name": "Ethereum Master Wallet",
"address": "0x947514e4B803e312C312da0F1B41fEDdbe15ae7a"
},
"createdAt": "2025-03-02T19:00:52.000Z"
},
"message": "Message signed successfully",
"statusCode": 200
}Sign a plain text message using a child address’s private key. The signature proves ownership of the specific child address and can be verified by any third party without accessing your private keys.
Supports all blockchain types:
The API validates the address belongs to the wallet, signs the message, performs round-trip signature verification, and returns the signature along with a transaction record.
| Parameter | Type | Required | Description |
|---|---|---|---|
| message | string | ✅ | Plain text message to sign (max 4096 chars) |
| reference | string | ❌ | Internal tracking ID for idempotency |
| metadata | object | ❌ | Custom key-value pairs stored with the transaction |
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{id}/addresses/{addressId}/signing/message \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"message": "Verify ownership of deposit address for provider onboarding.",
"reference": "address-verify-001",
"metadata": {
"provider": "iron",
"addressType": "deposit"
}
}
'{
"data": {
"id": "880f9200-8449-5934-c2df-4769gd78ec20",
"hash": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f32446bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c42c",
"status": "SUCCESS",
"type": "SIGNED",
"senderAddress": "0xA234567890abcdef1234567890abcDEF12345678",
"recipientAddress": "0xA234567890abcdef1234567890abcDEF12345678",
"signedTransaction": {
"r": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f3244",
"s": "0x6bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c4",
"v": 28,
"signature": "0xab123e7cbf335d730dee53f1064e71d462f57908cd5f76bcgdf4f086921f32446bb4929400ebd2f12cbec3ed9d6ac282f76e1d439d03848ef813eb0e87c990c42c"
},
"reference": "address-verify-001",
"metadata": {
"provider": "iron",
"addressType": "deposit"
},
"confirmed": true,
"network": "testnet",
"reason": "Verify ownership of deposit address for provider onboarding.",
"blockchain": {
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"name": "ethereum",
"slug": "ethereum"
},
"wallet": {
"id": "d236a191-c1d4-423c-a439-54ce6542ca41",
"name": "Ethereum Master Wallet",
"address": "0x947514e4B803e312C312da0F1B41fEDdbe15ae7a"
},
"createdAt": "2025-03-02T19:00:52.000Z"
},
"message": "Message signed successfully",
"statusCode": 200
}"YOUR_WALLET_ID"
"ADDRESS_OR_ID"
The plain text message to sign
4096"Verify ownership of deposit address for provider onboarding."
Internal tracking ID for idempotency
"address-verify-001"
Custom key-value pairs stored with the transaction
{
"provider": "iron",
"addressType": "deposit"
}