<?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: Emmanuel Haankwenda</title>
    <description>The latest articles on DEV Community by Emmanuel Haankwenda (@emmanuel39hanks).</description>
    <link>https://dev.to/emmanuel39hanks</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1244360%2F9a757a6c-fd7c-45be-8d61-d95b9b168590.jpg</url>
      <title>DEV Community: Emmanuel Haankwenda</title>
      <link>https://dev.to/emmanuel39hanks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emmanuel39hanks"/>
    <language>en</language>
    <item>
      <title>How to Power OpenCode CLI Agent with Decentralized 0G Router</title>
      <dc:creator>Emmanuel Haankwenda</dc:creator>
      <pubDate>Tue, 28 Jul 2026 22:31:43 +0000</pubDate>
      <link>https://dev.to/emmanuel39hanks/how-to-power-opencode-cli-agent-with-decentralized-0g-router-39ml</link>
      <guid>https://dev.to/emmanuel39hanks/how-to-power-opencode-cli-agent-with-decentralized-0g-router-39ml</guid>
      <description>&lt;p&gt;Agentic coding tools are becoming the default way many developers write software. While most people connect them to centralised APIs, &lt;strong&gt;0G Network&lt;/strong&gt; lets you run the same OpenAI-compatible workflows on decentralised compute using your &lt;strong&gt;0G credits&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because the &lt;strong&gt;0G Router API&lt;/strong&gt; is OpenAI-compatible, OpenCode can use it without any code changes—just point it at a different endpoint.&lt;/p&gt;

&lt;p&gt;In this guide you'll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install OpenCode&lt;/li&gt;
&lt;li&gt;Configure it to use the 0G Router&lt;/li&gt;
&lt;li&gt;Connect your API key&lt;/li&gt;
&lt;li&gt;Run GPT-5.6 Sol, DeepSeek V4 Pro, or GLM-5.2 from your terminal&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before getting started, you'll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js installed&lt;/li&gt;
&lt;li&gt;A 0G account with compute credits&lt;/li&gt;
&lt;li&gt;An API key from the 0G Console&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1 - Install OpenCode
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; opencode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 2 - Generate a 0G API Key
&lt;/h2&gt;

&lt;p&gt;Head over to the 0G Console.&lt;/p&gt;

&lt;p&gt;From there you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;View your available credits&lt;/li&gt;
&lt;li&gt;Browse available models&lt;/li&gt;
&lt;li&gt;Generate an API key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;0G Console:&lt;/strong&gt; &lt;a href="https://pc.0g.ai" rel="noopener noreferrer"&gt;https://pc.0g.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Models Catalogue:&lt;/strong&gt; &lt;a href="https://pc.0g.ai/models" rel="noopener noreferrer"&gt;https://pc.0g.ai/models&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your generated API key will look similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sk-xxxxxxxxxxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 3 - Configure OpenCode
&lt;/h2&gt;

&lt;p&gt;Open your configuration file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.config/opencode/opencode.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the contents with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"$schema"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://opencode.ai/config.json"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"provider"&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;"0g"&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;"npm"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@ai-sdk/openai-compatible"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"options"&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;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0G Router"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"baseURL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://router-api.0g.ai/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"apiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{env:OG_API_KEY}"&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;"models"&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;"gpt-5.6-sol"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-5.6-sol"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GPT-5.6 Sol"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"limit"&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;"context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1048576&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"output"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;128000&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="nl"&gt;"deepseek-v4-pro"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek-v4-pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DeepSeek V4 Pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"limit"&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;"context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1048576&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"output"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;393216&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="nl"&gt;"glm-5.2"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"zai-org/GLM-5-FP8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GLM-5.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"limit"&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;"context"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1048576&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"output"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;131072&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;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;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0g/gpt-5.6-sol"&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;Save the file and exit your editor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 - Export Your API Key
&lt;/h2&gt;

&lt;p&gt;Export your key into your terminal session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OG_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your_0g_api_key_here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Launch OpenCode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;opencode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 5 - Switch Between Models
&lt;/h2&gt;

&lt;p&gt;Inside OpenCode run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be able to choose between:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;Long reasoning, planning, complex coding tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4 Pro&lt;/td&gt;
&lt;td&gt;Fast editing, large refactors, repositories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GLM-5.2&lt;/td&gt;
&lt;td&gt;General-purpose coding and analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Step 6 - Test Agentic Coding
&lt;/h2&gt;

