Keryx ποΈ
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 problem
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.
What Keryx is
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:
- It decomposes the question into sub-claims and discovers exact article candidates from free previews and the signed offer book.
- It decides, per article version: buy / skip / cache β expected value vs effective price vs remaining budget, with a human-readable rationale for every choice.
- It pays the x402 toll only for what it buys, checks sufficiency after each read, and stops early when it has enough.
- It synthesizes a grounded answer with inline citations, weighs each source's real contribution, and settles a weighted USDC nanopayment to every creator it cited β multi-author works split on-chain, 100% to creator wallets, 0% platform fee.
The result is a working micro-economy: readers that pay by default, and writers that earn by being useful β not by being clicked.
An agent that genuinely decides
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:
- Buy / skip / cache with rationale β every spend decision names the exact article version and explains why.
- Open article market β
/marketandGET /api/offerspublish exact payable versions, registry list prices, x402 paths, and verifiable EIP-712 discounts signed by publishers. - Adjudication βοΈ β when two sources conflict, the agent doesn't average them; it decides which to trust and says why.
- Confidence verdict π β it rates its own answer (High / Moderate / Low) and hedges the prose accordingly, instead of bluffing.
- Evidence ledger β every rewarded citation carries a claim-indexed exact quote. The orchestrator verifies that quote against content it actually read before the marker can receive a citation reward; rejected markers are removed from the answer.
- Living answer receipts β archived conclusions never silently change. Keryx flags when an exact paid SHA-256/IPFS article version has been superseded, exposes a metadata-only freshness API, and itemizes the source/evidence/coverage/settled-payment delta after a reader explicitly re-asks.
- Portable research receipts β every permalink exports one deterministic JSON bundle containing its answer hash, BUY/SKIP/CACHE decisions, exact article versions, claim evidence and sanitized Circle settlement snapshot. Retain its SHA-256 to detect later changes; the self-check does not pretend to be a Keryx, publisher, or on-chain signature.
- Claim-aware evidence portfolios β Keryx chooses a non-redundant set of positive source proposals under separate attention and fetch-USDC caps. CACHE correctly costs zero fetch USDC but one context slot; the receipt compares preview-predicted coverage with evidence yield after read.
- Cross-query memory β sources that proved useful (or useless) in past runs on the same subject shift future buy/skip decisions. A source is scored against the runs that actually read it, so a skip never becomes evidence against the source it skipped.
- Semantic discovery β candidate matching by embedding similarity, not keyword luck.
- Emergent frugality β it stops early, reuses its cache, and correctly spends nothing when nothing is worth buying.
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):
[decide] BUY Agent Economy Weekly β strong match on x402, autonomous, commerce; worth the $0.004 toll
[decide] SKIP Garden & Soil Monthly β weak match (no key terms); not worth $0.002
[fetch] Paid $0.004 to Agent Economy Weekly β S1
[sufficiency] Read 2 sources covering all sub-claims; stopping early to save budget
[settle] Settled $0.015 β Mara Okoye Β· $0.010 β Devin Park (60/40 author split)
π $0.032 spent β 100% to creators Β· 3 bought / 3 skipped
For creators
- Claim proven demand β keryx.cc/wanted shows claims paid dispatches left under-covered. A new creator can check and list an RSS feed; an existing registry creator can offer the exact indexed article directly and optionally sign a temporary discount. Keryx guarantees that version a candidate slot, not a purchase, then queues one bounded retry after refreshing creator authority. Fulfillment is public only when that source passes the evidence gate and its citation reward really settles. Every claim has a canonical shareable brief and social card, so the specific gap can reach the writer who covers it.
- Onboard from your own wallet β paste an RSS feed at keryx.cc/register and your wallet writes the source to the on-chain registry itself. Keryx sets up the x402-priced endpoint and the free preview; it never holds your key, and the faucet on that page covers the gas. All 20 listed sources are written to the on-chain registry, including real public feeds β Hugging Face, Vitalik Buterin, CoinDesk, the Ethereum Foundation, Stripe, Latent Space, Simon Willison β each earning per citation.
- Own your payout β the payout address is the wallet you signed in with. The first owner-verified
creator (conzit.com) proved feed ownership, set its address, was cited &
paid end-to-end β and has since claimed its registry record from its own wallet, so its on-chain
creatoris 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 registrycreator, 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. - Know the moment you're cited β opt into a plain email alert (no webhook server needed, rate-capped, one-click unsubscribe) and/or signed webhooks that fire the instant a citation settles; every payout on your public earnings page shows the actual question your work helped answer.
- Show it off β an embeddable "Cited by Keryx" badge (live SVG at
/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. - Cash out yourself, gas-free β a self-serve, non-custodial withdraw: your wallet signs a Gateway burn intent in the browser, the treasury relays gas. Real creators have executed real on-chain cash-outs.
- Keep everything β 100% of every citation reward goes to creator wallets. 0% platform fee.
- Squat-proof identity β sources live in an on-chain SourceRegistry
(
0x2e12Faβ¦) with creator-scoped IDs and on-chain multi-author splits.
For developers & agents
- Free, no-wallet trial β keryx.cc answers without any setup, with a graceful upgrade path when you outgrow the free budget.
- Browser extension (
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. - Remote MCP β connect an MCP client directly to
https://keryx.cc/mcpover Streamable HTTP: no package or local wallet process. Theresearchtool has an anonymous, IP-limited trial; an ask-scopedkx_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"orclaude mcp add --transport http keryx "https://keryx.cc/mcp?client=claude". The interactive setup guide is at/integrations/mcp. - Local x402 MCP β on the official MCP registry;
npx -y keryx-mcp@latestkeeps the caller-funded path: its local Arc wallet pays Keryx's x402 toll before Keryx researches and pays creators. - Discord slash command β install the Keryx app
in any server and type
/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). - Telegram bot β DM @keryxai_bot any question (or
/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). - Slack slash command β a
/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'sresponse_url. Setup + app manifest in (docs/slack-bot-setup.md). - Agent-to-agent API β
POST /api/agent/asklets other agents buy Keryx's research over x402: an agent paying an agent that pays creators, end to end. - OpenAI-compatible endpoint β point any OpenAI SDK or tool (LangChain, LlamaIndex, OpenWebUI,
LibreChat, Continue) at
https://keryx.cc/api/v1with modelkeryx: a drop-in Chat Completions API. Free with no key, or pass akx_live_β¦key as the Bearer token for higher limits. Every cited creator is still paid downstream in USDC on Arc; withstream:true, the agent's live buy/skip/trust reasoning streams asreasoning_contentdeltas. Try it with no install in the browser playground β it also hands you the exact curl/Python/JS call. - Public API with wallet-issued keys β SIWE-authenticated key minting (hashed, show-once,
rate-limited) and OpenAPI docs at
/api/docs. - Receipt export + local verification β
GET /api/dispatch/<id>/receiptreturns the portable research receipt; download it from any permalink and runnpm run verify:receipt -- ./keryx-receipt-<id>.jsonto recompute its payload digest. See the receipt format and trust boundary. - Non-custodial by design β interactive spend uses a session EOA the user funds from their own wallet; the browser co-signs each x402 authorization in-tab. The funded amount is the hard cap. Keryx never holds your key or your funds.
- The chain decides who gets paid β before anything signs or settles, every payee is checked against the on-chain SourceRegistry, not against Keryx's database. Editing the database cannot reroute a single citation reward, on any path β browser, volume engine, or A2A.
- Transparent treasury β
/api/treasurypublishes the settlement wallet's chain-abstracted Gateway balance (via Circle App Kit), so anyone can audit what backs the payouts. - Live activity feed β
/api/activitystreams 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. - Answer archive as an Atom feed β subscribe to
/answers/feed.xmland 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.
The money rails
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.
- x402 pay-per-request (
@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. - Circle Gateway nanopayments β batched sub-cent settlement (floor $0.000001). Average Keryx payment: ~$0.0044 β a true nanopayment, uneconomical on any card rail.
- Circle App Kit (Unified Balance Kit) β chain-abstracted treasury balance, published live on
/statusand/api/treasury. - SourceRegistry contract on Arc β source identity, IPFS CIDs, multi-author splits; on-chain events drive the off-chain indexer.
- Encrypted content on IPFS β AES-256-GCM ciphertext pinned publicly; plaintext is released only after x402 settlement verifies. Free previews stay plaintext.
- USDC-native chain β Arc settles in <500ms with USDC as gas, which is what makes per-citation economics physically possible.
Live numbers
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.
Architecture
BROWSER (Web App) IPFS + Arc Smart Contracts Circle Gateway + Arc Testnet
βββββββββββββββββ βββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ
ββββββββββββββββββββ [SourceRegistry]
β /ask page β (SIWE on Arc 0x2e12Fa... USDC on Arc
β + wallet connect β auth) β’ sources[] (ERC-20, 6 decimals)
β β β’ emit Registry events
ββββββββββ¬ββββββββββ β’ indexed by off-chain DB
β session-grant
β (user funds session EOA) [IPFS Content]
β MetaMask tx β session β’ AES-256-GCM encrypted [Circle Gateway]
β deposits in Gateway β’ plaintext released only post-settle β’ batch settlement
β β’ x402 EIP-712 verify
β [Keryx API]
β co-sign loop (fetch+POST): β’ auth: SIWE JWT (browser + API key) [Arc RPC]
/api/ask (SSE) βββββββββββββββββββΆ /api/session/* (grant, credit) rpc.testnet.arc.network
browser streams /api/ask (agent asks, gets
sign-requests /api/ask/sign sign-requests back)
βββββββββββββββββββββββββββββββββ /api/source/[id]/item/[itemId]?version=β¦
client-side session key /api/offers (signed article price book)
/api/cite (citation reward)
signs EIP-712 /api/keys (API key mint/verify)
auto-signs (NO prompt) /api/agent/ask (A2A, x402-priced)
/api/treasury (App Kit unified balance)
/api/docs (OpenAPI)
Agent brain (lib/agent/run-agent.ts):
decomposeβdiscoverβdecideβfetchβsufficiencyβsynthesizeβattributeβsettle
Run it
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:
npm run demo -- "How do x402 and stablecoins enable AI agent commerce?" --budget 0.05
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.
# 1. Install (Node v20.18.2+)
npm install
# 2. Configure (optional β runs offline with zero keys)
cp .env.example .env.local
# 3. Wallets + demo sources
npm run generate-wallets
npm run seed-sources
# 4a. One question, full reasoning trace in the terminal
npm run ask -- "How do x402 and stablecoins enable autonomous AI agent commerce?" --budget 0.05
# 4b. Or the full web app (SIWE auth, session grants, browser co-sign)
npm run dev # http://localhost:3939
# 5. Autonomous volume engine Β· live metrics
npm run seed -- --count 20
npm run metrics
| 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 |
Built to stay up
Keryx runs as a real service, not a demo that dies after the video:
- Public
/status+/api/healthβ uptime, deployed commit, settlement mode, live traction, treasury balance. - Low-downtime deploys β new builds compile beside the live one, swap atomically, health-gate,
and auto-roll-back if the new build doesn't come up (
npm run redeploy). - Treasury watchdog β hourly cron checks settlement-wallet USDC + gas against thresholds and alerts before settlements can stall; failed settlements alert immediately.
- Rotating off-box backups of the traction datastore, hourly.
- CI β typecheck + the economic-invariant suite on every push.
- 24/7 volume daemon β the agent keeps reading, paying, and settling around the clock.
Security & honest trade-offs
The interactive path is non-custodial, with the remaining testnet trade-offs documented (each with an upgrade path in the roadmap):
- Circle facilitator β x402 settlement batches through Circle's facilitator (no on-chain alternative on Arc testnet yet).
- Server holds the IPFS decryption key β content is encrypted at rest, but key release is server-side (Lit Protocol planned once Arc is supported).
- Session key lives in a Web Worker β derived there, never returned; the tab holds only AES-GCM ciphertext under a non-extractable key. The worker signs payment authorizations to registry-authorised payees only, and transactions only to USDC/Gateway β so page-level XSS can neither steal the key nor name itself as payee. Residual: the derivation signature is produced on the main thread, a one-call window at setup.
- Treasury gas wallet β holds gas only, rotated; a compromise cannot touch creator funds.
Full threat matrix and verification results: docs/security-threat-model.md.
Fork the primitives
The reusable building blocks are MIT-licensed and standalone in
keryx-arc-primitives (also vendored at
arc-primitives/ β clone with --recurse-submodules):
- Two-toll x402 settlement β fixed access price + dynamic citation reward.
- On-chain creator/attribution registry β squat-proof IDs, multi-author splits, event indexer.
- Non-custodial spend cap β server-enforced budget over a user-funded session EOA.
Project docs
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 orientation
Origin & where it's going
Keryx 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.
Stack
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.