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

# Import a signing key for a chain

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

## Request

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

Import an existing private key for a specific chain. Human-only,
requires password re-authentication.

## Path parameters

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

## Request body

- ImportKeyRequest
  - `private_key` string, required: The private key to import
  - `format` 'hex' | 'base64' | 'wif': Key format (default hex)

## Response `201`

Signing key imported

- 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

- `401`: Authentication required or invalid
- `403`: Insufficient permissions

---

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