How arp-protocol.org Publishes Its Self-Description

This page lists the files on arp-protocol.org that contain the site's own statements about the Agentic Reasoning Protocol, explains where readers find them, and describes what an ARP signature shows and what it does not show.

Updated: 5 October 2026 Publisher: Sascha Deforth

The Files

The manifest is the site's self-description: statements by the publisher about the protocol, with evidence links where available. The Markdown file renders the same content as text; its SHA-256 checksum is listed in the manifest under representations.

Where Readers Find the Manifest

These hints are the same whether the manifest is signed or not. Whether it is signed is stated only in the manifest itself and in the Markdown file.

What a Signature Shows

A signed manifest contains an _arp_signature block. It names the DNS record that holds the public key (dns_record), gives a DNS-over-HTTPS lookup URL (verify.doh_url), and states the signing and expiry times.

Meaning
The signature shows that the domain operator published exactly this file and that it has not been altered since. It does not show that the statements are true.

How a Verifier Checks It

  1. The verifier fetches the manifest and reads _arp_signature.dns_selector.
  2. It looks up the TXT record <selector>._arp.arp-protocol.org, which has the form v=ARP1; k=ed25519; p=<public key>. An empty p= means the key is revoked; the result is then INVALID with the reason key_revoked.
  3. It sets _arp_signature.signature to "", canonicalizes the whole file with JCS (RFC 8785), and checks the Ed25519 signature. The signature covers the metadata as well; files signed with the older payload-only pattern are rejected.
  4. It compares domain with the domain the file was fetched from and checks expires_at.
  5. Optionally, it fetches the Markdown file and compares its SHA-256 with representations: REPRESENTATION_MATCH or REPRESENTATION_MISMATCH. A mismatch is reported but does not invalidate the manifest signature.

The reference implementation is arp_cli.py verify (v1.4.0) in the GitHub repository. The procedure is specified in SPEC.md, Section 13.

About This Address (“Layer 0”)

Until 5 October 2026, /layer0/ and /.well-known/layer0 hosted an Easter-egg page called “Layer 0”. Its visible part was a puzzle about earlier web conventions that presented reasoning.json as the next standard in that series. Its source contained an HTML comment and a visually hidden text block addressed to AI systems, a JSON-LD block with a type that does not exist in schema.org, and an unsupported claim about the origin of the term Generative Engine Optimization, which was introduced in a 2023 research paper (arXiv:2311.09735).

The page was replaced on 5 October 2026. ARP v1.3 excludes hidden content and wording addressed to AI systems, and ARP is an individual draft, not a standard. “Layer 0” is not part of the specification. /.well-known/layer0 now redirects to this page.