Key Custody

Threshold signing, round 2 — aggregate and return the signature

Changed on

The vault produces its share, verifies the caller's, aggregates, and verifies the result under the group key before returning it. A bad share is a 400, never a published signature.

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

Request

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

Request body

session_idstring uuid required
client_commitmentsstring required

Base64 FROST signing commitments from the client.

client_signature_sharestring required

Base64 FROST signature share from the client.

client_commitments_allstring[]

One per payload, in order, when the transaction has several (Bitcoin inputs). The single fields are then ignored.

client_signature_shares_allstring[]

One per payload, in order, alongside client_commitments_all.

Response

Signature

key_idstring uuid required
message_digeststring required
signaturestring required

Base64 64-byte signature over the (first) payload: Ed25519, or BIP340 for a Taproot key.

signature_hexstring required
signaturesstring[] required

Every signature (Base64), one per payload; signature is the first.

Changes

    • info

      added the new optional request property

    • info

      added the new optional request property

    • 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