Hanzo AI

Create keys

Rotates the attestation signing key: a new Ed25519 key is generated, sealed in KMS beside the others, and signs every statement from now on; every earlier key is retired — still published, its private half destroyed.

POST /v1/principal/keys

Addresshttps://api.hanzo.ai/v1/principal/keys
MethodPOST
Operationpost_principal_keys
AuthAuthorization: Bearer $HANZO_API_KEY

Rotates the attestation signing key: a new Ed25519 key is generated, sealed in KMS beside the others, and signs every statement from now on; every earlier key is retired — still published, its private half destroyed. SuperAdmin only, on the audit trail before the new set is written, and followed on the trail by a correction if the write does not take. One rotation runs at a time, and one that finds the set rotated under it since it read it is refused (409). The first call provisions the deployment's first key.

Request

The document declares no body for POST /v1/principal/keys. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's describe for post_principal_keys, which answers from the running route.

Response

StatusBodyMeaning
201principal.JWKScreated
defaultproblem-detailsrefused

201 body — 7 fields.

FieldInTypeAlwaysDescription
keysbodyprincipal.JWK[]—
keys[].algbodystring—Alg is EdDSA.
keys[].crvbodystring—Crv is Ed25519.
keys[].kidbodystring—Kid names the key; a statement's header carries it.
keys[].ktybodystring—Kty is OKP, an octet key pair.
keys[].usebodystring—Use is sig.
keys[].xbodystring—X is the public key, base64url without padding.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.


Principal API · All Hanzo APIs · Interactive reference

How is this guide?

On this page