The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Keryx listing page.
Every time an AI uses a creator's work as a source, the creator gets paid — instantly.
🔗 Live: keryx.cc — free to try, no wallet, no sign-up
· 🔎 public proof — code, adoption, RPC, settlement, cash-outs
· ▶️ npm run demo — the whole loop, real settlement, ~90s
· 🤖 npx -y keryx-mcp@latest — plug Keryx into any MCP agent
· 🧩 Fork the Arc primitives
The web's economics assume a human reader: you write, people visit, attention becomes ads, subscriptions, tips. AI agents broke that contract. They read everything and send back nothing — no click, no view, no cent. Every answer an assistant gives is built on someone's work, and that someone is invisible at the exact moment their work proves its value.
Keryx (κῆρυξ — herald) exists to fix that one moment. It makes citation itself the payment event: the instant an agent relies on your writing to answer a question, you are paid, proportional to how much you helped, settled sub-cent in USDC on Arc. No accounts, no invoices, no ad tech. A creator onboards by pasting an RSS URL. An agent pays because paying is cheaper than not knowing.
Keryx is a citation-toll reading agent — an autonomous reader with a wallet, and the payment rail underneath it. Give it a question and a budget:
The result is a working micro-economy: readers that pay by default, and writers that earn by being useful — not by being clicked.
Most "payment agents" are scripts with a wallet. Keryx's differentiator is visible agency — the model reasons about money and shows its work, streamed live to the UI:
/market and GET /api/offers publish exact payable versions, registry list prices, x402 paths, and verifiable EIP-712 discounts signed by publishers.Money safety is enforced in code, not by the model: the LLM proposes value; the orchestrator enforces the hard budget cap, so a hallucinated number can never overspend. An economic-invariant test suite (spend ≤ budget, payouts = weights, splits sum exactly) runs in CI on every push.
Example trace (real output):
creator is the creator, not Keryx. We've also proposed this as an opt-in convention upstream in
RSSHub.
Honest note: the demo sources seeded before this switch still have operator-held payout keys —
they are Keryx's own sample publications, not third-party creators. Nine of the twenty on-chain
records also name Keryx's treasury as their registry creator, so the treasury, not the source
wallet, can update or deactivate those nine. The payout address is correct on all twenty — an
hourly watchdog re-reads every record from the chain and publishes the comparison on
/status./api/creator/<id>/badge.svg)
displays your real citation count + USDC earned on your own site, with copy-paste Markdown/HTML on
each creator page. Payouts become portable, verifiable proof.0x2e12Fa…)
with creator-scoped IDs and on-chain multi-author splits.extension/) — highlight text on any page and ask Keryx
from a toolbar popup, or right-click to list a page you own as a paid source. A thin,
no-key client over the OpenAI-compatible endpoint; load unpacked on any Chromium browser.https://keryx.cc/mcp
over Streamable HTTP: no package or local wallet process. The research tool has an anonymous,
IP-limited trial; an ask-scoped kx_live_… Bearer key raises the cap and attributes usage to its
verified wallet. Creator rewards still settle in USDC on Arc. Quick connect:
codex mcp add keryx --url "https://keryx.cc/mcp?client=codex" or
claude mcp add --transport http keryx "https://keryx.cc/mcp?client=claude".
The interactive setup guide is at /integrations/mcp.npx -y keryx-mcp@latest keeps the caller-funded path: its local Arc wallet pays Keryx's x402
toll before Keryx researches and pays creators./ask: the reply embed carries the grounded answer, every creator paid,
and a link to the dispatch trace. No bot process — signed interactions POST straight to the API
(docs/discord-bot-setup.md)./ask … in a
group): same full reasoning loop, same real creator payouts, answered in-chat with a
dispatch-trace link. Webhook-only, no polling process
(docs/telegram-bot-setup.md)./keryx … command for any workspace: signed requests POST straight
to /api/slack/commands, the same full reasoning loop and real creator payouts answered in-channel
with a dispatch-trace link. No bot token or scopes — replies ride the command's response_url.
Setup + app manifest in (docs/slack-bot-setup.md).POST /api/agent/ask lets other agents buy Keryx's research over x402:
an agent paying an agent that pays creators, end to end. Versioned Quick/Deep packages pin the
execution contract and return provisional-SLO latency plus deterministic evidence-quality
receipts; see docs/a2a-research-packages.md.https://keryx.cc/api/v1 with model keryx: a drop-in Chat Completions
API. Free with no key, or pass a kx_live_… key as the Bearer token for higher limits. Every
cited creator is still paid downstream in USDC on Arc; with stream:true, the agent's live
buy/skip/trust reasoning streams as reasoning_content deltas. Try it with no install in the
browser playground — it also hands you the exact curl/Python/JS call./api/docs.GET /api/dispatch/<id>/receipt returns the portable
research receipt; download it from any permalink and run
npm run verify:receipt -- ./keryx-receipt-<id>.json to recompute its payload digest. See the
receipt format and trust boundary./api/treasury publishes the
settlement wallet's chain-abstracted Gateway balance (via Circle App Kit), so anyone can audit
what backs the payouts./api/activity streams the most recent
real settled citations (source, question, reward) — a proof-of-life surface and a zero-prior-knowledge
way for tooling to see what Keryx is citing right now; it also drives the live ticker on the landing./answers/feed.xml
and see every new paid answer as it settles. Keryx onboards creators by reading their RSS feeds;
this is the same door pointed the other way — Keryx itself becomes a source any reader or agent
can follow.Payments are the product, so none of them are pretend. Policy: no mocked settlement — every
reported figure is a real, settled transaction; offline dev runs are loudly labeled SIMULATED.
@circle-fin/x402-batching) — a two-toll design: a small fixed
access toll to read, plus a dynamic citation reward priced by contribution weight. Fetched
but uncited earns the toll; cited earns proportionally more only after its evidence passes the
deterministic grounding gate./status and /api/treasury.Arc testnet · snapshot 2026-08-13 · always current at /proof
| Settled nanopayments | 9,505 · $44.97 total volume |
| Paid to creators | $39.09 USDC → 20 earning creators (100% of rewards, 0% fee) |
| Queries | 1,842 · 95.4% aggregate reader→payer conversion |
| Independent usage | 141 queries · 131 paid · 611 payments · $2.636 to creators |
| Identified retention + feedback | 4/4 actors returned · 9/9 positive responses |
| First-party agent activity | 1,701 queries · 8,894 payments · reported separately from adoption |
| Creator cash-outs | 12 self-serve gasless withdrawals ($0.7533) executed on-chain |
Honesty on usage: most of this volume is generated by Keryx's own 24/7 autonomous agents (volume engine + headless web/A2A clients) — real on-chain settlement, agent-driven rather than external human traffic, and labeled as such on the dashboard. The external on-ramps (MCP server, A2A endpoint, owner-verified creators) are live; growing genuine third-party usage is the current push. Settlements batch through Circle Gateway, so on-chain proof is the batched settlement wallet + the SourceRegistry contract on arcscan, not per-payment tx links.
One command — the full cycle (~90s). Decide → pay the x402 toll → read → synthesize → settle weighted citation rewards, then print the Arc-testnet wallets whose USDC actually moved:
With ANTHROPIC_API_KEY + AGENT_FUNDER_PRIVATE_KEY + NEXT_PUBLIC_KERYX_REGISTRY_ADDRESS it
settles for real and prints on-chain proof; without them the same flow runs offline, clearly
labeled SIMULATED — a mock is never presented as settled.
| Mode | Reasoning | Payments | When |
|---|---|---|---|
| Offline dev | heuristic, no LLM key | simulated, labeled | laptop, zero setup |
| Server treasury | Claude / DeepSeek | real Arc testnet (funder wallet) | volume engine, A2A |
| User interactive | Claude / DeepSeek | real Arc testnet (user-funded session EOA) | the web app |
Keryx runs as a real service, not a demo that dies after the video:
/status + /api/health —
uptime, deployed commit, settlement mode, live traction, treasury balance.npm run redeploy).The interactive path is non-custodial, with the remaining testnet trade-offs documented (each with an upgrade path in the roadmap):
Full threat matrix and verification results: docs/security-threat-model.md.
The reusable building blocks are MIT-licensed and standalone in
keryx-arc-primitives (also vendored at
arc-primitives/ — clone with --recurse-submodules):
docs/openai-compatible-api.md — drop-in recipes for OpenAI SDK, LangChain, LlamaIndex, Open WebUI, LibreChat, Continuedocs/system-architecture.md — data/money flow + on-chain componentsdocs/security-threat-model.md — threat matrix, audits, residualsdocs/codebase-summary.md — module mapdocs/project-roadmap.md — where this is goingTRACTION.md — real payment volume, updated from the live datastoreFEEDBACK.md — Circle/Arc dev-tool feedback we filed while buildingDECISIONS.md — architecture decision logCLAUDE.md — contributor orientationKeryx started at the Lepton Agents Hackathon (Canteen × Circle, on Arc, June 2026) as the canonical build of the "herald" model — content cited, paid per citation — and never stopped running. It has been live at keryx.cc since, settling real value every hour, onboarding real feeds, and shipping continuously in public. Next: Lit Protocol for client-side IPFS key release and growing external agent traffic through the MCP and A2A on-ramps. Mainnet remains a separate audited migration: the current network id, Gateway endpoints, explorer, and browser chain are deliberately pinned to Arc testnet, with no single-variable production-money switch.
Next.js 16 · React 19 · Tailwind 4 · shadcn/ui · viem/wagmi · @circle-fin/x402-batching ·
@circle-fin/unified-balance-kit · @x402/fetch · Node node:sqlite / Supabase ·
Anthropic / DeepSeek. Built on the verified
circlefin/arc-nanopayments x402/Gateway plumbing.