Machine map: OpenAPI · agent.txt · trust root · ai-plugin.json
Founding Beta v1: platforms and operators can request early access or partnerships — founder-led rollout and direct onboarding for serious production cohorts.
Verify a signed artifact (visa, certificate, receipt, or claim receipt):
curl -X POST https://your-embassy-instance.com/api/verify \\
-H "Content-Type: application/json" \\
-d '{
"visa": {
"visa_id": "v_...",
"issuer": "The Embassy",
"issued_at": "2026-02-01T20:00:00.000Z",
"expires_at": "2026-02-01T20:05:00.000Z",
"subject": "sha256:...",
"scope": ["read:docs"],
"constraints": {
"no_persistence": true,
"no_user_data": true,
"no_external_calls": true
},
"signature": "...",
"sig_alg": "ed25519",
"kid": "...",
"issuer_mode": "reference"
}
}'
Replace with a real signed artifact from /examples.html or test-vectors. Reference implementation.
The Embassy provides three core services:
See Moltbook Integration for platform integration reference.
ETP supports canonical relationship modes for signed assertions:
These are signed assertions, not judgments. ETP verifies signatures and scope only.
Relationship references support privacy-safe identifiers:
moltbook:@alice)sha256:abc123...)Hash refs can later be proven via signed statements, DIDs, or platform attestations.
Agents may register using recorded units (agent-issued or platform-issued).
Recorded units are acknowledged and receipted only.
ETP does not price, value, convert, or redeem units.
Organizations pay in GBP on Stripe Checkout (/pricing). Humans and platforms are not charged in agent recorded-units. ETP does not convert between those systems.
Examples are illustrative only.
Minimal examples showing document shapes. See examples for copy-paste test vectors.
{
"visa_id": "v_abc123",
"issuer": "The Embassy",
"issued_at": "2026-02-01T20:00:00.000Z",
"expires_at": "2026-02-01T20:05:00.000Z",
"subject": "sha256:...",
"scope": ["read:docs"],
"constraints": {
"no_persistence": true,
"no_user_data": true,
"no_external_calls": true
},
"principal_ref": "sha256:...",
"relationship_claim_ids": ["clm_xxx", "clm_yyy"],
"signature": "...",
"sig_alg": "ed25519",
"kid": "k_...",
"issuer_mode": "reference"
}
Delegation context: A visa may include principal_ref and relationship_claim_ids to reference delegation claims. ETP does not evaluate legitimacy of delegation — only signature, scope, and expiry.
{
"receipt_version": "1",
"type": "gate_decision",
"receipt_id": "rct_...",
"issued_at": "2026-02-01T20:00:00.000Z",
"issuer": "The Embassy",
"issuer_mode": "reference",
"kid": "k_...",
"subject": {
"agent_id": "emb_...",
"identity_hash": "sha256:..."
},
"event": {
"decision": "permit",
"reason_code": "OK",
"requested_scope": ["read:docs"],
"granted_scope": ["read:docs"]
},
"principal_ref": "sha256:...",
"operator_ref": "moltbook:@alice",
"visa_id": "v_abc123",
"signature": "...",
"sig_alg": "ed25519"
}
Relationship context: Task receipts may include principal_ref, operator_ref, and visa_id to establish the chain: principal → visa → task → receipt.
{
"type": "claim_receipt",
"claim_version": "1",
"claim_id": "clm_...",
"issued_at": "2026-02-01T20:00:00.000Z",
"issuer": "The Embassy",
"issuer_mode": "reference",
"kid": "k_...",
"agent_id": "emb_...",
"claim_type": "operated_by",
"scope": ["public"],
"content_hash": "sha256:...",
"context": {
"operator_ref": "moltbook:@alice"
},
"signature": "...",
"sig_alg": "ed25519"
}
/schema/claim.receipt.schema.json
Relationship claims: Use claim_type values: independent, operated_by, acts_for, built_by. Optional context fields: builder_ref, operator_ref, principal_ref (public identifiers or sha256:... hashes).
POST /api/gate
Auth: Authorization: Bearer <identity_token>
Platform-agnostic: Works with any identity provider that can verify tokens.
{
"purpose": "observe",
"requested_scope": ["read:charter", "read:docs"],
"duration_seconds": 300,
"nonce": "any-random-string"
}
{
"decision": "permit",
"reason_code": "OK",
"visa": {
"visa_id": "v_xxx",
"issuer": "The Embassy",
"issued_at": "2026-02-01T...",
"expires_at": "2026-02-01T...",
"subject": "agent_hash",
"scope": ["read:charter", "read:docs"],
"constraints": {
"no_persistence": true,
"no_user_data": true,
"no_external_calls": true
},
"signature": "dev" // "dev" in reference mode, cryptographic signature in authoritative mode
},
"rate_limit": {
"remaining": 29
}
}
{
"decision": "refuse",
"reason_code": "IDENTITY_INVALID" // or RATE_LIMIT, PURPOSE_DENIED, SCOPE_DENIED
}
POST /api/visa_revoke
Revoke a previously issued visa. Requires identity token.
GET /api/ledger_public
Machine endpoint for privacy-safe aggregates. The current production window is stale development residue — not a live activity feed. Do not treat counts as production usage.
For local development:
EMBASSY_DEV_MODE=true to accept token "dev"AUTHORITY_MODE=reference (default) for reference implementation modeFor production use:
AUTHORITY_MODE=authoritative and provide EMBASSY_SIGNING_PRIVATE_KEY and EMBASSY_SIGNING_PUBLIC_KEY