Hanzo
OpenapiWallet

Produces a secp256k1 signature from one of the caller org's wallets over a…

Produces a secp256k1 signature from one of the caller org's wallets over a 32-byte digest, through whichever custody backend that wallet uses.

POST /v1/wallet/{id}/sign

Addresshttps://api.hanzo.ai/v1/wallet/{id}/sign
MethodPOST
Operationpost_wallet_by_id_sign
AuthAuthorization: Bearer $HANZO_API_KEY

Produces a secp256k1 signature from one of the caller org's wallets over a 32-byte digest, through whichever custody backend that wallet uses. Give it either a digest (32 bytes as hex, signed verbatim) or a message (hashed with Keccak256 first) — exactly one is required. The private key never leaves its backend: KMS custody opens the sealed key in-process, MPC custody produces a threshold signature on the ring. The answer carries the digest that was signed alongside the signature, so a caller can verify what it got.

Request

3 fields, body application/json (required).

FieldInTypeRequiredDescription
idpathstringyes
digestbodystringDigest is a pre-computed 32-byte digest as hex, with or without the 0x prefix.
messagebodystringMessage is arbitrary text to hash with Keccak256 and sign.

Response

StatusBodyMeaning
200signatureok

200 body — 4 fields.

FieldInTypeAlwaysDescription
addressbodystringAddress is the wallet's on-chain address, the one this signature recovers to.
digestbodystringDigest is the 32-byte digest that was signed, hex with an 0x prefix.
signaturebodystringSignature is the 65-byte secp256k1 signature, hex with an 0x prefix.
walletIdbodystringWalletID is the wallet that signed.

Failure carries the platform error shape — see Errors.

Examples

hanzo wallets sign <id>

Wallet API · All Hanzo APIs · Interactive reference

How is this guide?

On this page