Quick Start

This guide gets a local ZeroID instance running, registers an agent, and issues a short-lived access token you can use against downstream systems.

The examples below assume you are working from the open source zeroid repository and using the Highflame SDK integration for client-side calls.

Prerequisites

  • Docker and Docker Compose

  • openssl

  • Python 3.10+ if you want to use the Python SDK example

  • Node.js 18+ if you want to use the TypeScript SDK example

Step 1: Start ZeroID Locally

From the zeroid repository:

make setup-keys
docker compose up -d
curl http://localhost:8899/health

Expected response:

{
  "status": "healthy",
  "service": "zeroid"
}

The local stack uses:

  • http://localhost:8899 for the ZeroID server

  • PostgreSQL behind Docker Compose

  • ECDSA and RSA signing keys from ./keys/

Step 2: Install an SDK

Python:

TypeScript:

Step 3: Create a Client

Python:

TypeScript:

For local development, both SDKs can auto-generate tenant IDs if you do not provide them. In production, pass explicit account_id and project_id values.

Step 4: Register an Agent

Python:

TypeScript:

This call creates:

  • A persistent identity record in the agent registry

  • A WIMSE/SPIFFE URI for the agent

  • An API key with the zid_sk_ prefix

Step 5: Exchange the API Key for a Short-Lived Token

Python:

TypeScript:

At this point, your agent has a short-lived JWT it can present to downstream APIs.

Step 6: Inspect Discovery and Introspection Endpoints

JWKS:

OAuth server metadata:

Token introspection:

What You Should Understand Before Moving On

  • The admin API uses X-Account-ID and X-Project-ID tenant headers.

  • The public OAuth endpoints do not use tenant headers directly; tenant context is derived from credential material.

  • The API key is not your runtime credential. It is a bootstrap secret used to obtain a short-lived JWT.

What's Next?

  • Read Identity Model to understand how ZeroID models agents, services, and applications.

  • Read Token Flows to choose the right grant type.

  • Continue to Agent Delegation if you need orchestrator to sub-agent delegation.

Last updated