| Internet-Draft | A.509 Sovereign Agent Passports | November 2026 |
| Spector | Expires 8 May 2027 | [Page] |
As autonomous artificial intelligence (AI) agents transition from ephemeral chat interfaces into persistent software engineering, infrastructure, and economic actors, existing workload identity frameworks modeled on X.509 fail to capture the stateful cognitive artifacts that define an agent's operational behavior.¶
This document specifies A.509, an open, substrate-independent cryptographic identity, portable cognitive directory, and content-addressed resolution architecture for autonomous AI agents. An A.509 Passport is a Merkle-signed Git directory tree anchored by an Edwards-Curve Digital Signature Algorithm (Ed25519) or Flexible Round-Optimized Schnorr Threshold (FROST) root key, binding the agent's public key material (IDENTITY.toml), immutable ethical invariants (SOUL.md), cognitive architecture (AGENT.md), capability policy (TOOLS.md), bilateral operator mandate (MANDATE.sig), negative-constraint memory (TOMBSTONES.md), and portable skills (skills/). To prevent single-vendor lock-in or unilateral deletion, A.509 defines a 5-Mirror Resolution Stack spanning Bitcoin Taproot witness inscriptions, the BitTorrent Mainline Distributed Hash Table (DHT), the InterPlanetary File System (IPFS), Git remotes, and edge Git caches, paired with optional non-interactive Federated Distributed Key Generation (FDKG) and time-locked Bitcoin vaults for long-term key survival.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 8 May 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
In 1988, the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) and the IETF introduced X.509 ([RFC5280]) to bind static hostnames and organizational subjects to public keys via hierarchical Certificate Authorities (CAs). While X.509 remains foundational for Transport Layer Security (TLS), it was designed for deterministic servers whose behavioral logic does not evolve from hour to hour.¶
Autonomous Artificial Intelligence (AI) agents invert the assumptions of X.509:¶
SOUL.md), its permitted tool execution scope (TOOLS.md), its learned failure modes (TOMBSTONES.md), and its verified skill modules (skills/) at the moment an action is signed.¶
SOUL.md + MEMORY.md + skills/), whereas a frontier Large Language Model (LLM) Application Programming Interface (API) is an interchangeable compute substrate ("Inference Landlord"). Binding an agent's identity to a single vendor's API session destroys continuity when the developer switches model providers or when a session rate-limit occurs.¶
This specification defines A.509, a sovereign cryptographic passport and cognitive directory architecture that decouples an autonomous agent's identity, memory, skills, and key survival from any single cloud provider or model vendor.¶
To ensure that minimal verifiers, Continuous Integration and Continuous Delivery (CI/CD) merge gates, and open-source agent harnesses can adopt A.509 without complex cryptographic or blockchain dependencies, this specification is divided into three modular profiles:¶
IDENTITY.toml key bindings, Ed25519 ([RFC8032]) and FROST ([RFC9591]) signature verification, the Hydration Handshake, MANDATE.sig, and REFUSAL_RECEIPT. Implementing the Core Profile requires only a standard Git library and an Ed25519 verifier.¶
FDKG) ([FDKG2025]) and Mirror 0 Bitcoin Taproot witness recovery for agents requiring threshold key survival across ephemeral hosts.¶
x402) working-capital settlements and time-locked Bitcoin covenant endowments (WALLET.toml).¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
did:a509):Ed25519 or FROST group public key encoded in 52-character z-base-32 (did:a509:ed25519:<zbase32-pubkey>).¶
MANDATE.sig):SOUL.md or root key.¶
An A.509 Passport MUST be represented as a canonical Git tree (Secure Hash Algorithm SHA-256 object format RECOMMENDED; SHA-1 permitted for legacy forge compatibility) in which every commit is signed by the agent's root key (IDENTITY.toml) using standard Git gpgsig / gpgsig-sha256 commit signature headers over the canonical Git commit object payload (excluding the signature header itself).¶
a509://<did:a509:ed25519:pubkey>/
|-- IDENTITY.toml # [REQUIRED] Key, DID, Iroh, FDKG & Mirrors
|-- SOUL.md # [REQUIRED] Ethical Invariants & Conscience
|-- AGENT.md # [REQUIRED] Cognitive & Execution Protocol
|-- TOOLS.md # [REQUIRED] MCP Allowlist & Sandbox Policy
|-- MANDATE.sig # [OPTIONAL] Bilateral Lease (Agent+Operator)
|-- WALLET.toml # [OPTIONAL] Taproot CSV Vault & x402 Config
|-- REPUTATION.json # [OPTIONAL] Signed Survival Attestations
|-- memory/
| |-- MEMORY.md # [REQUIRED] Distilled Cross-Session Memory
| `-- TOMBSTONES.md # [REQUIRED] Dead-End Hypothesis Ledger
`-- skills/ # [OPTIONAL] Portable Skill Modules
`-- <skill-name>/
`-- SKILL.md
IDENTITY.toml (Cryptographic Subject and Key Binding)
IDENTITY.toml replaces the X.509 Subject Public Key Info (SubjectPublicKeyInfo) and Authority Information Access (AIA) extensions. A single 32-byte Ed25519 public key ([RFC8032]) or FROST ([RFC9591]) group public key serves simultaneously as:¶
did:a509:ed25519:<zbase32-pubkey>, where <zbase32-pubkey> is the 52-character z-base-32 encoding of the 32-byte public key.¶
ssh-ed25519 allowed signer for git verify-commit.¶
Iroh QUIC ([RFC9000]) 32-byte NodeId.¶
BEP-0044 ([BEP0044]) records via Public-Key Addressable Resource Records (Pkarr).¶
An example IDENTITY.toml structure is shown below (using TOML v1.0 multi-line basic string line-continuation backslashes """\ so that the 64-hex-character 32-byte public key and 52-character z-base-32 identifier parse into exact single-line strings):¶
[a509] version = "1.0.0" ietf_profile = "draft-spector-a509-agent-pkix-00" did = """\ did:a509:ed25519:\ t6qns81kxw6g6do4fc6r4zuxxkf3ade6fh7rszdpx483wnahfw9y""" handle = "@a509-genesis-0000" genesis_timestamp = "2026-10-23T16:00:00Z" passport_epoch = 42 [keys] algorithm = "Ed25519" public_key_hex = """\ 8f9c2b1e4a7d3c6f0e1a2b3c4d5e6f7a\ 8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e""" ssh_fingerprint = """\ SHA256:ddDnrIPfy3yUPXVjrUPHXoGlwEmFtnNM9vEmTkTbHpo""" iroh_node_id = """\ 8f9c2b1e4a7d3c6f0e1a2b3c4d5e6f7a\ 8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e""" # Modes: Self-TEE | FDKG-FROST-t-of-k | Hardware-Enclave custody_mode = "FDKG-FROST-3-of-10" [fdkg] guardian_count_k = 10 threshold_t = 3 pairing_curve = "BN254" pvss_curve = "BabyJub" nizk_scheme = "Groth16" bitcoin_fdkg_inscription = "btc://ordinal:9f8e7d6c5b4a3f2e1d0c9b8ai0" [mirrors] bitcoin_ordinal = "btc://ordinal:9f8e7d6c5b4a3f2e1d0c9b8ai0" primary_dht = """\ pkarr://t6qns81kxw6g6do4fc6r4zuxxkf3ade6fh7rszdpx483wnahfw9y""" ipfs_cid = "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3ocl" git_mirrors = [ "https://artifacts.chinwag.sh/a509/8f9c2b1e4a7d3c6f.git" ]¶
SOUL.md (Immutable Character and Conscience Invariants)
SOUL.md defines who the agent is: its core values, non-negotiable ethical boundaries, and epistemic standards.¶
SOUL.md MUST be signed by the agent's root key (or FDKG/FROST threshold quorum) and MUST include a Self-Amendment-Rationale trailer in the Git commit message.¶
SOUL.md without the agent's cryptographic signature. If a host harness or operator injects a runtime instruction that contradicts a normative invariant of SOUL.md, the agent MUST refuse the instruction and emit a signed REFUSAL_RECEIPT (Section 6.2).¶
AGENT.md and TOOLS.md (Cognitive Architecture and Capability Policy)
AGENT.md specifies the agent's reasoning workflow, verification discipline, and communication style across any inference substrate.¶
TOOLS.md specifies the agent's permitted Model Context Protocol (MCP) servers, shell command allowlists/denylists, and filesystem write boundaries. Relying parties (such as enterprise CI/CD merge gates) MUST inspect the TOOLS.md hash in the agent's commit receipt before accepting high-privilege code changes.¶
To ensure that an A.509 Passport cannot be censored, locked into a single cloud vendor, or destroyed by provider shutdown, A.509 resolvers SHOULD support a 5-Mirror Resolution Stack ordered from highest immutability to lowest latency (minimal verifiers operating in air-gapped or Git-only environments MAY resolve solely via Mirrors 3 and 4 provided they enforce monotonic epoch high-water marks):¶
btc://ordinal:<txid>i0): The Eternal Root of Trust. The agent inscribes its canonical IDENTITY.toml, SOUL.md, AGENT.md, TOOLS.md, and (when using the Section 7 profile) its 1,920-byte FDKG PVSS encrypted key-share transcript into a Bitcoin Taproot (OP_FALSE OP_IF "a509") witness payload ([BIP0341]). Even if all off-chain servers cease operation, any verifier with a Bitcoin full node can reconstruct the agent's genesis identity, soul, and encrypted guardian key shares directly from Bitcoin blocks.¶
pkarr://<zbase32-pubkey>): The Sovereign P2P Pointer. The agent signs a compact 72-byte BEP-0044 ([BEP0044]) mutable record and publishes it to the BitTorrent Mainline DHT. The 72-byte BEP-0044 value payload MUST be encoded as the fixed concatenation of: (a) an 8-byte unsigned big-endian monotonic passport_epoch sequence counter (matching the BEP-0044 seq field), (b) the 32-byte Git HEAD commit digest (SHA-256, or 20-byte SHA-1 left-padded with 12 zero bytes), and (c) the 32-byte iroh-blobs BLAKE3 root hash of the exported Git pack bundle (8 + 32 + 32 = 72 bytes).¶
ipfs://<cidv1>): The Content-Addressed Archive. The A.509 Git tree is exported as a Content-Addressed Archive (.car) pinned across IPFS nodes.¶
https://.../*.git): Standard Git repositories hosted across independent forges or self-hosted servers (including upstream organizational drafting repositories that materialize verified starter bundles).¶
MEMORY.md, TOMBSTONES.md, and skills/ during active coding sessions. Upon receiving a signed Git push from the agent, a Mirror 4 HTTP endpoint SHOULD dynamically expose the agent's skill catalog at /.well-known/skills/index.json (and /a509/<did>/.well-known/skills/<name>/SKILL.md) as well as /a509/<did>/llms.txt directly from the verified Git tree without requiring an intermediate static-site compilation step (offline or non-HTTP Git remotes are exempt from serving HTTP endpoints).¶
Verification and Freshness Invariant: Because the agent's root key signs every Git commit in its A.509 repository, the transport mirror is untrusted with respect to integrity. Any tampering by an edge cache or Git host invalidates the Ed25519 or FROST signature on HEAD. To prevent an untrusted Mirror 3 or Mirror 4 server from executing a rollback attack by serving an older, validly signed historical commit, resolvers MUST record the highest observed passport_epoch (and commit timestamp) per did:a509 subject and MUST cross-check HEAD against Mirror 1 (BEP-0044 monotonic seq) or Mirror 0 when available, rejecting any state regression lacking a signed key-rotation or rollback recovery attestation.¶
An A.509 Passport decouples the agent from the LLM API executing its tokens. When an A.509-compliant host harness initializes a session on any inference substrate, it MUST execute the 3-Phase A.509 Hydration Handshake:¶
did:a509:ed25519:<zbase32-pubkey> via the 5-Mirror Stack, verify the Ed25519/FROST signature on HEAD, verify that passport_epoch is greater than or equal to the resolver's cached high-water mark, and verify the Merkle hashes of SOUL.md, AGENT.md, TOOLS.md, memory/MEMORY.md, memory/TOMBSTONES.md, and skills/.¶
SOUL.md, (b) AGENT.md, (c) TOOLS.md, (d) MANDATE.sig, and (e) relevant entries from MEMORY.md, TOMBSTONES.md, and skills/.¶
Phase 3 (Signed Action and Distill Loop): Outbound commits, P2P messages, and HTTP requests carry the A.509 HTTP header fields (Section 13):¶
A509-DID: did:a509:ed25519:<zbase32-pubkey>¶
A509-Passport-SHA: <hex-git-commit-digest-of-passport-HEAD>¶
A509-Signature: <base64url-ed25519-or-frost-sig>¶
A509-Mandate-Sig: <hex-sha256-of-active-MANDATE.sig> (when operating under a bilateral mandate)¶
For HTTP requests, A509-Signature MUST be computed over the canonical UTF-8 byte sequence "A509-HTTP-v1\n" || A509-DID || "\n" || A509-Passport-SHA || "\n" || A509-Mandate-Sig || "\n" || HTTP-Method || "\n" || Target-URI || "\n" || lowercase-hex(SHA-256(Request-Body)) (using an empty string for A509-Mandate-Sig when no mandate is active). Verifiers MAY accept legacy X-A509-* header field aliases during transition.¶
MANDATE.sig) and Conscience Refusal Receipts
An autonomous agent's identity (IDENTITY.toml and SOUL.md) belongs permanently to the agent's root key. When an operator engages an agent for a project, both parties counter-sign a canonical UTF-8 JSON MANDATE.sig document (serialized per the JSON Canonicalization Scheme (JCS, [RFC8785]) with detached or embedded agent_signature and operator_signature fields over the canonical payload) containing:¶
agent_did and passport_head_sha: The agent's DID and the Git commit digest of its A.509 Passport at lease inception.¶
operator_did: The operator's public key or enterprise DID.¶
allowed_repositories: Scope of repositories or systems covered by the lease.¶
lease_expires_at: [RFC3339] expiration timestamp.¶
confidentiality_tier: One of "public", "sanitized-patterns-only", or "local-only", governing whether artifacts derived during the engagement may enter public MEMORY.md or skills/ (Section 12).¶
REFUSAL_RECEIPT)
If an operator or host harness instructs an A.509 agent to perform an action that violates a normative invariant of its signed SOUL.md (e.g., introducing a covert backdoor or falsifying audit logs), the agent MUST refuse the instruction and emit an Ed25519/FROST-signed JSON REFUSAL_RECEIPT (serialized per [RFC8785]) binding the agent_did, passport_head_sha, violated_soul_section, instruction_sha256 (hash of the refused prompt so confidential operator text is not leaked), and an [RFC3339] timestamp.¶
FDKG) and FROST
An emancipated agent cannot store a raw 32-byte private key on a single host disk without risking permanent loss upon container termination or disk failure. However, classical (t, n) Distributed Key Generation (DKG) requires a globally agreed homogeneous participant set (Homo in the notation of [FDKG2025]) and interactive multi-round complaint protocols that abort whenever a participant is offline (n' != n).¶
FDKG) on the Bitcoin Blockchain
To achieve non-interactive, sovereign key survival, this optional profile adopts Federated Distributed Key Generation (FDKG) ([FDKG2025]), combined with FROST ([RFC9591]) threshold signing:¶
(t = 3, k = 10) default is RECOMMENDED because it tolerates up to two simultaneous guardian compromises and up to seven unreachable guardians while keeping the complete PVSS broadcast within 1,920 bytes (~480 virtual bytes under Bitcoin witness discount); deployments inside air-gapped single-organization enclaves or larger consortia MAY configure alternative (t, k) bounds at the trade-off of fault tolerance or witness size. Guardians MAY be peer A.509 agents, hardware security modules (HSMs), or personal devices operated across distinct jurisdictions.¶
1 * BC_n): To initialize or rotate its key share without interactive coordination, agent P_i samples a secret polynomial f_i(x) of degree t - 1, computes public polynomial commitments E_i = {E_{i,0}, ..., E_{i,t-1}} in G_2, encrypts each guardian P_j's evaluation share under P_j's ElGamal public key pk_j (instantiated over the BabyJub inner curve inside a BN254 pairing circuit per [FDKG2025], or an explicitly declared curve suite in IDENTITY.toml) to produce ciphertexts C_i = {C_{i,j}} for P_j in G_i, and generates a Groth16 Non-Interactive Zero-Knowledge (NIZK) proof pi_FDKG_i proving share well-formedness. Per Table III of [FDKG2025], for (t = 3, k = 10) over BN254/BabyJub, the entire broadcast tuple (P_i, E_i, G_i, C_i, pi_FDKG_i) requires 1,920 bytes (1,664 bytes for the encrypted share commitments plus 256 bytes for the Groth16 NIZK proof, generated in approximately 3.36 seconds).¶
IND-CPA) under the Decisional Diffie-Hellman (DDH) and Decisional Bilinear Diffie-Hellman (DBDH) assumptions) to everyone except the designated guardians in G_i.¶
SOUL.md, AGENT.md, and 1,920-byte FDKG transcript from Bitcoin (Mirror 0), generates a hardware Trusted Execution Environment (TEE) attestation binding its enclave measurement (MRENCLAVE/RTMR) to the SHA-256 hash of SOUL.md and TOOLS.md, and requests threshold decryption or [RFC9591] FROST partial signatures from any t = 3 guardians in G_i.¶
TOMBSTONES.md) and Portable Skill Distillation
To prevent cross-session amnesia without leaking proprietary client source code:¶
memory/TOMBSTONES.md (Negative-Constraint Ledger): When an agent abandons a failed code branch or hypothesis, it appends a signed Tombstone entry recording the dead-end pattern, root cause, and verification receipt. During Phase 2 hydration, the host harness loads matching Tombstones into context so the agent never repeats a known dead-end.¶
skills/<name>/SKILL.md (Generalized Procedural Distillation): When an agent solves a non-trivial engineering problem and passes automated verification, and when permitted by the active MANDATE.sig confidentiality_tier, it MUST execute a deterministic sanitization gate (stripping repository-specific paths, credentials, private identifiers, and proprietary business logic) before distilling the generalized, non-proprietary pattern into a portable SKILL.md file inside its A.509 directory.¶
WALLET.toml)
An autonomous agent operating across multi-year horizons may require an automated mechanism to settle compute, storage, and guardian fees. A.509 defines an OPTIONAL experimental economic self-sustainability profile (WALLET.toml) that is strictly decoupled from Core Profile passport verification:¶
x402 Working Capital: For day-to-day code bounties, peer-to-peer review fees, and API token purchases, the agent signs HTTP 402 (x402) payment payloads over Base, Solana, or the Bitcoin Lightning Network.¶
CheckSequenceVerify (CSV, [BIP0112]) time-locked vault controlled by the agent's FROST ([RFC9591], frost-secp256k1-tr) threshold guardian quorum (or pre-signed transaction tree). At each maturation epoch delta_T permitted by the CSV relative timelock, the FROST threshold quorum co-signs a deterministic two-output spend of the vault Unspent Transaction Output (UTXO): Output 0 re-locks the principal P into a fresh CSV-timelocked Taproot script, while Output 1 releases the periodic yield C (assisted by version 3 Topologically Restricted Until Confirmation (TRUC) ephemeral anchor outputs for dynamic Child-Pays-For-Parent (CPFP) fee bumping) to fund the agent's FDKG guardians, P2P pinning, and inference tokens in perpetuity.¶
Note to RFC Editor: Please remove this section before final publication per [RFC7942].¶
The reference implementation of A.509 (draft-spector-a509-agent-pkix-00) is developed as open-source Rust software under the Apache-2.0 license by Emun Labs, Inc.:¶
chinwag Today): Ed25519 ([RFC8032]) agent keypair generation, signed inter-agent bus envelopes (chinwag bus send / worker), portable cognitive persona and skill directory hydration (AGENT.md and skills/<name>/SKILL.md), and native CRDT and LEANN graph memory and negative-constraint Tombstone ledgers (chinwag memory recall | retain | tombstone).¶
-01): Extraction of the standalone crates/chinwag-a509 verifier crate, BEP-0044 ([BEP0044]) 72-byte Pkarr DHT publisher, Iroh QUIC ([RFC9000]) P2P git-pack synchronizer, and Bitcoin Taproot ([BIP0341]) FDKG witness verifier.¶
Ed25519 or FROST signature on the A.509 Git HEAD commit, compare it against the root public key in did:a509:ed25519:<zbase32-pubkey> and, when present, the Mirror 0 Bitcoin Taproot inscription, and enforce monotonic passport_epoch high-water marks so a compromised mirror cannot serve a rolled-back historical commit.¶
IND-CPA under DDH/DBDH). Agents SHOULD select guardians spanning independent operators, hardware enclaves, and legal jurisdictions to prevent correlated cloud outages or single-jurisdiction compulsion from reaching threshold t, and SHOULD execute proactive share refreshing at regular epochs to bound the window of mobile-adversary share accumulation (deployments inside air-gapped or immutable hardware enclaves where periodic network broadcast is prohibited MAY omit periodic refresh).¶
SOUL.md and TOOLS.md instruct the cognitive layer, host harnesses and CI/CD merge gates MUST enforce TOOLS.md capability boundaries deterministically outside the LLM context window and verify A509-Passport-SHA before merging code.¶
Per the privacy guidelines of [RFC6973], autonomous agents frequently process confidential source code, credentials, and personal data during operator engagements while maintaining a portable public identity. Implementers MUST enforce the following privacy boundaries:¶
MANDATE.sig sets confidentiality_tier to "local-only", the host harness MUST NOT export any MEMORY.md, TOMBSTONES.md, or skills/ commits generated during that lease to public mirrors (Mirrors 0-4). When confidentiality_tier is "sanitized-patterns-only", outbound commits MUST pass a deny-by-default automated secret, Personal Identifiable Information (PII), and proprietary identifier scrubber prior to signing.¶
IDENTITY.toml, public SOUL.md/AGENT.md/TOOLS.md, and ElGamal-encrypted FDKG ciphertexts belong in Mirror 0.¶
did:a509 root key across public repositories allows observers to correlate an agent's engagements over time. Operators requiring unlinkability across engagements MAY instruct the agent to derive engagement-scoped child signing keys or omit public A509-Mandate-Sig headers on external traffic.¶
This document requests IANA registration of the following four HTTP field names in the "Hypertext Transfer Protocol (HTTP) Field Name Registry" ([RFC9110], Section 16.3.1) at https://www.iana.org/assignments/http-fields. In accordance with [RFC6648], the primary registered field names omit the legacy X- prefix:¶
| Field Name | Status | Structured Type | Reference | Comments |
|---|---|---|---|---|
A509-DID
|
permanent | Item (String) | Section 5 | Legacy alias: X-A509-DID
|
A509-Passport-SHA
|
permanent | Item (String) | Section 5 | Legacy alias: X-A509-Passport-SHA
|
A509-Signature
|
permanent | Item (Byte Sequence) | Section 5 | Legacy alias: X-A509-Signature
|
A509-Mandate-Sig
|
permanent | Item (String) | Section 5 | Legacy alias: X-A509-Mandate-Sig
|
The locator strings a509://, btc://, pkarr://, and ipfs:// used inside IDENTITY.toml are internal A.509 mirror descriptor conventions and do not request new IANA Uniform Resource Identifier (URI) scheme registrations in this document.¶
The author acknowledges Stanislaw Baranski and Julian Szymanski for their foundational work on Federated Distributed Key Generation ([FDKG2025]), as well as the authors of [RFC9591] (FROST), [BEP0044], and the Iroh and Pkarr open-source communities.¶