This document describes all public REST endpoints exposed by TKeeper.
Each endpoint enforces permission checks (see auth.md) and assumes that the node is unsealed and ready, unless stated otherwise.
/v1/keeper
Initializes TKeeper with the peer ID, threshold, and total number of nodes.
- See: init.md
Submits one or more Shamir shares to reconstruct the local key share (manual unseal).
Returns unsealing progress.
- See: seal.md
Seals the local key share, removing it from memory.
Used to force the node back into a locked state.
- Permissions:
tkeeper.system.seal
Returns current sealing status.
{
"sealedBy": "shamir | aws | google",
"state": "UNINITIALIZED | SEALED | UNSEALED",
"progress": {
"threshold": 3,
"total": 5,
"progress": 2,
"ready": false
}
}Triggers distributed key generation (or key share refreshing).
- Request body: see keygen.md
- Supports:
overwrite: true(requirestkeeper.dkg.generate.overwrite)refresh: truefor share refreshing
- Requires all peers to be online
Performs threshold signing using the specified key and MPC scheme.
- Supports:
GG20(1 operation max)FROST(multiple operations allowed)
- See: sign.md
Verifies a signature against a public key.
- See: sign.md
Returns the public key for the given key ID.
{
"data64": "base64-encoded public key"
}- Requires:
tkeeper.key.{keyId}.public
Returns the current node’s peerId.
{
"serviceId": 2,
"result": 2
}Returns basic readiness status:
{
"ready": true
}true: node is initialized and unsealed
Regenerates the internal integrity key used to authenticate internal peer-to-peer messages.
Used for re-keying or recovery.
- Permission:
tkeeper.integrity.regen
Injects a full private key into the system. The current node acts as a trusted dealer, splits the key into Shamir shares, and distributes them to all online peers.
- All nodes must be online during this operation
- Each peer receives and stores only its own share
- See: store.md
- Permission:
tkeeper.storage.write
Deletes the distributed key from all peers. The initiating node contacts every participant and removes the stored share.
- All nodes must be online
- If any peer is unreachable, the operation fails
- Permission:
tkeeper.storage.delete
Encrypts data using ECIES with the specified key ID and cipher.
Decrypts data using ECIES with the specified key ID and cipher.
Each endpoint requires a specific permission token.
For the full list and structure, refer to auth.md.