Skip to main content
POST
/
api
/
v1
/
wallets
/
{wallet_uuid}
/
message-sign
Sign a message
import requests

url = "https://api.example.com/api/v1/wallets/{wallet_uuid}/message-sign"

payload = {
    "chain_id": "<string>",
    "destination_type": "eip712",
    "eip712_typed_data": {},
    "source_address": "<string>",
    "description": "<string>",
    "sync": True,
    "request_id": "<string>"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "result": {
    "status": 123,
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "idempotent": false,
    "request_id": "<string>",
    "status_display": "",
    "approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "destination_type": "eip712",
    "signature": "<string>"
  },
  "success": true,
  "suggestion": "",
  "message": "",
  "meta": {
    "total": 123,
    "offset": 123,
    "limit": 123,
    "has_more": true,
    "after": "<string>",
    "before": "<string>"
  }
}

Headers

X-API-Key
string | null

Path Parameters

wallet_uuid
string<uuid>
required

The UUID of the wallet that will sign the message. Retrieve this value from the id field returned when the wallet was created.

Body

application/json

Request payload for message signing.

Currently supports EIP-712 structured data signing. The destination_type field determines which payload field is required.

chain_id
string
required

CAW/WaaS chain ID, e.g. 'ETH', 'SETH'

destination_type
enum<string>
default:eip712

Signing type. Determines which payload field is used.

Available options:
eip712
eip712_typed_data
Eip712 Typed Data · object

Complete EIP-712 typed data: {domain, types, primaryType, message}. Required when destination_type='eip712'.

source_address
string | null

Specific address to sign with. If omitted, the wallet's most recently created address for this chain is used.

description
string | null
Maximum string length: 512
sync
boolean
default:true

True: wait for signature before responding. False: return immediately after submit.

request_id
string | null

Idempotency key. Replays are scoped to the same principal.

Maximum string length: 255

Response

Successful Response

result
MessageSignResult · object
required

Response for message signing.

success
boolean
default:true
suggestion
string
default:""
message
string
default:""
meta
PaginationMeta · object

Pagination metadata for list responses.

Supports both legacy offset-based and cursor-based pagination. Cursor fields (has_more, after, before) are populated for cursor-paginated endpoints. Legacy fields (offset, limit) are populated when the caller uses the deprecated offset parameter.