Treasury

Sign a message with a human wallet (EIP-191)

personal_sign over the given text, hashed as \x19Ethereum Signed Message:\n<len> + message — what viem's verifyMessage and ethers' verifyMessage expect.

Human callers only; an agent signs with its own key via POST /v1/agents/{agent_id}/sign. Gated exactly as a send is: X-Auth-Confirm step-up scored as a Send action, wallet access policies (WalletAction::Sign), and a refusal for wallets whose key is split or passkey-owned — those have no server-side key and will not fall back to one.

EVM chains only.

post/v1/treasury/wallets/{chain}/sign-message

Request

  • Base URL: https://api.1claw.co
  • URL: https://api.1claw.co/v1/treasury/wallets/{chain}/sign-message
  • Auth: HTTP bearer

Path parameters

chainstring required
Example:ethereum

Headers

X-Auth-Confirmstring required

Account password, or a rat_ token from POST /v1/auth/reauth/complete.

Request body

messagestring required

Example request

{
  "message": "Sign in to Example at 2026-10-01T10:00:00Z"
}

Response

Signature

signaturestring required

65-byte 0x-prefixed signature, r‖s‖v.

addressstring required

The signing wallet, so it can be passed straight to verifyMessage.

chainstring required

Changes

No recorded changes to this operation across all 2 revisions of this API.