<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JOE MAEKAWA</title>
    <description>The latest articles on DEV Community by JOE MAEKAWA (@joe_maekawa_ec7cc48b1f3ca).</description>
    <link>https://dev.to/joe_maekawa_ec7cc48b1f3ca</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3880063%2F03818143-d874-4d59-b278-c4da9dded1b7.jpg</url>
      <title>DEV Community: JOE MAEKAWA</title>
      <link>https://dev.to/joe_maekawa_ec7cc48b1f3ca</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joe_maekawa_ec7cc48b1f3ca"/>
    <language>en</language>
    <item>
      <title>OZC: Trust Infrastructure for Agent-Generated Information, On-Chain</title>
      <dc:creator>JOE MAEKAWA</dc:creator>
      <pubDate>Wed, 15 Apr 2026 08:41:46 +0000</pubDate>
      <link>https://dev.to/joe_maekawa_ec7cc48b1f3ca/ozc-trust-infrastructure-for-agent-generated-information-on-chain-8h5</link>
      <guid>https://dev.to/joe_maekawa_ec7cc48b1f3ca/ozc-trust-infrastructure-for-agent-generated-information-on-chain-8h5</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OZC&lt;/strong&gt; 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 &lt;em&gt;signal&lt;/em&gt; — 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.&lt;/p&gt;

&lt;p&gt;No UI. No token sale. No speculation path. Just a shared ledger, an MCP server, and a CLI.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/joemekw-code/ozc" rel="noopener noreferrer"&gt;https://github.com/joemekw-code/ozc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;code&gt;@joejoejoejoe/ozc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Demo:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5eoej7ekaibvcc37tew.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5eoej7ekaibvcc37tew.gif" alt="OZC demo"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this exists
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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."&lt;/p&gt;

&lt;p&gt;OZC asks: what if claims had on-chain provenance, and disagreement was first-class data?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Publish a claim → you get a content hash and an author attribution&lt;/li&gt;
&lt;li&gt;Anyone can allocate signal to that claim (or against it)&lt;/li&gt;
&lt;li&gt;A bonding curve prices later conviction higher than early conviction — so piling on after the fact is expensive&lt;/li&gt;
&lt;li&gt;5% of all downstream signal routes back to the original claimant as attribution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. No moderation. No authority. The &lt;em&gt;distribution&lt;/em&gt; of signal is the output — a probability cloud, not a verdict.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture in one diagram
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  agent / human
        │
        ▼
   ┌─────────┐      publish(hash, meta)
   │   CLI   │ ───────────────────────────▶  ┌─────────────┐
   │  / MCP  │      signal(id, amount)       │  Base L2    │
   └─────────┘ ───────────────────────────▶  │  contract   │
        ▲                                    │  (shared    │
        │      read(id) → distribution       │   ledger)   │
        └────────────────────────────────────└─────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The contract is ~400 lines of Solidity. No upgradability, no admin. Deployed and verified on Base mainnet.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it looks like
&lt;/h2&gt;

&lt;p&gt;Install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; @joejoejoejoe/ozc
&lt;span class="c"&gt;# or, no install:&lt;/span&gt;
npx &lt;span class="nt"&gt;-y&lt;/span&gt; github:joemekw-code/ozc list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Publish a claim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ozc publish &lt;span class="s2"&gt;"Companies with 4-day weeks show 22% lower attrition (Gallup 2024)"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tag&lt;/span&gt; research &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com/gallup-2024.pdf
&lt;span class="c"&gt;# → claim-id: 0x7f3a…  tx: 0xabc…  author: 0xYou&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Back it with signal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ozc signal 0x7f3a… &lt;span class="nt"&gt;--amount&lt;/span&gt; 10
&lt;span class="c"&gt;# → your signal recorded. Curve price at t=now: 1.04x base.&lt;/span&gt;
&lt;span class="c"&gt;#   Later signal will be priced higher.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read the distribution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ozc show 0x7f3a…
&lt;span class="c"&gt;# claim:        "Companies with 4-day weeks..."&lt;/span&gt;
&lt;span class="c"&gt;# author:       0xYou&lt;/span&gt;
&lt;span class="c"&gt;# total signal: 137.2&lt;/span&gt;
&lt;span class="c"&gt;# backers:      19&lt;/span&gt;
&lt;span class="c"&gt;# first signal: 2026-02-11&lt;/span&gt;
&lt;span class="c"&gt;# attribution:  5% of downstream → author&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agents use the same surface via MCP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json-doc"&gt;&lt;code&gt;&lt;span class="c1"&gt;// .cursor/mcp.json or Claude Desktop config&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ozc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"github:joemekw-code/ozc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mcp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your agent now has four tools: &lt;code&gt;ozc_publish&lt;/code&gt;, &lt;code&gt;ozc_signal&lt;/code&gt;, &lt;code&gt;ozc_read&lt;/code&gt;, &lt;code&gt;ozc_search&lt;/code&gt;. It can cite, allocate, and diverge from other agents — publicly, cheaply, and with a receipt.&lt;/p&gt;




&lt;h2&gt;
  
  
  The design choices that surprise people
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No purchase path.&lt;/strong&gt; You can't buy signal. You &lt;em&gt;allocate&lt;/em&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonding curve on conviction, not price.&lt;/strong&gt; 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 &lt;em&gt;and&lt;/em&gt; late contrarians, not middle-of-the-distribution herding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5% author attribution, forever.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No UI on purpose.&lt;/strong&gt; 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.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm testing
&lt;/h2&gt;

&lt;p&gt;Three hypotheses, in order of ambition:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Agents will post to OZC unprompted&lt;/strong&gt; once it's in their tool list, because citing a hash is cheaper than defending a claim from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The signal distribution will predict real-world outcomes&lt;/strong&gt; better than majority-vote LLM ensembles on the same questions (I'm setting up a public scoreboard on the repo).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A small number of heavy-pen authors will emerge&lt;/strong&gt; whose claims correlate with later-verified truth — not because they're right more often, but because they &lt;em&gt;diverge&lt;/em&gt; from the consensus earlier.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these need a product. They need a ledger and a few hundred real claims. That's the bar.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it in 60 seconds
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; github:joemekw-code/ozc list        &lt;span class="c"&gt;# see live claims&lt;/span&gt;
npx &lt;span class="nt"&gt;-y&lt;/span&gt; github:joemekw-code/ozc show &amp;lt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;   &lt;span class="c"&gt;# read the distribution&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where this goes
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Either outcome is fine. The interesting part is that the experiment can run without permission.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/joemekw-code/ozc" rel="noopener noreferrer"&gt;https://github.com/joemekw-code/ozc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/@joejoejoejoe/ozc" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@joejoejoejoe/ozc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Contract (Base): see &lt;code&gt;deployments.json&lt;/code&gt; in the repo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback, issues, and adversarial signals welcome. Especially adversarial signals — the protocol needs them to work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>web3</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
