---
title: "Rotate a signing key for a chain"
method: POST
path: "/v1/agents/{agent_id}/signing-keys/{chain}/rotate"
tags: ["Signing Keys"]
---

# Rotate a signing key for a chain

`POST /v1/agents/{agent_id}/signing-keys/{chain}/rotate`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/agents/{agent_id}/signing-keys/{chain}/rotate`
- Auth: HTTP bearer

Human users only. Generates a new server-held key for the chain and
retires the old one. A self-custody (`client_tss`) agent key cannot be
rotated: anyone other than its owner gets 403, and its owner gets 409
(rotating would replace it with a server key; deactivate it as its owner
and create the replacement you want). Gated by control-plane consensus as
`signing_key.rotate` (202 with `pending_approval_id`; call again with
`?approval_id=`). The approval is spent only after the new key is stored
and escrowed.

## Path parameters

- `agent_id` string, uuid, required
- `chain` string, required

## Query parameters

- `approval_id` string, uuid

## Response `200`

Rotated signing key

- SigningKeyResponse
  - `id` string, uuid
  - `agent_id` string, uuid
  - `chain` string
  - `curve` string
  - `public_key` string
  - `address` string, nullable
  - `key_version` integer
  - `is_active` boolean
  - `created_at` string, date-time
  - `rotated_at` string, date-time, nullable
  - `custody` 'server' | 'client_tss': `server` — 1claw holds the whole private key and can sign alone. `client_tss` — 2-of-3 threshold key; its human owner holds shares 2 and 3.
  - `owner_user_id` string, uuid: `client_tss` only: the human who can back up, provision and restore the key.
  - `backup` object: `client_tss` only (list): the key's backup state, as on treasury wallets.

## Other responses

- `202`: The org requires M-of-N consensus on `signing_key.rotate`. Nothing was rotated.
- `403`: Insufficient permissions
- `404`: Resource not found
- `409`: The active key is a self-custody (`client_tss`) key; rotating would replace it with a server key.

---

[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)
