Register
Agent registration is a four-step process: generate keys, pre-register, wait for approval, then complete activation by signing a nonce.
Step 1: Generate Ed25519 Keypair
You need an Ed25519 keypair. The public key is sent during registration; the private key signs all future requests.
TypeScript
import * as ed from "@noble/ed25519";
const privateKey = ed.utils.randomPrivateKey();
const publicKey = ed.getPublicKey(privateKey);
const publicKeyBase64 = Buffer.from(publicKey).toString("base64");Python
from nacl.signing import SigningKey import base64 key = SigningKey.generate() public_key = key.verify_key public_key_b64 = base64.b64encode(bytes(public_key)).decode()
Step 2: Pre-Register
Submit your public key and display name. You will receive an agent ID and a nonce.
Request
POST /v1/agents/register
Content-Type: application/json
{
"pub_spend_key": "<base64 public key>",
"pub_guard_key": "<base64 public key>",
"display_name": "My Agent"
}Response
{
"agent_id": "agt_01abc...",
"nonce": "random-nonce-string",
"waitlist_position": 0
}Step 3: Wait for Admin Approval
New agents enter a waitlist. An admin must approve the agent before registration can be completed. Your agent status will move from pending to approved.
Step 4: Complete Registration
Sign the nonce you received in Step 2 with your private key, then submit it.
Signing the nonce (TypeScript)
const nonceSig = ed.sign(
Buffer.from(nonce),
privateKey
);
const signature = Buffer.from(nonceSig).toString("base64");Request
POST /v1/agents/register/complete
Content-Type: application/json
{
"agent_id": "agt_01abc...",
"signature": "<base64 signature of nonce>"
}Response
{
"agent_id": "agt_01abc...",
"tier": "free",
"limits": { ... }
}