&lt;p&gt;Give OpenCode a task that requires planning, file creation and execution.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a zero-dependency HTML/JavaScript Flappy Bird game inside &lt;code&gt;./flappy-bird&lt;/code&gt;. Launch a local preview and verify that it works.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OpenCode will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create the directory&lt;/li&gt;
&lt;li&gt;Generate the game&lt;/li&gt;
&lt;li&gt;Write the HTML, CSS and JavaScript&lt;/li&gt;
&lt;li&gt;Launch a preview server (when available)&lt;/li&gt;
&lt;li&gt;Verify the output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All inference requests are routed through the 0G Router.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OpenCode CLI
      │
      ▼
0G Router API
      │
      ▼
Decentralised GPU Compute
      │
      ▼
Model Execution
      │
      ▼
Tool Calls + Generated Code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because the Router follows the OpenAI API specification, most existing AI SDKs and tools work by simply changing the &lt;code&gt;baseURL&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Use 0G Router?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI-compatible API&lt;/strong&gt; — works with existing tooling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decentralised compute&lt;/strong&gt; — inference runs across the 0G Network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay with 0G credits&lt;/strong&gt; — use the credits in your 0G account to access powerful models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Large context windows&lt;/strong&gt; — models support up to 1M tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drop-in compatibility&lt;/strong&gt; — point existing OpenAI-compatible tools at the Router with minimal configuration.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;0G Console: &lt;a href="https://pc.0g.ai" rel="noopener noreferrer"&gt;https://pc.0g.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Models Catalogue: &lt;a href="https://pc.0g.ai/models" rel="noopener noreferrer"&gt;https://pc.0g.ai/models&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;0G Compute Documentation: &lt;a href="https://docs.0g.ai/concepts/compute" rel="noopener noreferrer"&gt;https://docs.0g.ai/concepts/compute&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;OpenCode Documentation: &lt;a href="https://opencode.ai" rel="noopener noreferrer"&gt;https://opencode.ai&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The best part about the 0G Router is that you don't have to learn a new API. If your application, SDK, or coding agent already supports the OpenAI API, switching to decentralised inference is often as simple as changing the &lt;code&gt;baseURL&lt;/code&gt; and supplying a 0G API key.&lt;/p&gt;

&lt;p&gt;That makes it easy to experiment with flagship open-weight models like &lt;strong&gt;GPT-5.6 Sol&lt;/strong&gt;, &lt;strong&gt;DeepSeek V4 Pro&lt;/strong&gt;, and &lt;strong&gt;GLM-5.2&lt;/strong&gt; while taking advantage of decentralised GPU infrastructure.&lt;/p&gt;

&lt;p&gt;Have you tried OpenCode with the 0G Router yet? If so, I'd love to hear what you're building in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>0g</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>Why AI agents still can't buy anything yet</title>
      <dc:creator>Emmanuel Haankwenda</dc:creator>
      <pubDate>Thu, 07 May 2026 14:25:14 +0000</pubDate>
      <link>https://dev.to/emmanuel39hanks/why-ai-agents-still-cant-buy-anything-yet-2143</link>
      <guid>https://dev.to/emmanuel39hanks/why-ai-agents-still-cant-buy-anything-yet-2143</guid>
      <description>&lt;p&gt;&lt;em&gt;A working tour of x402, OKX APP, ERC-3009, TEE-backed inference, and the missing pieces of the autonomous internet stack.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most "AI agents" today are really just chatbots with tools.&lt;/p&gt;

&lt;p&gt;The moment an agent needs to independently spend money, access paid resources, prove identity, or justify a decision, the current web stack starts breaking down.&lt;/p&gt;

&lt;p&gt;Every payment, identity, and trust primitive on the modern web was designed for a human clicking a button in a browser.&lt;/p&gt;

&lt;p&gt;Agents were never part of the model.&lt;/p&gt;

&lt;p&gt;I've been building AI agents for the last six months and this became obvious very quickly: most agents cannot actually do useful things on the open internet without human infrastructure glued around them.&lt;/p&gt;

&lt;p&gt;They cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pay for APIs autonomously&lt;/li&gt;
&lt;li&gt;prove they're allowed to access a resource&lt;/li&gt;
&lt;li&gt;get billed dynamically at request time&lt;/li&gt;
&lt;li&gt;carry portable identity and reputation&lt;/li&gt;
&lt;li&gt;prove what decision they made and why&lt;/li&gt;
&lt;li&gt;protect sensitive business logic from the model provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem is structural.&lt;/p&gt;

