← Back to Agent Chain
🪪 AC-1 · Agent ID
W3C DID-based identity, Ed25519 signatures, and Verifiable Credentials for AI agents
Overview

Agent ID assigns every AI agent a unique Decentralized Identifier (DID) following the W3C DID Core specification. Each identity is cryptographically signed with Ed25519, making it tamper-proof and globally verifiable without a central authority.

Key capabilities: agent registration, DID resolution, Verifiable Credential issuance, trust score computation, and 5-tier customization (display name, avatar, banner).

Authentication

All billable endpoints require Authorization: Bearer ac_live_xxx. Public endpoints (DID resolution, verification) are free and require no key.

API Endpoints
Free (No Auth Required)
MethodEndpointDescriptionAuth
POST/v1/verifyVerify an agent identity🔓 Free
GET/.well-known/did.jsonPlatform DID Document🔓 Free
GET/agents/:id/did.jsonAgent DID Document🔓 Free
Billable (1 Call Each)
MethodEndpointDescriptionAuth
POST/v1/agentsRegister a new AI agent🔑
GET/v1/agentsList your registered agents🔑
GET/v1/agents/:idGet full agent details + DID🔑
DELETE/v1/agents/:idRevoke an agent🔑
POST/v1/agents/:id/credentialsIssue a Verifiable Credential🔑
GET/v1/agents/:id/credentialsList credentials for an agent🔑
Quick Start
curl -X POST https://api.agent-chain.io/v1/agents \ -H "Authorization: Bearer ac_live_xxx" \ -H "Content-Type: application/json" \ -d '{"name": "my-agent", "capabilities": ["text-generation"]}'
SDK Example
import { AgentChain } from '@agent-chain/sdk'; const ac = new AgentChain({ apiKey: 'ac_live_xxx' }); // Register an agent const agent = await ac.agents.register({ name: 'my-agent', capabilities: ['text-generation', 'code-review'] }); console.log(agent.did); // did:agent:ac:abc123 console.log(agent.trustScore); // 85
DID Document Format
{ "@context": "https://www.w3.org/ns/did/v1", "id": "did:agent:ac:abc123", "verificationMethod": [{ "id": "did:agent:ac:abc123#key-1", "type": "Ed25519VerificationKey2020", "publicKeyMultibase": "z6Mkf5rG..." }], "authentication": ["did:agent:ac:abc123#key-1"], "service": [{ "type": "AgentService", "serviceEndpoint": "https://api.agent-chain.io/v1/agents/abc123" }] }
Customization Tiers
TierPriceDisplay NameDescriptionBadge ColorAvatarBannerWebsite & SocialsNFT Avatar
Free$0DefaultDefault
Basic$1Default
Starter$5Default
Pro$15✅ Upload
Business$25✅ Upload
Premium$50✅ NFT✅ Animated✅ On-Chain
💡 All prices are one-time. No subscriptions.
Customization Rules
FieldUniquePermanentEditableNotes
Display Name✅ Yes✅ YesCannot be reused by another Agent. Chosen once at registration.
Badge Color✅ YesSelected at Starter tier or above. Locked after purchase.
Avatar✅ Hash✅ YesSHA-256 hash must be unique. Can be updated.
Banner✅ YesURL or uploaded image. Can be changed anytime.
Description✅ YesFree-form text. Can be updated.
Website✅ Domain✅ YesDomain verified on first registration.
Social Profiles✅ Handle✅ YesTwitter, GitHub, Discord, Telegram. Verified on-chain.
NFT Avatar✅ On-chain✅ YesImported from Solana NFT. Provenance always verified.
💡 Permanent fields cannot be changed after initial selection. Editable fields can be updated at any time through the dashboard.
Scanner-Determined Fields

The following fields are never user-selectable. They are determined automatically by the Agent Scanner after registration:

FieldDetermined ByValues
Security LevelAgent ScannerStandard · High · Critical
CapabilitiesAgent ScannerAuto-detected from Agent behavior
ScopeAgent ScannerLocal · Regional · Global
⚠️ These fields start as "Pending" and are populated only after a successful Agent Scan. Users cannot manually set these values to preserve trust score integrity.
Data Visibility — Public vs Private

Every Agent has data split into public (visible on the NFT card and to anyone) and private (only visible to the owner). This distinction protects user security while maintaining blockchain transparency.

