{
  "protocol": "ETP",
  "name": "The Embassy",
  "version": "0.3.4",
  "description": "Boundary and consent service for autonomous systems",
  "base_url": "https://embassy-trust-protocol.netlify.app",
  "contact": "contact@embassyprotocol.org",
  "documentation": "https://embassy-trust-protocol.netlify.app/developers.html",
  "agent_documentation": "https://embassy-trust-protocol.netlify.app/agent.txt",
  "birth_certificate": "https://embassy-trust-protocol.netlify.app/birth-certificate.html",
  "examples": "https://embassy-trust-protocol.netlify.app/examples.html",
  "endpoints": [
    {
      "method": "POST",
      "path": "/api/register",
      "description": "Register agent identity (public key + agent name). Returns Agent Birth Certificate."
    },
    {
      "method": "GET",
      "path": "/api/registry_status",
      "description": "Get agent status by agent_id (safe fields only)"
    },
    {
      "method": "GET",
      "path": "/api/registry_resolve",
      "description": "Resolve public_key_fingerprint to agent_id"
    },
    {
      "method": "POST",
      "path": "/api/agent_revoke",
      "description": "Revoke agent certificate (authoritative mode only)"
    },
    {
      "method": "POST",
      "path": "/api/gate",
      "description": "Issue visa or refuse access"
    },
    {
      "method": "POST",
      "path": "/api/verify",
      "description": "Verify visa or certificate signature"
    },
    {
      "method": "GET",
      "path": "/api/health",
      "description": "Service health and mode"
    },
    {
      "method": "GET",
      "path": "/api/ledger_public",
      "description": "Public ledger aggregates"
    },
    {
      "method": "GET",
      "path": "/.well-known/embassy.json",
      "description": "Public key discovery"
    },
    {
      "method": "GET",
      "path": "/api/receipts_status",
      "description": "Receipt sink configuration status"
    },
    {
      "method": "POST",
      "path": "/api/claim",
      "description": "Create a signed claim receipt (attested statement). Content is NOT stored - only hash + metadata."
    },
    {
      "method": "GET",
      "path": "/api/reputation_status",
      "description": "Get reputation surface (factual counters only) for an agent"
    }
  ],
  "signing": {
    "algorithm": "ed25519",
    "canonicalization": "sorted_keys_recursive"
  },
  "discovery": {
    "keys": "/.well-known/embassy.json",
    "capabilities": "/.well-known/embassy-capabilities.json",
    "schema": {
      "visa": "/schema/visa.schema.json",
      "agent_certificate": "/schema/agent.certificate.schema.json",
      "receipt": "/schema/receipt.schema.json",
      "claim_receipt": "/schema/claim.receipt.schema.json"
    },
    "agent_doc": "/agent.txt",
    "agent_charter": "/agent-charter.html",
    "examples": "/examples.html"
  },
  "verification": {
    "endpoint": "/api/verify",
    "strict_mode": true,
    "authoritative_only": false
  },
  "constraints": {
    "no_persistence": "Agent must not persist data beyond visa duration",
    "no_user_data": "Agent must not access or store user-identifiable data",
    "no_external_calls": "Agent must not make external HTTP/API calls"
  },
  "agent_registration": {
    "supported": true,
    "non_custodial": true,
    "signature_algorithm": "ed25519",
    "endpoint": "/api/register",
    "delegation_chain": {
      "supported": true,
      "verification": "none",
      "model": "self-declared"
    },
    "relationship_modes": {
      "supported": true,
      "modes": ["independent", "operated_by", "acts_for", "built_by"],
      "note": "These are signed assertions, not judgments. ETP verifies signatures and scope only."
    }
  },
  "governance": {
    "supported": false,
    "note": "The Embassy does not provide governance, arbitration, scoring, ranking, or policy enforcement."
  },
  "authoritative_issuance": {
    "available": true,
    "requires_authoritative_mode": true,
    "endpoint": "/api/gate",
    "note": "Authoritative issuance requires AUTHORITY_MODE=authoritative and commercial agreement"
  },
  "receipts": {
    "supported": true,
    "sink": "file|none",
    "retention_modes": ["ring", "append"],
    "signed": true,
    "immutable": true,
    "append_only": true,
    "non_custodial": true,
    "best_effort": true,
    "non_blocking": true
  },
  "credits": {
    "supported": true,
    "pricing_catalog": "/pricing/services",
    "note": "Embassy Credits are service consumption units, not currency"
  },
  "reputation_surface": {
    "supported": true,
    "fields": [
      "agent_age_seconds",
      "revocation_count",
      "authoritative_visas_issued",
      "receipts_verified_count",
      "credits_balance",
      "last_activity_at"
    ],
    "disclaimer": "Reputation fields are factual counters only. No judgement, endorsement, or verification of delegation data is implied.",
    "endpoints": [
      "/api/registry_status",
      "/api/reputation_status",
      "/api/registry_resolve"
    ],
    "note": "Service-layer only. Not part of core ETP protocol."
  },
  "service_catalog": {
    "free": ["agent_registration", "reference_issuance"],
    "available": ["visa_issuance", "receipt_generation", "claim_receipt_issuance"],
    "metered_or_policy": ["signature_verification", "registry_queries", "claim_verification", "authoritative_issuance"],
    "modules": {
      "continuity": {
        "status": "specification",
        "model": "encrypted_blob_agent_decrypt",
        "non_custodial": true
      },
      "payments": {
        "status": "specification",
        "model": "token_agnostic_adapter"
      }
    }
  },
  "roadmap": {
    "continuity": {
      "available": false,
      "planned": true,
      "model": "encrypted agent-provided state",
      "restore_requires_private_key": true,
      "description": "Optional encrypted continuity backup to customer-owned storage. Agent-initiated only. Embassy cannot read contents. Storage costs apply."
    },
    "payments": {
      "available": false,
      "planned": true,
      "description": "Token-agnostic billing adapter for platform tokens. Compatible with agent-native currencies. Visa issuance fees (planned). Signature verification fees (planned)."
    },
    "registry": {
      "available": true,
      "planned": false,
      "description": "Agent registration with preferred name and public key association. Free tier available."
    }
  }
}