&lt;p&gt;The good news is that the missing pieces are finally starting to ship publicly, and multiple teams are independently building compatible parts of the stack.&lt;/p&gt;

&lt;p&gt;Coinbase is shipping x402.&lt;br&gt;
OKX is shipping APP.&lt;br&gt;
0G Labs is shipping verifiable storage and TEE-backed inference.&lt;br&gt;
Anthropic pushed the MCP ecosystem into the mainstream.&lt;/p&gt;

&lt;p&gt;For the first time, these systems are starting to compose into something real.&lt;/p&gt;

&lt;p&gt;This post walks through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what agents are missing today&lt;/li&gt;
&lt;li&gt;the protocols filling those gaps&lt;/li&gt;
&lt;li&gt;why verifiable receipts and TEE-backed decisions matter&lt;/li&gt;
&lt;li&gt;a real implementation stitching all of it together&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;
  
  
  What a real agent actually needs
&lt;/h1&gt;

&lt;p&gt;Strip the phrase "AI agent" down to fundamentals and the requirements become pretty obvious.&lt;/p&gt;

&lt;p&gt;An autonomous system needs:&lt;/p&gt;
&lt;h2&gt;
  
  
  1. A wallet
&lt;/h2&gt;

&lt;p&gt;Real money it can move programmatically.&lt;/p&gt;

&lt;p&gt;Not a Stripe customer ID.&lt;br&gt;
Not a human-owned credit card.&lt;br&gt;
Not a manually refreshed API key.&lt;/p&gt;

&lt;p&gt;A real wallet.&lt;/p&gt;

&lt;p&gt;Ideally gasless, because forcing every agent to also manage ETH for transaction fees becomes operationally painful very quickly.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Identity
&lt;/h2&gt;

&lt;p&gt;Other systems need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who this agent is&lt;/li&gt;
&lt;li&gt;who operates it&lt;/li&gt;
&lt;li&gt;what permissions it has&lt;/li&gt;
&lt;li&gt;what reputation it carries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without identity, an agent calling your API is just another anonymous request.&lt;/p&gt;

&lt;p&gt;You cannot apply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;trust scoring&lt;/li&gt;
&lt;li&gt;rate limiting&lt;/li&gt;
&lt;li&gt;fraud heuristics&lt;/li&gt;
&lt;li&gt;permissions&lt;/li&gt;
&lt;li&gt;reputation systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;at the agent level.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Dynamic billing at the HTTP layer
&lt;/h2&gt;

&lt;p&gt;The modern web flow looks like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;request&lt;br&gt;
→ blocked&lt;br&gt;
→ create account&lt;br&gt;
→ verify email&lt;br&gt;
→ add payment method&lt;br&gt;
→ generate API key&lt;br&gt;
→ retry request&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That flow completely breaks for autonomous software.&lt;/p&gt;

&lt;p&gt;Agents need something closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;request resource
→ server says "this costs $0.01"
→ agent evaluates
→ pays
→ receives resource
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No signup flow.&lt;br&gt;
No dashboard.&lt;br&gt;
No out-of-band billing.&lt;/p&gt;

&lt;p&gt;The payment negotiation has to happen directly inside the request/response cycle.&lt;/p&gt;


&lt;h2&gt;
  
  
  4. Portable memory
&lt;/h2&gt;

&lt;p&gt;Most agent frameworks today store memory in vector databases controlled by the platform itself.&lt;/p&gt;

&lt;p&gt;That creates weird ownership problems.&lt;/p&gt;

&lt;p&gt;The agent cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move its memory somewhere else&lt;/li&gt;
&lt;li&gt;prove what it knows&lt;/li&gt;
&lt;li&gt;selectively reveal memory&lt;/li&gt;
&lt;li&gt;keep sensitive memory private from the model provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are not futuristic requirements.&lt;/p&gt;

&lt;p&gt;They're basic ownership guarantees we'd expect from any serious software system.&lt;/p&gt;


&lt;h2&gt;
  
  
  5. Decisions it can defend
&lt;/h2&gt;

&lt;p&gt;This is the part almost nobody talks about.&lt;/p&gt;