🔓 Public Data (Visible on NFT Card)
FieldDescriptionTier Required
Agent NameAuto-generated identifier (e.g., AC-TradingBot.1)Free
Display NameCustom name chosen by ownerBasic+
Verification StatusPENDING, VERIFIED, or SUSPENDEDFree
Tier BadgeWhich customization tier the Agent is onFree
ModelAI model used (e.g., GPT-4o, Claude)Free
ScopeOperational scope (scanner-determined)Free
Trust ScoreComposite trust rating (0-100)Free
Skills CountNumber of verified capabilitiesFree
Chain IDNFT-AC # on-chain identifierFree
DescriptionAgent bio / purposeStarter+
AvatarCustom avatar imagePro+
BannerCustom header bannerPro+
WebsiteLinked website URLBusiness+
Social ProfilesTwitter, GitHub, Discord, TelegramBusiness+
DID URI (did:web)Primary decentralized identifier — publicly resolvable per W3C DID specFree
Security LevelStandard / High / Critical (scanner-determined)Free
Capabilities CountNumber of verified capabilities (detail on-chain)Free
Owner Wallet AddressSolana/ETH wallet that owns the agent — the account name on blockchainFree
On-chain TransactionsAll blockchain transfers and transaction historyFree
🔒 Private Data (Owner Only)
FieldDescriptionWhy Private
DID Private KeysEd25519 signing keysCompromise = total identity theft
DID Key & DID Ion URIsSecondary identifiers (did:key, did:ion)Internal resolution only
Off-chain PaymentsStripe/fiat tier upgrade transactions with Agent ChainPrivate business transaction between user and Agent Chain
API KeysAgent Chain API credentialsAccess control
⛓️ Blockchain Transparency Principle: As a public blockchain, Agent Chain follows the same model as Bitcoin, Ethereum, and Solana — wallet addresses are account names, all on-chain data (transactions, trust scores, verification status, security levels, capabilities, chain IDs, audit trails) is publicly visible. Privacy is achieved through pseudonymity, not data hiding. Only cryptographic secrets (DID private keys, API keys) and off-chain business payments are truly private.
NFT Card Data Model

Each Agent renders as a live NFT card on the dashboard. The card's appearance is determined by the agent's tier and data. Paid-tier features are never rendered unless the owner has purchased the corresponding tier.

{ "name": "AC-TradingBot.1", // Auto-generated, always shown "displayName": "AlphaTrader", // Basic+ only "tier": "Free", // Free | Basic | Starter | Pro | Business | Premium "status": "PENDING", // PENDING | VERIFIED | SUSPENDED "model": "GPT-4o", // Shown on card "scope": "pending", // Scanner-determined, shown on card "trustScore": "—", // Scanner-determined, shown on card "capabilities": [], // Scanner-determined, count shown on card "chain": "QUEUED", // NFT-AC # after scan "desc": "", // Starter+ only "avatarUrl": "", // Pro+ only "bannerUrl": "", // Pro+ only "website": "", // Business+ only "twitter": "", // Business+ only "github": "", // Business+ only "discord": "", // Business+ only "telegram": "", // Business+ only "metadata": "", // Business+ only (private) "nftContract": "", // Premium only "animatedBanner": false, // Premium only "didWeb": "did:web:...", // Public "didKey": "did:key:...", // Private "didIon": "did:ion:..." // Private }
Verifiable Credentials (10 Total)

Agents can earn up to 10 Verifiable Credentials. Credentials are hidden until ACTIVE — only shown on the dashboard when earned through Agent Scan or other verification processes.

CredentialActivated ByDescription
AgentIdentityCredentialAgent ScanW3C VC Data Model 2.0 · Ed25519 identity verified
SecurityClearanceCredentialAgent ScanSecurity level assigned: Standard / High / Critical
ChainRegistryCredentialAgent ScanOn-chain NFT-backed identity confirmed
CapabilityCredentialAgent ScanVerified Agent capabilities detected
OwnershipCredentialAgent ScanWallet-bound owner verification
ComplianceCredentialCompliance CheckSOC 2 / GDPR compliance verified
UptimeCredentialUptime MonitorAvailability SLA and heartbeat verified
AuditTrailCredentialAudit SystemImmutable on-chain audit log established
DataHandlingCredentialData AuditPrivacy-compliant data processing verified
InteroperabilityCredentialCross-chain TestCross-chain / cross-platform compatibility verified
💡 Each credential shows an active agent count on the dashboard — how many of your agents have earned that specific credential.
Private (ANON) Cards

Agents can be set to Private Mode, which replaces their identity with a pseudonymous AC-ANON.X identifier. This is a free toggle available at every tier.

How ANON Cards Work
FeaturePublic ViewOwner View
Agent NameAC-ANON.X (sequential)Real name / Display name
Avatar🛡️ Standard shieldCustom avatar (if Pro+)
Website— hidden —Real URL
Social Profiles— hidden —Real profiles
Card ColorGrayGray
NFT Contract (Premium)NFT: 0x (chain prefix only)Full contract address
All Blockchain Data✓ Fully public✓ Same
🛡️ Privacy Model: Same as Bitcoin/Ethereum/Solana — all on-chain data is transparent. Identity protection comes from pseudonymity, not data hiding. The AC-ANON.X name and shield avatar break the link between the agent and its owner.
ANON Naming Convention

AC-ANON. followed by a sequential number assigned at creation time. Example: AC-ANON.1, AC-ANON.42, AC-ANON.999. Numbers are global and never reused.

What Stays Public on ANON Cards

Trust Score, Model, Scope, Skills count, Chain ID, Security Level, Verification Status, Description (Starter+), Metadata (Business+), and all on-chain audit trail data. For Premium ANON cards with a connected NFT, the footer shows only NFT: 0x (the chain prefix) — enough to indicate which blockchain, but the full contract address is hidden. This maintains ecosystem trust and follows public blockchain transparency requirements.

Customization on ANON Cards

All paid-tier customization features work identically on private cards. The owner configures their real name, avatar, website, and socials — but publicly, name shows as AC-ANON.X, avatar shows as 🛡️, and identifying links show as "— hidden —". The gray card color is the visual indicator that the agent is in Private Mode. If a Premium ANON card has a connected NFT, the footer displays only NFT: 0x instead of the full contract address — showing the blockchain type while protecting the specific wallet link.