Key Custody

Threshold signing, round 1

Changed on

Needs X-Passkey-Token from a tx-assert with action: tss_sign and tx_digest = hex SHA-256 of message. The message must be exactly one returned by POST /v1/treasury/wallets/{chain}/tss/prepare for this key, within the prepared session's lifetime; any other message is refused with 403. It must also be a shape this path signs (for Solana: System transfers from the wallet, optionally with a memo, the wallet as the only signer, legacy message); anything else, such as a token approval or an authority change, is refused with 400. Every transfer destination is checked against the OFAC SDN list before the vault commits. Returns the vault's signing commitments; nonces are single-use and expire with the session.

post/v1/keys/{key_id}/tss/sign/begin

Request

  • Base URL: https://api.1claw.co
  • URL: https://api.1claw.co/v1/keys/{key_id}/tss/sign/begin
  • Auth: HTTP bearer

Headers

X-Passkey-Tokenstring required

Request body

messagestring required

Base64 bytes to sign (the serialised transaction message).

Response

Session opened

session_idstring uuid required
key_idstring uuid required
message_digeststring required

Hex SHA-256 of the message; what the passkey token was bound to.

server_commitmentsstring required

Base64 FROST signing commitments from the vault (first payload).

chainstring required
wallet_addressstring required

The wallet the transaction must spend from.

signing_payloadstring required

Base64 bytes the threshold signature covers, derived from the message by the chain's rule (Solana: the message; XRPL: its signing data; Cardano: blake2b-256 of the body; Bitcoin: the first input's BIP341 sighash). The device derives them itself and refuses on mismatch.

signing_payloadsstring[] required

Every payload (Base64), one per input for a Bitcoin transaction; signing_payload is the first. The device signs each with its own round.

server_commitments_allstring[] required

The vault's commitments, one per payload; server_commitments is the first.

expires_atstring date-time required

Changes

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      the response property became required for the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status