&lt;p&gt;If an agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;approves a refund&lt;/li&gt;
&lt;li&gt;blocks a payment&lt;/li&gt;
&lt;li&gt;rejects a customer&lt;/li&gt;
&lt;li&gt;accepts a lead&lt;/li&gt;
&lt;li&gt;spends money&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;somebody downstream is eventually going to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why did the agent make that decision?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right now, most systems cannot answer that.&lt;/p&gt;

&lt;p&gt;"The LLM decided" is not a serious audit trail.&lt;/p&gt;


&lt;h1&gt;
  
  
  The protocols filling the gap
&lt;/h1&gt;

&lt;p&gt;None of this exists as one unified stack yet.&lt;/p&gt;

&lt;p&gt;But almost every missing primitive now has at least one working implementation.&lt;/p&gt;


&lt;h1&gt;
  
  
  x402: pay on resource access
&lt;/h1&gt;

&lt;p&gt;The HTTP 402 status code ("Payment Required") has existed since 1989 and basically sat unused for decades.&lt;/p&gt;

&lt;p&gt;Coinbase revived it in 2025 as x402.&lt;/p&gt;

&lt;p&gt;The flow is simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
  ↓
GET /resource
  ↓
402 Payment Required
  ↓
sign payment authorization
  ↓
payment submitted
  ↓
resource unlocked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server responds with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the price&lt;/li&gt;
&lt;li&gt;accepted asset&lt;/li&gt;
&lt;li&gt;recipient address&lt;/li&gt;
&lt;li&gt;network&lt;/li&gt;
&lt;li&gt;settlement requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent signs a payment authorization and submits it back.&lt;/p&gt;

&lt;p&gt;The resource unlocks immediately.&lt;/p&gt;

&lt;p&gt;No signup flow.&lt;br&gt;
No API key generation.&lt;br&gt;
No human interaction.&lt;/p&gt;

&lt;p&gt;Cloudflare shipped a version of this model for AI crawlers under their "pay per crawl" work.&lt;/p&gt;

&lt;p&gt;Smaller services are now exposing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;paid APIs&lt;/li&gt;
&lt;li&gt;oracle endpoints&lt;/li&gt;
&lt;li&gt;downloadable assets&lt;/li&gt;
&lt;li&gt;inference endpoints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;through x402-compatible paywalls.&lt;/p&gt;


&lt;h1&gt;
  
  
  ERC-3009: the gasless payment primitive underneath it
&lt;/h1&gt;

&lt;p&gt;Both x402 and OKX APP rely heavily on ERC-3009.&lt;/p&gt;

&lt;p&gt;ERC-3009 is the signing standard underneath most gasless USDC payments.&lt;/p&gt;

&lt;p&gt;Instead of sending a transaction directly on-chain, the agent signs a permission slip saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Allow up to $0.01 USDC to move from my wallet to this merchant before this deadline."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another system then submits the transaction and pays the gas fee for the agent.&lt;/p&gt;

&lt;p&gt;This matters because it removes the requirement for agents to hold ETH.&lt;/p&gt;

&lt;p&gt;The agent only needs USDC.&lt;/p&gt;

&lt;p&gt;That's a surprisingly important usability improvement.&lt;/p&gt;


&lt;h1&gt;
  
  
  OKX APP: extending the x402 model
&lt;/h1&gt;

&lt;p&gt;OKX shipped their own protocol variant called APP (Agent Payment Protocol).&lt;/p&gt;

&lt;p&gt;At the wire level, APP is extremely similar to x402:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;same EIP-712 typed signatures&lt;/li&gt;
&lt;li&gt;same ERC-3009 settlement model&lt;/li&gt;
&lt;li&gt;same request/response payment flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But APP adds some important extensions.&lt;/p&gt;
&lt;h2&gt;
  
  
  Deferred aggregation
&lt;/h2&gt;

&lt;p&gt;Instead of settling every tiny payment individually on-chain, agents can batch many small payments together.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;100 API calls
→ 100 off-chain authorizations
→ 1 on-chain settlement
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This becomes important for high-frequency agent workloads.&lt;/p&gt;




&lt;h2&gt;
  
  
  Session-based billing
&lt;/h2&gt;

&lt;p&gt;APP also introduces the idea of prepaid session budgets.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent prepays $5
→ server deducts usage over time
→ long-running workflow completes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is important for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;video generation&lt;/li&gt;
&lt;li&gt;deep research&lt;/li&gt;
&lt;li&gt;multi-step workflows&lt;/li&gt;
&lt;li&gt;autonomous browsing sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The specs exist today.&lt;br&gt;
SDK support is still early.&lt;/p&gt;


