Application-authenticated (HMAC) follow-up when a declared self-hosted OWNED counterparty
has a pending wallet verification (for example after crossing Travel Rule thresholds).
Only WALLET_SIGNATURE is completed on this endpoint; SUMSUB_LIVENESS is validated at
the edge but returns 422 because that flow is completed via webhook/widget.
Ownership message (same as declare signedMessage)
For WALLET_SIGNATURE, the message field must use the same fixed English template and
UTC date rules as signedMessage on POST /counterparty/self-hosted: embedded
DD/MM/YYYY must be yesterday, today, or tomorrow in UTC, and the full string must match
exactly (after date validation) for signed_address and userId in this request.
I am verifying ownership of the wallet address {signed_address} as customer {userId}. This message was signed on {DD/MM/YYYY} to confirm my control over this wallet.
Signature is checked with the same chain-specific rules as declare (EVM personal_sign,
Bitcoin Signed Message, Solana Ed25519 detached). See declare self-hosted and
signatureVerifiers.test.ts for how to build and sign the message.
signed_address must match the pending verification wallet (the declared counterparty
address); EVM addresses are compared case-insensitively.
Optional walletVerificationId selects the pending verification row; omit it to use the
server-resolved default for this wallet. It does not appear inside message.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
