The naulon fetcher
What the naulon fetcher is, how to recognize it (Web Bot Auth, signed as naulon.app), and how to allow or block it.
On this page
If you saw naulon traffic in a WAF, a bot rule or a log line, this page says what it is, how to recognize it, and how to allow or block it.
naulon lets a publisher charge AI agents to read and cite their work, and settles the payment in USDC directly from the buyer to the author. Two parts of it make outbound HTTP requests.
Why you'd see us
We do not crawl the web broadly or fetch sites for training data. Every request has one of two triggers:
- A site connected itself to naulon. When an operator points naulon at their origin, the gate fetches that origin's pages to serve them back through the toll, and during setup reads the site once to draft a catalogue. This is the operator's own site, fetched at the operator's direction.
- A buyer paid to read a page. Our research agent fetches a page when an AI agent has agreed to the toll and is paying for that specific read, plus the discovery surfaces (RSS, sitemap, feeds) it needs to find what's for sale.
We don't fetch pages speculatively or re-fetch content we already paid to read.
How to recognize us
The reliable signal is a signature, not a user-agent string. naulon signs its requests with Web Bot Auth (HTTP Message Signatures, RFC 9421). The public keys are published at a fixed URL on our domain:
https://naulon.app/.well-known/http-message-signatures-directoryEach signed request carries signature, signature-input, and signature-agent.
A signature that verifies against that directory proves the request came from us.
A user-agent string can be forged; the signature can't.
signature-agent is an RFC 9421 structured-field string, so the quotes are part
of the value on the wire:
signature-agent: "naulon.app"Write an exact-match edge rule against "naulon.app" with the quotes, or match
on "contains naulon.app". A rule that tests equality against a bare naulon.app
never fires.
If you run behind Cloudflare, Vercel, or any other Web Bot Auth verifier, this is the identity it will surface for our traffic.
User agents
The user-agent is useful for logs and simple rules but proves nothing. You'll see these:
| User-agent | What it is |
|---|---|
naulon-wayfarer/0.1 |
The research agent: discovery reads (RSS, sitemap, feeds) and the paid reads a buyer settles for. |
naulon-crawl/1 (+catalog-draft) |
A one-time read of a newly connected site to draft its catalogue. |
naulon-probe/1 (+https://naulon.app) |
The read behind "Read my site" when someone connects your site: your home page, your feeds and sitemap, and one page from each section. At most a few dozen requests, signed as naulon.app. |
When the gate serves a connected origin's own content back through the toll, the
request carries the buyer agent's user-agent, not ours. That request is
identified by the naulon.app signature, not by a user-agent.
Allowing or blocking us
- To allow or block all naulon traffic at once, match the verified identity
naulon.app. On Cloudflare, that's a custom rule on the verified bot / signing operator; on your own edge, match thesignature-agentheader once you've verified the signature. This holds whatever user-agent a request sends. - For a quick user-agent rule, match the fragments in the table above
(
naulon-wayfarer,naulon-crawl,naulon-probe). This filters honest traffic only; it is not a security boundary.
Blocking us means AI agents can't pay to read the blocked pages through naulon. If the site's publisher connected it to naulon, check with them before you block at the edge.
Rate and crawl behavior
Fetching is driven by demand. The gate reads a connected origin in response to live agent requests; the research agent reads only what a buyer is paying for plus the discovery surfaces above. There is no scheduled bulk crawl.
If naulon traffic causes load you didn't expect, tell us.
Contact
Questions, an unexpected request pattern, or a report about our fetcher: help@naulon.app.