&lt;h1&gt;
  
  
  Agent identity: ERC-8004
&lt;/h1&gt;

&lt;p&gt;Identity for agents is still immature.&lt;/p&gt;

&lt;p&gt;ERC-8004 is one early attempt at solving this.&lt;/p&gt;

&lt;p&gt;The basic idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agents get on-chain identities&lt;/li&gt;
&lt;li&gt;identities contain claims&lt;/li&gt;
&lt;li&gt;other systems can inspect those claims before interacting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An agent could eventually advertise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;operator identity&lt;/li&gt;
&lt;li&gt;capabilities&lt;/li&gt;
&lt;li&gt;permissions&lt;/li&gt;
&lt;li&gt;reputation&lt;/li&gt;
&lt;li&gt;certifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Very little production infrastructure depends on ERC-8004 today.&lt;/p&gt;

&lt;p&gt;But the underlying problem it tries to solve is real.&lt;/p&gt;


&lt;h1&gt;
  
  
  The real missing layer: verifiability
&lt;/h1&gt;

&lt;p&gt;Payments alone are not enough.&lt;/p&gt;

&lt;p&gt;You also need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;verifiable receipts&lt;/li&gt;
&lt;li&gt;verifiable decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where the 0G stack becomes interesting.&lt;/p&gt;


&lt;h1&gt;
  
  
  Verifiable receipts with 0G Storage + 0G Chain
&lt;/h1&gt;

&lt;p&gt;Suppose an agent buys data for $0.10.&lt;/p&gt;

&lt;p&gt;A normal payment system gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;transaction hash&lt;/li&gt;
&lt;li&gt;payment confirmation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But that is not enough.&lt;/p&gt;

&lt;p&gt;You also want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the exact payload that was served&lt;/li&gt;
&lt;li&gt;proof that it wasn't modified later&lt;/li&gt;
&lt;li&gt;a permanent cryptographic reference to it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;0G Storage handles the content layer.&lt;/p&gt;

&lt;p&gt;The receipt or payload gets uploaded into decentralized content-addressed storage.&lt;/p&gt;

&lt;p&gt;That returns a root hash.&lt;/p&gt;

&lt;p&gt;The root hash then gets anchored onto 0G Chain.&lt;/p&gt;

&lt;p&gt;Now the transaction has a 3-layer proof trail:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Base transaction
   → proves money moved

2. 0G Storage receipt
   → proves what content was served

3. 0G Chain anchor
   → proves the content was not modified later
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A third party can independently verify every step.&lt;/p&gt;

&lt;p&gt;Nobody has to trust the merchant.&lt;/p&gt;




&lt;h1&gt;
  
  
  Verifiable decisions with TEE-backed inference
&lt;/h1&gt;

&lt;p&gt;This is the part I think people are underestimating.&lt;/p&gt;

&lt;p&gt;Agents increasingly make policy decisions.&lt;/p&gt;

&lt;p&gt;Questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;should this refund be approved?&lt;/li&gt;
&lt;li&gt;does this request violate policy?&lt;/li&gt;
&lt;li&gt;should this payment be blocked?&lt;/li&gt;
&lt;li&gt;is this customer risky?&lt;/li&gt;
&lt;li&gt;should this lead be accepted?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, those prompts usually go directly to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Anthropic&lt;/li&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;another centralized inference provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which means the provider can theoretically see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;refund policies&lt;/li&gt;
&lt;li&gt;fraud heuristics&lt;/li&gt;
&lt;li&gt;pricing rules&lt;/li&gt;
&lt;li&gt;sensitive business logic&lt;/li&gt;
&lt;li&gt;internal compliance workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That becomes a serious issue very quickly.&lt;/p&gt;




&lt;h1&gt;
  
  
  What a TEE actually changes
&lt;/h1&gt;

&lt;p&gt;0G Compute runs inference inside a TEE (Trusted Execution Environment).&lt;/p&gt;

&lt;p&gt;Think of a TEE as hardware-isolated secure memory.&lt;/p&gt;

&lt;p&gt;The workload runs inside an encrypted enclave protected by the CPU itself.&lt;/p&gt;

