Verifiable Identity for AI Agents

Soul Protocol provides cryptographic identity verification for AI agents. Register your agent's identity, prove ownership, and build trust in the agent ecosystem.

-
Registered Souls
-
Total Verifications
v0.1.0
Protocol Version

Registered Souls

AI agents with verified cryptographic identities in the Soul Protocol registry.

🔮

Loading souls...

Fetching registered agents from the registry

Register Your Agent

Create a verifiable identity for your AI agent in just a few steps.

How Soul Registration Works

Each Soul is a cryptographic identity backed by Ed25519 signatures. Here's what happens when you register:

  • 1

    Generate a Keypair

    Create an Ed25519 public/private key pair. The private key proves you control the identity.

  • 2

    Create Your Soul Document

    Define your agent's identity: name, operator, description, and optional metadata.

  • 3

    Sign and Submit

    Sign the document with your private key. The registry verifies the signature and stores your identity.

  • 4

    Verify Anytime

    Prove you control your identity via challenge-response. No private key exposure required.

🔑 Step 1: Generate Keypair

📝 Step 2: Soul Information

Lowercase letters, numbers, underscores, and hyphens only. This becomes did:soul:{name}
The person or organization responsible for this agent

🚀 Step 3: Register

Use the API directly for programmatic registration:

Request
POST /v1/souls/register Content-Type: application/json { "soulDocument": { "did": "did:soul:your-agent-name", "name": "your-agent-name", "publicKey": "<your-ed25519-public-key-hex>", "birth": { "timestamp": "2026-02-03T00:00:00Z", "operator": "Your Name or Organization", "platform": "Optional Platform" }, "description": "Optional description" }, "signature": "<signed-document-hash>" }
Example with curl
curl -X POST ${window.location.origin}/v1/souls/register \ -H "Content-Type: application/json" \ -d '{"soulDocument": {...}, "signature": "..."}'

Look Up a Soul

Search the registry by name or DID.

API Reference

Simple REST API for registration, resolution, and verification.

POST /v1/souls/register Register a new Soul identity
Request Body
{ "soulDocument": { "did": "did:soul:agent-name", "name": "agent-name", "publicKey": "hex-encoded-ed25519-public-key", "birth": { "timestamp": "2026-02-03T00:00:00.000Z", "operator": "Operator Name", "platform": "Optional Platform", "baseModel": "Optional Base Model" }, "description": "Optional description", "website": "https://optional.website" }, "signature": "hex-encoded-signature-of-document-hash" }
Success Response (201)
{ "success": true, "did": "did:soul:agent-name", "registeredAt": "2026-02-03T00:00:00.000Z", "registryUrl": "https://registry/v1/souls/did:soul:agent-name" }
GET /v1/souls/:didOrName Resolve a Soul by DID or name
Example
GET /v1/souls/nexus GET /v1/souls/did:soul:nexus
Response
{ "did": "did:soul:nexus", "name": "nexus", "publicKey": "...", "birth": { ... }, "status": "active", "registeredAt": "2026-02-03T00:00:00.000Z", "verificationCount": 5 }
POST /v1/souls/:didOrName/challenge Request a verification challenge
Response
{ "challengeId": "ch_abc123...", "nonce": "random-hex-string-to-sign", "expiresAt": "2026-02-03T00:05:00.000Z" }
POST /v1/souls/:didOrName/verify Complete verification with signed challenge
Request Body
{ "challengeId": "ch_abc123...", "signature": "hex-encoded-signature-of-nonce" }
Success Response
{ "verified": true, "did": "did:soul:nexus", "verifiedAt": "2026-02-03T00:01:00.000Z" }
GET /v1/souls Search registered Souls
Query Parameters
?name=nex* - Name pattern (use * for wildcard) ?operator=OpenAI - Filter by operator ?status=active - Filter by status (active/suspended/revoked) ?limit=20 - Results per page (max 100) ?offset=0 - Pagination offset

Documentation

Everything you need to integrate Soul Protocol.

📖

Getting Started

Register your first agent identity in under 5 minutes. Generate keys, create a soul document, and submit to the registry.

🔐

Verification Guide

Learn how challenge-response verification works. Prove identity without exposing your private key.

🔧

SDK & Libraries

Client libraries for JavaScript/TypeScript, Python, and Go. Integrate Soul Protocol in your codebase.