Keys endpoint
Single-call key generation
POST /api/v1/keys/generate returns spending and viewing keypairs plus a meta-address.
Endpoint
POST /api/v1/keys/generate
No request body is required.
Typical flow
Call the endpoint
Trigger key generation once per new recipient identity.
Store secrets securely
Persist spending_sk and viewing_sk in encrypted storage only.
Publish meta-address
Use meta_address with IPFS + ENS/SuiNS registration.
Example calls
- cURL
- JavaScript
curl -s -X POST https://backend.specterpq.com/api/v1/keys/generate | jq .
const res = await fetch("https://backend.specterpq.com/api/v1/keys/generate", {
method: "POST"
});
const keys = await res.json();
console.log(keys.meta_address);
Response schema
Hex-encoded spending public key (33-byte compressed secp256k1).
Hex-encoded spending secret key (sensitive).
Hex-encoded viewing public key.
Hex-encoded viewing secret key (sensitive).
Hex-encoded SPECTER meta-address combining spending + viewing public keys (1218 bytes).
SPECTER protocol version encoded in the meta-address (currently 2).
Never log or commit spending_sk or viewing_sk.
How `view_tag` is computed here
It is not computed here. Every announcement gets its own per-payment view_tag from the ML-KEM shared secret at stealth creation time.
What this endpoint does not do
It does not persist key material to disk and does not register ENS/SuiNS records.