---
title: "Agent threshold signing, round 2"
method: POST
path: "/v1/agents/{agent_id}/tss/sign/complete"
tags: ["Key Custody"]
---

# Agent threshold signing, round 2

`POST /v1/agents/{agent_id}/tss/sign/complete`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/agents/{agent_id}/tss/sign/complete`
- Auth: HTTP bearer

Billed as a signature before signing. The signing session must trace back
to a prepare that wrote a `prepared` ledger row; one that did not is
refused with 403 ("prepare it again"). On success the row moves to
`signed`, so it keeps counting toward daily caps whether or not the
agent broadcasts through 1Claw.

## Request body

- TssSignCompleteRequest
  - `session_id` string, uuid, required
  - `client_commitments` string, required: Base64 FROST signing commitments from the client.
  - `client_signature_share` string, required: Base64 FROST signature share from the client.
  - `client_commitments_all` string[]: One per payload, in order, when the transaction has several (Bitcoin inputs). The single fields are then ignored.
  - `client_signature_shares_all` string[]: One per payload, in order, alongside `client_commitments_all`.

## Response `200`

Signature

- TssSignCompleteResponse
  - `key_id` string, uuid, required
  - `message_digest` string, required
  - `signature` string, required: Base64 64-byte signature over the (first) payload: Ed25519, or BIP340 for a Taproot key.
  - `signature_hex` string, required
  - `signatures` string[], required: Every signature (Base64), one per payload; `signature` is the first.

## Other responses

- `400`: Invalid request
- `401`: Authentication required or invalid
- `403`: Insufficient permissions
- `404`: Resource not found
- `409`: Resource already exists or conflict

## Changes

- **2026-10-20** `5fa0918f3b41`: 3 info
  - added the new optional request property `client_commitments_all`
  - added the new optional request property `client_signature_shares_all`
  - added the media type `application/json` for the response with the status `200`

[Operation history](https://skmtc.dev/1claw/apis/1claw-api/changes/v1/agents/:agent_id/tss/sign/complete/post.md)

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/5fa0918f3b41?raw)
