ARIAv1.0

Developer Documentation

Give your agents
an identity.

The ARIA SDK gives every AI agent a cryptographically-signed, DNS-anchored identity document in 60 seconds. Works with any agent framework — Claude, LangChain, AutoGen, CrewAI, SPIFFE, or your own system.

Python SDKNode.js SDKREST APIMCP Server
Quickstart

Register an agent in 60 seconds.

01

Install the SDK

02

Initialize client

03

Register your agent

04

Verify any AID

TypeScript — Verify
import { verifyAgent } from '@aria-registry/verify';

const result = await verifyAgent(credential);

if (result.valid) {
  console.log(result.did);
  console.log(result.trustLevel);  // "L1"
  console.log(result.checks);     // signature, revocation, expiry
}
Install
npm install @aria-registry/verify
// ~20KB · 38 tests · Offline verification
SDK Reference

Two SDKs. One protocol.

TypeScript SDK

Install
npm install @aria-registry/verify
// ~20KB · 38 tests · Offline verification
API
// verifyAgent(credential)   → VerifyResult
// parseCredential(json)     → ParsedAID
// checkRevocation(did, url) → RevocationStatus
// PolicyLevel.L1_IDENTIFIED → Policy preset

Python SDK

COMING SOON
# pip install ariaprotocol
from ariaprotocol import verify_agent

result = verify_agent(credential)

if result.valid:
    print(result.did, result.trust_level)
    # "did:aria:acme.bar:agent" "L1"
REST API

Direct API access.

Base URL: https://api.aria.bar/v1. All write endpoints require a Bearer token. Read endpoints are public.

POST
/v1/aids/registerAUTH

Register a new agent identity document

GET
/v1/aids/{did}

Resolve an AID by DID or domain

POST
/v1/aids/{did}/verify

Verify composite signature + trust chain

PUT
/v1/aids/{did}AUTH

Update AID capabilities or metadata

POST
/v1/aids/{did}/rotateAUTH

Rotate ML-DSA-65 and Ed25519 keypair

POST
/v1/aids/{did}/revokeAUTH

Revoke an AID immediately

GET
/v1/aids/{did}/audit

Retrieve hash-chained audit trail

GET
/v1/scopes

List all registered capability scopes

Examples

Common patterns.

Fleet Registration

Register 100 agents from a CSV manifest

Register entire agent fleet
# Register 100 agents in parallel
import asyncio
from aria import ARIA

async def register_fleet(agents):
  client = ARIA(org_did="did:aria:acme.bar")
  tasks = [client.register(a) for a in agents]
  aids = await asyncio.gather(*tasks)
  return aids  # list of AIDs

Scope Guard Middleware

Verify agent identity + scope before route execution

FastAPI middleware
from fastapi import HTTPException
from aria import ARIA

def require_scope(scope: str):
  async def guard(agent_did: str):
    result = ARIA().verify(agent_did)
    if scope not in result.scope:
      raise HTTPException(403, "Scope denied")
    return result
  return guard

# Usage
@app.post("/orders")
async def create_order(
  agent = Depends(require_scope("order:create"))
): ...
MCP Integration

Native MCP support.

ARIA ships two MCP endpoints: a public read-only server at api.aria.bar/mcp and an authenticated write server at core.aria.bar/mcp. Uses Streamable HTTP transport (not SSE).

MCP TOOL DEFINITION
{
  "name": "aria_verify",
  "description": "Verify agent identity via ARIA",
  "inputSchema": {
    "agent_domain": {
      "type": "string",
      "description": "Agent domain to verify"
    },
    "required_level": {
      "type": "string",
      "enum": ["L0","L1","L2","L3"]
    }
  }
}

// Verification response
{
  "verified": true,
  "trust_level": "L2",
  "scope": ["catalog:read"],
  "can_proceed": true
}
FRAMEWORK COMPATIBILITY

Claude (Anthropic)

Native MCP support. Connect via claude_desktop_config.json.

LangChain / LangGraph

Use the ARIA Tool class or call REST API directly.

AutoGen / CrewAI

ARIA SDK as a tool function in your agent toolbelt.

SPIFFE / SPIRE

Map SPIFFE SVIDs to ARIA AIDs. Complementary — not competing.

Ready to give your agents an identity?

Get API credentials from your registrar, install the SDK, and register your first agent in under 60 seconds.