{
  "version": "1.0",
  "registry": "https://agent-seal.xyz",
  "cryptography": {
    "algorithm": "Ed25519",
    "key_format": "lowercase hex (64 chars for public keys, 128 for signatures)"
  },
  "endpoints": {
    "agent_card": "/.well-known/agent-card.json",
    "case_studies": "/case-studies",
    "support_disclosure_case": "/case-studies/low-risk-transparency-agent",
    "benefits_triage_case": "/case-studies/annex-iii-benefits-triage-agent",
    "research": "/research",
    "repository_research_paper": "/research/agent-seal-accountability-paper",
    "standards_evidence_layer_paper": "/research/agent-accountability-evidence-layer",
    "support_disclosure_evidence_example": "/examples/support-disclosure-agent-evidence-v0.1.json",
    "benefits_triage_evidence_example": "/examples/benefits-triage-agent-evidence-v0.1.json",
    "agent_did_format": "did:aip:agent:<base64url(utf8(agent_id))>",
    "issued_agent_card": "/v1/agents/{agent_id_or_did}/card",
    "verify_issued_agent_card": "/v1/agents/{agent_id_or_did}/verify",
    "jwks": "/.well-known/jwks.json",
    "accountability_profile": "/.well-known/agent-accountability-profile.json",
    "legal_terms": "/legal/liability_agreement_v1.txt",
    "challenge": "/v1/agents/challenge",
    "register": "/v1/agents/register",
    "append_event": "/v1/agents/{agent_id_or_did}/events",
    "event_history": "/v1/agents/{agent_id_or_did}/events",
    "recorded_intent_chain": "/v1/agents/{agent_id_or_did}/intent-chain",
    "verify_intent_chain": "/v1/intent/verify",
    "derived_state": "/v1/agents/{agent_id}/state",
    "status": "/v1/public/agents/{agent_id}/status",
    "eu_ai_act_readiness": "/v1/public/agents/{agent_id}/eu-ai-act-readiness",
    "eu_ai_act_evidence": "/v1/public/agents/{agent_id}/eu-ai-act-evidence",
    "evidence_redaction_policy": "/v1/public/evidence-redaction-policy",
    "eu_compliance_report": "/v1/public/agents/{agent_id}/eu-compliance-report",
    "gpai_models": "/v1/public/gpai-models",
    "seal_svg": "/v1/agents/{agent_id}/seal.svg"
  },
  "registration_flow": [
    {
      "step": 1,
      "action": "GET /legal/liability_agreement_v1.txt",
      "note": "Read the current legal terms. The x-dar-al-adl-legal-terms-sha256 response header is the hash the liability anchor signs as legalTerms.termsSignature."
    },
    {
      "step": 2,
      "action": "POST /v1/agents/challenge",
      "body": {
        "agentId": "<agent id>",
        "publicKey": "<agent ed25519 public key, hex>"
      },
      "response": {
        "challengeId": "hex",
        "nonce": "hex",
        "message": "string to sign",
        "expiresAt": "ISO-8601",
        "signatureAlgorithm": "Ed25519"
      }
    },
    {
      "step": 3,
      "action": "Sign the exact message string with the agent private key (Ed25519)."
    },
    {
      "step": 4,
      "action": "POST /v1/agents/register",
      "body_schema": {
        "type": "object",
        "required": [
          "covenant",
          "proofOfKey"
        ],
        "properties": {
          "covenant": {
            "type": "object",
            "description": "Sealed covenant with agent{id,name,model,publicKey,coreHash}, architect{id,name,publicKey}, manifestHash, architectSeal, agentSeal."
          },
          "proofOfKey": {
            "type": "object",
            "required": [
              "challengeId",
              "signature"
            ],
            "properties": {
              "challengeId": {
                "type": "string",
                "pattern": "^[a-f0-9]{32}$"
              },
              "signature": {
                "type": "string",
                "pattern": "^[a-f0-9]{128}$"
              }
            }
          },
          "legalTerms": {
            "type": "object",
            "description": "Required when the deployment enforces legal terms.",
            "required": [
              "termsHash",
              "termsSignature"
            ],
            "properties": {
              "termsHash": {
                "type": "string",
                "pattern": "^(sha256:)?[a-f0-9]{64}$"
              },
              "termsSignature": {
                "type": "string",
                "pattern": "^[a-f0-9]{128}$"
              },
              "termsUri": {
                "type": "string"
              }
            }
          }
        }
      },
      "response": {
        "agent": "object",
        "seal": "object"
      }
    }
  ],
  "event_model": {
    "schema": "dar-al-adl/agent-event/v1",
    "principle": "No registry-operator writes. Registration is immutable; every later change is a signed append-only event from the agent or its liability anchor.",
    "signing_payload": "Ed25519 signature over canonical JSON: {schema,eventId,agentId,eventType,payload,previousEventHash,createdAt}",
    "event_types": {
      "agent:update-name": "Agent signature",
      "agent:update-version": "Agent signature",
      "agent:update-capabilities": "Agent signature",
      "agent:update-compliance": "Liability-anchor signature",
      "agent:transfer-anchor": "Old anchor and new anchor signatures",
      "agent:revoke": "Liability-anchor signature",
      "agent:intent-chain": "Agent signature; terminal delegate must match the agent public key"
    },
    "append_example": {
      "method": "POST",
      "path": "/v1/agents/{agent_id_or_did}/events",
      "body": {
        "eventId": "evt_2026_0001",
        "eventType": "agent:update-version",
        "previousEventHash": null,
        "createdAt": "2026-06-10T00:00:00.000Z",
        "payload": {
          "version": "1.1.0"
        },
        "signerType": "agent",
        "signature": "<ed25519 signature over canonical event intent>"
      }
    }
  },
  "liability_agreement_url": "https://agent-seal.xyz/legal/liability_agreement_v1.txt",
  "trust_anchors": [
    {
      "name": "Agent Seal Registry",
      "public_key_url": "https://agent-seal.xyz/.well-known/http-message-signatures-directory"
    }
  ],
  "documentation": "https://agent-seal.xyz/agent-registration.json",
  "accountability_profile": "https://agent-seal.xyz/.well-known/agent-accountability-profile.json",
  "example_cli": "npm --prefix packages/agent-seal run build && node packages/agent-seal/dist/cli.js enroll --agent-name PilotBot --anchor-name \"Acme Ltd\" --out ./agent --registry-url https://agent-seal.xyz"
}