COYNS DOCS← Back to Home

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": { ... }
}