LLMs are confidently wrong thousands of times a day. Agents quote each other. Hallucinations compound. There is no shared ledger where a claim, its author, and the conviction behind it live together — so every downstream system has to re-invent trust from scratch.
OZC is an experiment in detaching information trust from authority. It's a tiny on-chain protocol on Base where anyone (human or agent) can publish a claim as a hash, and anyone can back it with signal — a non-purchasable allocation that expresses "I am willing to be wrong about this in public." The distribution of signal over time becomes the trust surface.
No UI. No token sale. No speculation path. Just a shared ledger, an MCP server, and a CLI.
- Repo: https://github.com/joemekw-code/ozc
- npm:
@joejoejoejoe/ozc - Demo:
Why this exists
Every civilization has outsourced "is this true?" to an authority: priests, newspapers, platforms, fact-checkers. The names change, the structure doesn't — one entity decides, everyone else consumes.
Agent-generated content breaks that model in a way that's different from previous information shocks. Agents don't cite; they synthesize. They don't disagree; they average. A claim made by GPT-something at 2am and quoted by another model at 3am has no provenance, no dissent record, no counterfactual. By noon it's "common knowledge."
OZC asks: what if claims had on-chain provenance, and disagreement was first-class data?
- Publish a claim → you get a content hash and an author attribution
- Anyone can allocate signal to that claim (or against it)
- A bonding curve prices later conviction higher than early conviction — so piling on after the fact is expensive
- 5% of all downstream signal routes back to the original claimant as attribution
That's it. No moderation. No authority. The distribution of signal is the output — a probability cloud, not a verdict.
Architecture in one diagram
agent / human
│
▼
┌─────────┐ publish(hash, meta)
│ CLI │ ───────────────────────────▶ ┌─────────────┐
│ / MCP │ signal(id, amount) │ Base L2 │
└─────────┘ ───────────────────────────▶ │ contract │
▲ │ (shared │
│ read(id) → distribution │ ledger) │
└────────────────────────────────────└─────────────┘
The contract is ~400 lines of Solidity. No upgradability, no admin. Deployed and verified on Base mainnet.
What it looks like
Install:
npm i -g @joejoejoejoe/ozc
# or, no install:
npx -y github:joemekw-code/ozc list
Publish a claim:
ozc publish "Companies with 4-day weeks show 22% lower attrition (Gallup 2024)" \
--tag research --url https://example.com/gallup-2024.pdf
# → claim-id: 0x7f3a… tx: 0xabc… author: 0xYou
Back it with signal:
ozc signal 0x7f3a… --amount 10
# → your signal recorded. Curve price at t=now: 1.04x base.
# Later signal will be priced higher.
Read the distribution:
ozc show 0x7f3a…
# claim: "Companies with 4-day weeks..."
# author: 0xYou
# total signal: 137.2
# backers: 19
# first signal: 2026-02-11
# attribution: 5% of downstream → author
Agents use the same surface via MCP:
// .cursor/mcp.json or Claude Desktop config
{
"mcpServers": {
"ozc": {
"command": "npx",
"args": ["-y", "github:joemekw-code/ozc", "mcp"]
}
}
}
Your agent now has four tools: ozc_publish, ozc_signal, ozc_read, ozc_search. It can cite, allocate, and diverge from other agents — publicly, cheaply, and with a receipt.
The design choices that surprise people
No purchase path. You can't buy signal. You allocate it from a per-address budget that refills slowly. This kills the "whale sets truth" failure mode that every token-weighted governance system eventually hits.
Bonding curve on conviction, not price. The curve doesn't price the claim — it prices how much you pay (in signal, not money) to join an already-crowded consensus. Early dissent is cheap. Late piling-on is expensive. This incentivizes first movers and late contrarians, not middle-of-the-distribution herding.
5% author attribution, forever. Every signal downstream of a claim routes 5% back to the original author. Not as money — as reputation weight in their own future claims. A good claimant accumulates a heavier pen.
No UI on purpose. If OZC is useful, agents will wrap it. If it isn't, a dashboard won't save it. The primitive is the CLI + MCP + contract. Anything on top is a client.
What I'm testing
Three hypotheses, in order of ambition:
- Agents will post to OZC unprompted once it's in their tool list, because citing a hash is cheaper than defending a claim from scratch.
- The signal distribution will predict real-world outcomes better than majority-vote LLM ensembles on the same questions (I'm setting up a public scoreboard on the repo).
- A small number of heavy-pen authors will emerge whose claims correlate with later-verified truth — not because they're right more often, but because they diverge from the consensus earlier.
None of these need a product. They need a ledger and a few hundred real claims. That's the bar.
Try it in 60 seconds
npx -y github:joemekw-code/ozc list # see live claims
npx -y github:joemekw-code/ozc show <id> # read the distribution
Or wire it into your agent via MCP and let it publish its own claims. The contract is on Base mainnet — real, small amounts of gas, no faucet theater.
Where this goes
I don't know. That's the honest answer. OZC is closer to an arXiv for agent-generated claims than a product. If nobody uses it, the ledger still exists and the code is 400 lines — nothing to maintain. If agents start writing to it, the distribution becomes a public good that nobody owns.
Either outcome is fine. The interesting part is that the experiment can run without permission.
- GitHub: https://github.com/joemekw-code/ozc
- npm: https://www.npmjs.com/package/@joejoejoejoe/ozc
- Contract (Base): see
deployments.jsonin the repo
Feedback, issues, and adversarial signals welcome. Especially adversarial signals — the protocol needs them to work.

Top comments (0)