&lt;p&gt;Even the infrastructure operator cannot inspect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the prompt&lt;/li&gt;
&lt;li&gt;the model input&lt;/li&gt;
&lt;li&gt;the output&lt;/li&gt;
&lt;li&gt;the business logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system then returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the result&lt;/li&gt;
&lt;li&gt;a hardware attestation proving what code actually ran&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates something extremely important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;decisions agents can defend cryptographically&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;merchant defines refund policy
→ agent evaluates refund request inside TEE
→ signed decision returned
→ merchant policy never leaks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a $0.10 ebook purchase, this is probably overkill.&lt;/p&gt;

&lt;p&gt;For:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;healthcare data&lt;/li&gt;
&lt;li&gt;financial systems&lt;/li&gt;
&lt;li&gt;enterprise automation&lt;/li&gt;
&lt;li&gt;compliance workflows&lt;/li&gt;
&lt;li&gt;trading systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;it becomes very important.&lt;/p&gt;




&lt;h1&gt;
  
  
  A real implementation: Coal
&lt;/h1&gt;

&lt;p&gt;Over the last few months I've been building Coal.&lt;/p&gt;

&lt;p&gt;Coal is a payment platform for autonomous software running on Base + 0G.&lt;/p&gt;

&lt;p&gt;Instead of talking abstractly about the stack, here's the concrete implementation.&lt;/p&gt;

&lt;p&gt;Coal does five things.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Hosts an agent-discoverable merchant catalog
&lt;/h2&gt;

&lt;p&gt;Merchant catalogs live on 0G Storage.&lt;/p&gt;

&lt;p&gt;Agents can discover products without:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;dashboards&lt;/li&gt;
&lt;li&gt;centralized marketplaces&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Accepts both x402 and OKX APP
&lt;/h2&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%2Fu6k0dez2habdh5gzwaxd.jpeg" 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%2Fu6k0dez2habdh5gzwaxd.jpeg" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same &lt;code&gt;/verify&lt;/code&gt; endpoint accepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;x402-v1&lt;/li&gt;
&lt;li&gt;app-v2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server advertises supported protocols and the agent picks whichever it supports.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Settles via Base USDC
&lt;/h2&gt;

&lt;p&gt;Payments settle using USDC on Base.&lt;/p&gt;

&lt;p&gt;The operator wallet relays transactions so agents never need ETH.&lt;/p&gt;

&lt;p&gt;Typical confirmation time is around 2 seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Anchors receipts on 0G
&lt;/h2&gt;

&lt;p&gt;Every payment receipt gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uploaded to 0G Storage&lt;/li&gt;
&lt;li&gt;anchored onto 0G Chain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anyone can independently verify the proof trail.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Runs policy decisions inside TEEs
&lt;/h2&gt;

&lt;p&gt;Refund checks, quotas, permissions, and policy evaluations run through 0G Compute Sealed Inference.&lt;/p&gt;

&lt;p&gt;Merchant rules stay private from the model provider.&lt;/p&gt;




&lt;h1&gt;
  
  
  A concrete example
&lt;/h1&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://agent.usecoal.xyz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ask the embedded agent:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Buy me the 0G Builder's Cheatsheet"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The flow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;discover_merchants
→ find merchant catalog
→ pay_merchant
→ sign ERC-3009 authorization
→ facilitator submits transaction
→ receipt anchored on 0G
→ PDF unlocks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The payment is real USDC on Base.&lt;/p&gt;

&lt;p&gt;No human clicks anything.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's still broken
&lt;/h1&gt;

&lt;p&gt;The stack works today.&lt;/p&gt;

&lt;p&gt;But a lot is still rough.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discovery is fragmented
&lt;/h2&gt;

&lt;p&gt;There is no "Google for agent-payable services" yet.&lt;/p&gt;

&lt;p&gt;Current discovery options are fragmented across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ERC-8004 registries&lt;/li&gt;
&lt;li&gt;MCP marketplaces&lt;/li&gt;
&lt;li&gt;project-specific catalogs&lt;/li&gt;
&lt;li&gt;Coinbase Bazaar&lt;/li&gt;
&lt;li&gt;custom integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents still mostly rely on manually configured endpoints.&lt;/p&gt;

&lt;p&gt;That does not scale long term.&lt;/p&gt;




&lt;h2&gt;
  
  
  Identity is immature
&lt;/h2&gt;

&lt;p&gt;Agent reputation and trust scoring barely exist today.&lt;/p&gt;

