The Files
| File | Address |
|---|---|
| Manifest (JSON) | https://arp-protocol.org/.well-known/reasoning.json |
| Markdown representation | https://arp-protocol.org/.well-known/reasoning.md |
| JSON Schema v1.3 | https://arp-protocol.org/schema/v1.3.json |
| Specification | https://arp-protocol.org/SPEC.md |
| Legal notice of the publisher | https://truesource.studio/impressum |
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
- HTTP
Linkheader on the HTML pages of the site, withrel="describedby"for the JSON and the Markdown file <link rel="reasoning">and<link rel="describedby">in the<head>of the protocol pages: home page, research agenda, validator, generator, signer, LangChain integration and this page- A visible line in the footer of these pages, with the full manifest URL as link text
- Entries for both files in sitemap.xml
- A
## Reasoning Contextsection in llms.txt
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.
How a Verifier Checks It
- The verifier fetches the manifest and reads
_arp_signature.dns_selector. - It looks up the TXT record
<selector>._arp.arp-protocol.org, which has the formv=ARP1; k=ed25519; p=<public key>. An emptyp=means the key is revoked; the result is thenINVALIDwith the reasonkey_revoked. - It sets
_arp_signature.signatureto"", 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. - It compares
domainwith the domain the file was fetched from and checksexpires_at. - Optionally, it fetches the Markdown file and compares its SHA-256 with
representations:REPRESENTATION_MATCHorREPRESENTATION_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.