Skip to main content
POST
Sign a message with a segregated wallet

Authorizations

Authorization
string
header
required

Session JWT (from register/login) or API key (pk_...). X-API-Key: <token> is accepted as an alternative header.

Path Parameters

walletID
string<uuid>
required

Body

application/json
purpose
enum<string>

Purpose of the proof (default wallet_ownership). wallet_link is not accepted here — use POST /v1/wallet-links/challenges to link an external wallet.

Available options:
wallet_ownership,
treasury_attestation
statement
string

Optional statement the wallet attests to (max 140 runes).

Response

Signature proof created and signed.

proof
object

Cryptographic proof that a wallet signed a structured CBPay message (EIP-191 ETH/EVM, TIP-191 TRON). Publicly verifiable via verify_url. The envelope is the exact anti-phishing message the wallet signed (Domain / Purpose / Wallet / Nonce / Issued / Expires / Statement lines; the Account line only appears for wallet_link proofs). Proofs live 10 minutes (expires_at); a signed proof stays publicly verifiable after expiry.

Last modified on August 22, 2026