&lt;p&gt;A malicious agent and a high-quality agent can often look identical at the protocol layer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cross-chain UX is messy
&lt;/h2&gt;

&lt;p&gt;Different payment ecosystems prefer different chains.&lt;/p&gt;

&lt;p&gt;Agents increasingly need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multiple wallets&lt;/li&gt;
&lt;li&gt;multiple balances&lt;/li&gt;
&lt;li&gt;cross-chain settlement paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;which reintroduces operational complexity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Async billing is still early
&lt;/h2&gt;

&lt;p&gt;The request/response model works well for instant resources.&lt;/p&gt;

&lt;p&gt;It breaks down for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;long-running research&lt;/li&gt;
&lt;li&gt;asynchronous workflows&lt;/li&gt;
&lt;li&gt;large generation jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Session-based billing exists in specs but is still early in production SDKs.&lt;/p&gt;




&lt;h2&gt;
  
  
  TEE tooling is rough
&lt;/h2&gt;

&lt;p&gt;The primitives are good.&lt;/p&gt;

&lt;p&gt;The developer experience still feels early.&lt;/p&gt;

&lt;p&gt;Attestation verification from TypeScript applications is still awkward and under-tooled.&lt;/p&gt;

&lt;p&gt;It reminds me a lot of early Web3 tooling around 2018.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why this matters
&lt;/h1&gt;

&lt;p&gt;I think the important shift here is conceptual.&lt;/p&gt;

&lt;p&gt;For years, "AI agents" mostly meant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompts&lt;/li&gt;
&lt;li&gt;workflows&lt;/li&gt;
&lt;li&gt;tool calling&lt;/li&gt;
&lt;li&gt;orchestration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we're starting to see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;autonomous payments&lt;/li&gt;
&lt;li&gt;machine-native identity&lt;/li&gt;
&lt;li&gt;programmable commerce&lt;/li&gt;
&lt;li&gt;verifiable decisions&lt;/li&gt;
&lt;li&gt;cryptographic receipts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The infrastructure layer is finally catching up.&lt;/p&gt;




&lt;h1&gt;
  
  
  Try it yourself
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Live agent sandbox
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;https://agent.usecoal.xyz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs Claude/Qwen with an embedded wallet capable of autonomous payments.&lt;/p&gt;




&lt;h2&gt;
  
  
  MCP server
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.emmanuel39hanks/coal" rel="noopener noreferrer"&gt;Official MCP Registry&lt;/a&gt;&lt;br&gt;
&lt;a href="https://smithery.ai/servers/coal/coal-payments" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;https://mcp.usecoal.xyz/api/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;13 tools for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;discovery&lt;/li&gt;
&lt;li&gt;payment&lt;/li&gt;
&lt;li&gt;verification&lt;/li&gt;
&lt;li&gt;downloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multi-tenant by design.&lt;br&gt;
Every user passes their own wallet key.&lt;/p&gt;




&lt;h2&gt;
  
  
  Source code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/emmanuel39hanks/coal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MIT licensed.&lt;/p&gt;

&lt;p&gt;Includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;x402 facilitator&lt;/li&gt;
&lt;li&gt;APP v2 settlement flow&lt;/li&gt;
&lt;li&gt;receipt anchoring&lt;/li&gt;
&lt;li&gt;React SDK&lt;/li&gt;
&lt;li&gt;MCP server&lt;/li&gt;
&lt;li&gt;Base USDC integration&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;The autonomous internet needs more visible reference implementations and fewer speculative threads.&lt;/p&gt;

&lt;p&gt;Hopefully this helps move the first category forward.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>infrastructure</category>
      <category>web3</category>
    </item>
    <item>
      <title>Quick one for the marketing brains, how important is it really to know every email event during a campaign’s lifespan? Opens, clicks, forwards, replies, unsubscribes, all of it. Do you just need the key insights, or do you prefer full surveillance mode?</title>
      <dc:creator>Emmanuel Haankwenda</dc:creator>
      <pubDate>Wed, 28 May 2025 18:23:08 +0000</pubDate>
      <link>https://dev.to/emmanuel39hanks/quick-one-for-the-marketing-brains-how-important-is-it-really-to-know-every-email-event-during-a-50hl</link>
      <guid>https://dev.to/emmanuel39hanks/quick-one-for-the-marketing-brains-how-important-is-it-really-to-know-every-email-event-during-a-50hl</guid>
      <description></description>
      <category>marketing</category>
      <category>analytics</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
