Key Custody

Threshold key generation, final round

Needs X-Passkey-Token from a tx-assert with action: tss_keygen and tx_digest = hex SHA-256 of the session id. Creates the client_tss wallet and returns its address. The browser derives the same public key package from the packages it already holds; store your share with PUT /v1/keys/{key_id}/client-share next.

post/v1/keys/tss/keygen/complete

Request

  • Base URL: https://api.1claw.co
  • URL: https://api.1claw.co/v1/keys/tss/keygen/complete
  • Auth: HTTP bearer

Headers

X-Passkey-Tokenstring required

Request body

session_idstring uuid required
client_round2string required

Base64 FROST DKG round-2 package from participant 2, addressed to the vault.

recovery_round2string required

Base64 FROST DKG round-2 package from participant 3, addressed to the vault.

kit_group_public_keystring required

Hex group public key the device sealed its offline recovery kit for, before this call. The vault commits the key (and sweeps a re-keyed wallet into it) only if it matches, and records kit coverage for share generation 1.

kit_proofstring required

Base64 Schnorr proof of possession of share 3 for generation 1 (@1claw/tss-wasm kit_share_proof), proving the page that sealed the kit held this key's recovery share. Required alongside kit_group_public_key: missing, malformed or not matching is a 400 and no key is created.

Response

Wallet created

key_idstring uuid
chainstring
curvestring
custody'client_tss'
addressstring
public_key_hexstring
public_key_packagestring

Base64 FROST public key package.

Changes

No recorded changes to this operation across all 1 revision of this API.