---
title: "Share refresh, phase 1 done"
method: POST
path: "/v1/keys/{key_id}/tss/refresh/complete"
tags: ["Key Custody"]
---

# Share refresh, phase 1 done

`POST /v1/keys/{key_id}/tss/refresh/complete`

## Request

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

The vault stores its new share for the next generation as pending. Nothing
live changes: the old shares, wraps and kit keep working until commit.
Next, wrap the new device share for `generation` (PUT client-share with
`generation`), seal and save a new kit, then commit.

## Path parameters

- `key_id` string, uuid, required

## Request body

- object
  - `session_id` string, uuid, required
  - `client_round2` string, required
  - `recovery_round2` string, required

## Response `200`

Pending

- object
  - `key_id` string, uuid
  - `generation` integer
  - `public_key_package` string

## Other responses

- `400`: Invalid request
- `404`: Resource not found
- `409`: Resource already exists or conflict

---

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