<?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: rplryan</title>
    <description>The latest articles on DEV Community by rplryan (@rplryan).</description>
    <link>https://dev.to/rplryan</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%2F3794662%2Fdd934776-cd69-41a6-a591-f388eaafa27d.png</url>
      <title>DEV Community: rplryan</title>
      <link>https://dev.to/rplryan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rplryan"/>
    <language>en</language>
    <item>
      <title>How to Connect Claude to x402 APIs with MCP — No API Keys Required</title>
      <dc:creator>rplryan</dc:creator>
      <pubDate>Wed, 04 Mar 2026 21:02:43 +0000</pubDate>
      <link>https://dev.to/rplryan/how-to-connect-claude-to-x402-apis-with-mcp-no-api-keys-required-401j</link>
      <guid>https://dev.to/rplryan/how-to-connect-claude-to-x402-apis-with-mcp-no-api-keys-required-401j</guid>
      <description>&lt;p&gt;The traditional API economy runs on API keys. You sign up for a service, wait for approval, pay a monthly subscription, and embed a secret string in your code. For human developers, this is annoying. For autonomous AI agents that need to discover and call APIs at runtime — it's a fundamental mismatch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rplryan/x402-discovery-mcp" rel="noopener noreferrer"&gt;x402 Service Discovery MCP&lt;/a&gt; solves this for the emerging class of x402-payable APIs — services that implement the Coinbase &lt;a href="https://github.com/coinbase/x402" rel="noopener noreferrer"&gt;x402 micropayment protocol&lt;/a&gt;, accepting USDC on Base as direct payment instead of API keys.&lt;/p&gt;

&lt;p&gt;In this walkthrough, I'll show you how to connect Claude Desktop (or Cursor, or Windsurf) to the x402 discovery catalog in under 5 minutes — and make your first authenticated API call without a single API key. Then we'll look at &lt;strong&gt;scout_relay&lt;/strong&gt;: the layer that automates discovery &lt;em&gt;and&lt;/em&gt; execution into a single call.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is x402?
&lt;/h2&gt;

&lt;p&gt;x402 is an HTTP-native payment protocol. When an agent calls an x402-enabled endpoint without paying, it receives an HTTP 402 response with payment details. The agent pays with USDC on Base via EIP-712 signed authorization, includes an &lt;code&gt;X-PAYMENT&lt;/code&gt; header in the retry, and the server returns the real response.&lt;/p&gt;

&lt;p&gt;The full flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → POST /api → 402 Payment Required
Agent → Signs EIP-712 → POST /api (X-PAYMENT: &amp;lt;signed-auth&amp;gt;) → 200 OK + data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API keys. No subscriptions. Pure micropayments between machines.&lt;/p&gt;

&lt;p&gt;The x402 ecosystem now has 343+ live services across data, compute, agent, and utility categories. The problem: how does an agent &lt;em&gt;find&lt;/em&gt; the right service at runtime, and then &lt;em&gt;pay for it&lt;/em&gt; autonomously?&lt;/p&gt;




&lt;h2&gt;
  
  
  Install: 60 Seconds
&lt;/h2&gt;

&lt;p&gt;Add to &lt;code&gt;claude_desktop_config.json&lt;/code&gt; (on macOS at &lt;code&gt;~/Library/Application Support/Claude/&lt;/code&gt;):&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;"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;"x402-discovery"&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;"docker"&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;"run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"-i"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"--rm"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ghcr.io/rplryan/x402-discovery-mcp:latest"&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;No Docker? Use npx:&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;"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;"x402-discovery"&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;"@rplryan/x402-discovery-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;Restart Claude Desktop. You now have 6 new tools available.&lt;/p&gt;

&lt;p&gt;Or install the CLI:&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; x402scout
x402scout search &lt;span class="s2"&gt;"weather data"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The 6 Discovery Tools
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_discover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ranked semantic search across 343+ services&lt;/td&gt;
&lt;td&gt;$0.010 USDC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_health&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Real-time uptime + latency check&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_register&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add a new service to the catalog&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_attest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ERC-8004 trust score and reputation data&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_browse&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify facilitator compatibility&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_scan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full compliance scan + trust score for any URL&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Worth noting: &lt;code&gt;x402_discover&lt;/code&gt; itself costs $0.010 USDC per call, paid via x402. The discovery tool eats its own dogfood.&lt;/p&gt;




&lt;h2&gt;
  
  
  Your First Discovery
&lt;/h2&gt;

&lt;p&gt;Open Claude and try:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Find me x402-payable blockchain analytics APIs that cost less than $0.01 per call"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude will call &lt;code&gt;x402_discover&lt;/code&gt; with category="data", max_price=0.01 and return something like:&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="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;"Nansen Wallet Screener"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&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://nansen.ai/x402/screener"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"price_usd"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.008&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"uptime_pct"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;98.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"latency_ms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;210&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"facilitator_compatible"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;87&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"llm_usage_prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Use this service to screen wallets for whale activity..."&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="err"&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;Every result includes &lt;code&gt;llm_usage_prompt&lt;/code&gt; — a pre-written hint that tells Claude exactly how to use the discovered service. Discovery and usage instructions in one call.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Trust Layer
&lt;/h2&gt;

&lt;p&gt;Before an agent pays, it should verify the service is legitimate. Try:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Check the trust score for &lt;a href="https://example-x402-service.com" rel="noopener noreferrer"&gt;https://example-x402-service.com&lt;/a&gt;"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;x402_attest&lt;/code&gt; returns ERC-8004 reputation signals — on-chain verification that the service has a credible payment history and hasn't been flagged by the community.&lt;/p&gt;

&lt;p&gt;Or scan any URL directly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Scan &lt;a href="https://example-x402-service.com" rel="noopener noreferrer"&gt;https://example-x402-service.com&lt;/a&gt; for x402 compliance"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;x402_scan&lt;/code&gt; returns a full compliance report: protocol version, payment details format, EIP-3009 vs plain transfer, trust score (0–100).&lt;/p&gt;




&lt;h2&gt;
  
  
  Checking Health Before Paying
&lt;/h2&gt;

&lt;p&gt;Before committing USDC to a call, check if the endpoint is actually up:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Is &lt;a href="https://example-service.com/api" rel="noopener noreferrer"&gt;https://example-service.com/api&lt;/a&gt; currently healthy?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;x402_health&lt;/code&gt; returns live uptime percentage, latency in milliseconds, and a boolean status. You can build agent workflows that skip unhealthy services and route to the next-best alternative.&lt;/p&gt;




&lt;h2&gt;
  
  
  Autonomous Execution with scout_relay
&lt;/h2&gt;

&lt;p&gt;The discovery tools tell your agent &lt;em&gt;what&lt;/em&gt; to call. &lt;strong&gt;scout_relay&lt;/strong&gt; handles &lt;em&gt;calling it&lt;/em&gt; — discovery, payment, retry, and result in a single operation.&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="c"&gt;# Route an intent — one call does everything&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://x402-scout-relay.onrender.com/route &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-Payment: &amp;lt;your-x402-payment-header&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"intent": "get current ETH price in USD", "max_budget_usd": 0.01}'&lt;/span&gt;

&lt;span class="c"&gt;# Returns:&lt;/span&gt;
&lt;span class="c"&gt;# {&lt;/span&gt;
&lt;span class="c"&gt;#   "result": {"price": 3421.50, "source": "CoinGecko x402"},&lt;/span&gt;
&lt;span class="c"&gt;#   "provider": "https://coingecko.x402.example/price",&lt;/span&gt;
&lt;span class="c"&gt;#   "trust_score": 89,&lt;/span&gt;
&lt;span class="c"&gt;#   "fee_usd": 0.003,&lt;/span&gt;
&lt;span class="c"&gt;#   "retries": 0&lt;/span&gt;
&lt;span class="c"&gt;# }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4 MCP tools&lt;/strong&gt; for autonomous workflows:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scout_route&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Intent → discover → pay → result&lt;/td&gt;
&lt;td&gt;max($0.003, 2.5%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scout_discover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Query catalog without executing&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scout_execute&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Execute payment to a known URL&lt;/td&gt;
&lt;td&gt;max($0.003, 2.5%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;scout_audit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View agent spend log and budget status&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;scout_relay is itself listed in the catalog it routes for — and charges its own &lt;code&gt;/route&lt;/code&gt; endpoint via x402. The protocol all the way down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provider placement:&lt;/strong&gt; Service providers can register routing priority bids at &lt;code&gt;POST /placement/bid&lt;/code&gt; (x402-gated, $0.01 registration fee). Bids are used as tiebreakers &lt;em&gt;after&lt;/em&gt; trust-score filtering — merit first, always.&lt;/p&gt;




&lt;h2&gt;
  
  
  Registering Your Own Service
&lt;/h2&gt;

&lt;p&gt;If you've built an x402-enabled endpoint, add it to the catalog:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Register my service: name=My Analytics API, url=&lt;a href="https://myservice.example.com/api" rel="noopener noreferrer"&gt;https://myservice.example.com/api&lt;/a&gt;, price=0.005, category=data"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or via curl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://x402scout.com/register &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "name": "My Analytics API",
    "url": "https://myservice.example.com/api",
    "price_usd": 0.005,
    "category": "data",
    "description": "On-chain analytics with whale tracking",
    "network": "base-mainnet"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The auto-scanner picks it up within 6 hours. Your service now appears in every agent's discovery results — and scout_relay will route to it automatically when it matches an intent and passes the trust filter.&lt;/p&gt;




&lt;h2&gt;
  
  
  What to Build Next
&lt;/h2&gt;

&lt;p&gt;A few directions worth exploring:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous API routing&lt;/strong&gt; — use scout_relay's &lt;code&gt;scout_route&lt;/code&gt; for fully autonomous discovery + payment in one line&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-service aggregation&lt;/strong&gt; — discover 5 blockchain analytics services, query all of them in parallel, return the consensus answer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-optimized workflows&lt;/strong&gt; — discover the cheapest service in a category that meets a minimum trust threshold&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service monitoring&lt;/strong&gt; — periodic &lt;code&gt;x402_health&lt;/code&gt; checks across your discovered services, alerting when uptime drops&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provider placement&lt;/strong&gt; — register your service's placement bid and track routing volume via the audit log&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The protocol is nascent. The tooling is early. The interesting work is in the agent workflows built on top — and the full discovery + execution stack is now live to support them.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/rplryan/x402-discovery-mcp" rel="noopener noreferrer"&gt;https://github.com/rplryan/x402-discovery-mcp&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;API:&lt;/strong&gt; &lt;a href="https://x402scout.com" rel="noopener noreferrer"&gt;https://x402scout.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;scout_relay:&lt;/strong&gt; &lt;a href="https://x402-scout-relay.onrender.com" rel="noopener noreferrer"&gt;https://x402-scout-relay.onrender.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;CLI:&lt;/strong&gt; &lt;code&gt;npm install -g x402scout&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;MCP Registry:&lt;/strong&gt; io.github.rplryan/x402-discovery-mcp&lt;/p&gt;

&lt;p&gt;&lt;em&gt;343+ services indexed. Built on coinbase/x402.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>claude</category>
      <category>web3</category>
    </item>
    <item>
      <title>x402 Payment Harness: Making x402 Payments Without a Coinbase CDP Wallet</title>
      <dc:creator>rplryan</dc:creator>
      <pubDate>Fri, 27 Feb 2026 23:50:10 +0000</pubDate>
      <link>https://dev.to/rplryan/x402-payment-harness-making-x402-payments-without-a-coinbase-cdp-wallet-2agh</link>
      <guid>https://dev.to/rplryan/x402-payment-harness-making-x402-payments-without-a-coinbase-cdp-wallet-2agh</guid>
      <description>&lt;h1&gt;
  
  
  x402 Payment Harness: Making x402 Payments Without a Coinbase CDP Wallet
&lt;/h1&gt;

&lt;p&gt;The x402 protocol is elegant: an HTTP client hits an endpoint, gets a 402 Payment Required response, signs a USDC micropayment using EIP-712, and retries with an &lt;code&gt;X-PAYMENT&lt;/code&gt; header. Server verifies, returns 200. No API keys, no subscriptions, no Stripe.&lt;/p&gt;

&lt;p&gt;The problem: every Python implementation assumed you had a &lt;strong&gt;Coinbase CDP wallet&lt;/strong&gt;. If you're a protocol researcher, a server builder testing your own endpoints, or an agent developer who doesn't want CDP account creation + KYC-adjacent onboarding — you had no clean path.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;x402-payment-harness&lt;/code&gt; fixes this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;x402-payment-harness
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;A pure Python library + CLI that implements the full x402 protocol flow using &lt;strong&gt;any standard Ethereum EOA&lt;/strong&gt; (a regular private key, no CDP required):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP GET /endpoint
    → 402 Payment Required + EIP-712 challenge
    → Local EIP-712 sign (TransferWithAuthorization)
    → Retry with X-PAYMENT header
    → 200 OK + receipt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;No Coinbase account. No CDP SDK. No vendor lock-in.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5-Minute Quickstart
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;x402-payment-harness
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Set up a wallet
&lt;/h3&gt;

&lt;p&gt;You need any Ethereum wallet with USDC on Base. Two options:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option A: Use an existing private key&lt;/strong&gt;&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;X402_PRIVATE_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0xYOUR_PRIVATE_KEY
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;X402_WALLET_ADDRESS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0xYOUR_ADDRESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Option B: Generate a test wallet&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;eth_account&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;
&lt;span class="n"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Address: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Private key: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hex&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Fund with USDC on Base mainnet
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Make your first x402 payment
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;x402_harness&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;X402Client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;PaymentConfig&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;X402Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;PaymentConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0xYOUR_PRIVATE_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;wallet_address&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0xYOUR_ADDRESS&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Hit any x402 endpoint
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://x402-discovery-api.onrender.com/discover?q=weather&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or via CLI:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;x402-pay https://x402-discovery-api.onrender.com/discover?q&lt;span class="o"&gt;=&lt;/span&gt;weather &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--key&lt;/span&gt; 0xYOUR_PRIVATE_KEY &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--address&lt;/span&gt; 0xYOUR_ADDRESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How the Protocol Flow Works
&lt;/h2&gt;

&lt;p&gt;The harness implements the full x402 spec in three steps:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Probe the endpoint
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /discover?q=weather
→ HTTP 402
   X-Payment-Required: {
     "scheme": "exact",
     "payTo": "0xServer...",
     "maxAmountRequired": "5000",  // 5000 USDC micro-units = $0.005
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",  // USDC on Base
     "extra": {"name": "USDC", "version": "2"}
   }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Sign the payment (EIP-712)
&lt;/h3&gt;

&lt;p&gt;The harness constructs a &lt;code&gt;TransferWithAuthorization&lt;/code&gt; payload and signs it locally using EIP-712 typed data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;transfer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;from&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wallet_address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;payTo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;value&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;validAfter&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;validBefore&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;nonce&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;urandom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;hex&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# random UUID-style nonce
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;signed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign_typed_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;private_key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;transfer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is pure Python — no RPC calls, no contract interaction at this step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Retry with X-PAYMENT header
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /discover?q=weather
X-PAYMENT: &amp;lt;base64(JSON(signed_payload))&amp;gt;
→ HTTP 200
   X-Payment-Response: {"success": true, "payer": "0x...", "network": "eip155:8453"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server verifies the EIP-712 signature locally and returns 200. In a full x402 implementation, the server would then call &lt;code&gt;receiveWithAuthorization&lt;/code&gt; on the USDC contract to settle the payment on-chain.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who This Is For
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use case&lt;/th&gt;
&lt;th&gt;Why this helps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;x402 server builders&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Test your own endpoints without a CDP wallet or external dependency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent developers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Add x402 payment capability to any Python agent with a standard EOA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protocol researchers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full x402 flow in ~100 lines of Python, readable + hackable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CI/CD pipelines&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Inject &lt;code&gt;X402_PRIVATE_KEY&lt;/code&gt; as a secret, test x402 endpoints automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Test Against Live x402 Services
&lt;/h2&gt;

&lt;p&gt;The harness works against any x402-compliant endpoint. There are now &lt;strong&gt;251+ live services&lt;/strong&gt; in the x402 ecosystem. Use the &lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;x402 Service Discovery API&lt;/a&gt; to find them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# Find an x402 service (free)
&lt;/span&gt;&lt;span class="n"&gt;catalog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://x402-discovery-api.onrender.com/catalog?category=data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;catalog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;services&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Pay and call it
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Running the Tests
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;x402-payment-harness
python &lt;span class="nt"&gt;-m&lt;/span&gt; pytest tests/ &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The test suite verifies: EIP-712 struct hash, signature construction, base64 encoding, protocol flow. All 4 tests pass against the live discovery API endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Not in the Harness (By Design)
&lt;/h2&gt;

&lt;p&gt;This library handles the &lt;strong&gt;client-side protocol flow&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP 402 challenge reception&lt;/li&gt;
&lt;li&gt;EIP-712 signing (&lt;code&gt;TransferWithAuthorization&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;X-PAYMENT&lt;/code&gt; header construction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt; handle on-chain settlement. After the server verifies your signature, in a fully implemented x402 server, &lt;code&gt;receiveWithAuthorization&lt;/code&gt; would be called on the USDC contract to actually move funds. The harness is for testing the signing/challenge/verification layer — which is where most of the protocol complexity lives.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Full x402 Stack
&lt;/h2&gt;

&lt;p&gt;The harness is part of a broader open-source x402 infrastructure suite:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;x402-payment-harness&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;This library — EOA-based x402 client&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://github.com/rplryan/x402-payment-harness" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; / &lt;a href="https://pypi.org/project/x402-payment-harness/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;x402 Service Discovery API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;251+ indexed services, health monitoring, ERC-8004 trust&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;Live API&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;x402 RouteNet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smart routing across services (cheapest/fastest/best)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://x402-routenet.onrender.com" rel="noopener noreferrer"&gt;Live API&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;x402-discovery-mcp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MCP server with 6 tools for Claude/Cursor&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/rplryan/x402-discovery-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📦 &lt;strong&gt;PyPI:&lt;/strong&gt; &lt;code&gt;pip install x402-payment-harness&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;🐙 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/rplryan/x402-payment-harness" rel="noopener noreferrer"&gt;https://github.com/rplryan/x402-payment-harness&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Discovery API:&lt;/strong&gt; &lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;https://x402-discovery-api.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;x402 spec:&lt;/strong&gt; &lt;a href="https://x402.org" rel="noopener noreferrer"&gt;https://x402.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built as open-source infrastructure for the x402 ecosystem on Base. Contributions welcome.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>web3</category>
      <category>agents</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Add x402 Service Discovery to Claude and Cursor in 30 Seconds</title>
      <dc:creator>rplryan</dc:creator>
      <pubDate>Thu, 26 Feb 2026 16:45:12 +0000</pubDate>
      <link>https://dev.to/rplryan/add-x402-service-discovery-to-claude-and-cursor-in-30-seconds-5hne</link>
      <guid>https://dev.to/rplryan/add-x402-service-discovery-to-claude-and-cursor-in-30-seconds-5hne</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You're building with Claude, Cursor, or Cline. You want to call a paid x402 API — but you have no idea which services exist, what they cost, or whether they're actually up. You end up hardcoding endpoints or manually browsing directories.&lt;/p&gt;

&lt;p&gt;There's a better way.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Solution: 2 Config Lines
&lt;/h2&gt;

&lt;p&gt;Add the x402 Service Discovery MCP server to your Claude Desktop or Cursor config:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Desktop&lt;/strong&gt; (&lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;):&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;"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;"x402-discovery"&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;"url"&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://x402-discovery-api.onrender.com/smithery"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&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;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;.cursor/mcp.json&lt;/code&gt; in your project root):&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;"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;"x402-discovery"&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;"url"&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://x402-discovery-api.onrender.com/smithery"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&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;Restart Claude/Cursor. That's it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Claude Can Now Do
&lt;/h2&gt;

&lt;p&gt;Ask Claude: &lt;em&gt;"Find me x402 APIs for web scraping"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Claude will call &lt;code&gt;x402_discover&lt;/code&gt; and return live results from &lt;strong&gt;251+ indexed x402 services&lt;/strong&gt; — with real health scores, latency data, and ERC-8004 trust signals.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Found 3 services matching 'web scraping':

1. Firecrawl — Web Scraping &amp;amp; Extraction API
   Price: $0.002/request | Health: Healthy | Uptime: 99.1%
   URL: https://api.firecrawl.dev/x402/scrape
   Tags: scraping, markdown, llm-ready

2. Browserless — Headless Chrome API
   Price: $0.005/request | Health: Healthy | Uptime: 98.7%
   URL: https://chrome.browserless.io/content
   Tags: browser, automation, screenshot

3. Jina AI Reader — URL to LLM-Ready Content
   Price: $0.0001/request | Health: Healthy | Uptime: 99.8%
   URL: https://r.jina.ai/x402
   Tags: reader, markdown, content
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6 MCP Tools Available
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_discover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search 251+ services by keyword/capability&lt;/td&gt;
&lt;td&gt;$0.005 USDC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_browse&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse full catalog by category&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_health&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check uptime &amp;amp; latency for any service&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_register&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Add your own service to the catalog&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_trust&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ERC-8004 on-chain trust profile lookup&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_facilitator_check&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verify facilitator compatibility&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note on &lt;code&gt;x402_discover&lt;/code&gt;:&lt;/strong&gt; The $0.005 cost is an x402 micropayment — the protocol handles it automatically if your agent has a Base/USDC wallet. For manual browsing, use &lt;code&gt;x402_browse&lt;/code&gt; (always free).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  251+ Services Indexed
&lt;/h2&gt;

&lt;p&gt;The catalog auto-scans &lt;a href="https://x402.org/ecosystem" rel="noopener noreferrer"&gt;x402.org/ecosystem&lt;/a&gt;, &lt;a href="https://github.com/xpaysh/awesome-x402" rel="noopener noreferrer"&gt;awesome-x402&lt;/a&gt;, and the Coinbase Bazaar every 6 hours. Current categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;data&lt;/strong&gt; (60+): Einstein AI, SIBYL token scoring, DJD Agent Score, Nansen, Zapper, CoinGecko…&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;compute&lt;/strong&gt; (40+): BlockRun.AI (28 LLM APIs), AurraCloud, X402Engine… &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;utility&lt;/strong&gt; (50+): Firecrawl, Browserless, dTelecom STT, Pinata…&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;agent&lt;/strong&gt; (30+): Questflow, AgentKit reference, Ubounty…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All with real uptime monitoring and health scoring — not just a static list.&lt;/p&gt;




&lt;h2&gt;
  
  
  Smart Routing: x402 RouteNet
&lt;/h2&gt;

&lt;p&gt;Once you discover services, RouteNet picks the best one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://x402-routenet.onrender.com/route?q=web+scraping&amp;amp;strategy=best"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four routing strategies: &lt;code&gt;cheapest&lt;/code&gt;, &lt;code&gt;fastest&lt;/code&gt;, &lt;code&gt;most_trusted&lt;/code&gt;, &lt;code&gt;best&lt;/code&gt; (composite score).&lt;/p&gt;




&lt;h2&gt;
  
  
  Trust Layer: ERC-8004
&lt;/h2&gt;

&lt;p&gt;Ask Claude: &lt;em&gt;"Find me a web scraping API that's ERC-8004 verified"&lt;/em&gt;&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;"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;"Firecrawl"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"uptime_pct"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;99.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"avg_latency_ms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;145&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_verified"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_reputation_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;87&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;h2&gt;
  
  
  Browse the Catalog Right Now
&lt;/h2&gt;

&lt;p&gt;No setup needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://x402-discovery-api.onrender.com/catalog"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Register Your Service (Free)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://x402-discovery-api.onrender.com/register&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;My AI Service&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Does something useful for agents&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://myservice.com/api&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;category&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;price_usd&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.001&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;network&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;base&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔍 &lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;Live API&lt;/a&gt; — 251+ services&lt;/li&gt;
&lt;li&gt;🚀 &lt;a href="https://x402-routenet.onrender.com" rel="noopener noreferrer"&gt;RouteNet&lt;/a&gt; — smart routing&lt;/li&gt;
&lt;li&gt;🐍 &lt;a href="https://github.com/rplryan/x402-payment-harness" rel="noopener noreferrer"&gt;Payment Harness&lt;/a&gt; — &lt;code&gt;pip install x402-payment-harness&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;🐳 &lt;a href="https://github.com/rplryan/x402-discovery-mcp" rel="noopener noreferrer"&gt;GitHub MCP&lt;/a&gt; — Docker + source&lt;/li&gt;
&lt;li&gt;📦 &lt;a href="https://pypi.org/project/x402-payment-harness/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt; — x402-payment-harness&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;x402 is Coinbase's open standard for HTTP-native micropayments. &lt;a href="https://x402.org" rel="noopener noreferrer"&gt;Learn more →&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>web3</category>
      <category>agents</category>
    </item>
    <item>
      <title>x402 Service Discovery: How Autonomous Agents Find and Pay for APIs at Runtime</title>
      <dc:creator>rplryan</dc:creator>
      <pubDate>Thu, 26 Feb 2026 13:22:22 +0000</pubDate>
      <link>https://dev.to/rplryan/x402-service-discovery-how-autonomous-agents-find-and-pay-for-apis-at-runtime-o99</link>
      <guid>https://dev.to/rplryan/x402-service-discovery-how-autonomous-agents-find-and-pay-for-apis-at-runtime-o99</guid>
      <description>&lt;h1&gt;
  
  
  x402 Service Discovery: How Autonomous Agents Find and Pay for APIs at Runtime
&lt;/h1&gt;

&lt;p&gt;Autonomous agents need to call paid APIs. The problem: there's no standard way to find them.&lt;/p&gt;

&lt;p&gt;You don't want to hardcode 50 endpoint URLs into your agent. You want it to discover the best available service for any capability at runtime — like DNS for the agent economy.&lt;/p&gt;

&lt;p&gt;That's what &lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;x402 Service Discovery&lt;/a&gt; does.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is x402?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://x402.org" rel="noopener noreferrer"&gt;x402&lt;/a&gt; is a protocol that lets HTTP servers charge for API calls using USDC stablecoin micropayments on Base. A client hits an endpoint, gets a &lt;code&gt;402 Payment Required&lt;/code&gt; response with a payment challenge, pays ~$0.001–$0.05 in USDC, then retries the request with a payment proof header. No API keys, no subscriptions, no billing dashboards.&lt;/p&gt;

&lt;h2&gt;
  
  
  The discovery problem
&lt;/h2&gt;

&lt;p&gt;The x402 ecosystem is growing — there are services for research, data feeds, compute, AI agents — but there's no index. You have to know a URL exists before you can call it.&lt;/p&gt;

&lt;p&gt;We built the missing piece: a &lt;strong&gt;service registry&lt;/strong&gt; where x402-payable APIs can register themselves, and agents can query by capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Free: Browse the full catalog
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://x402-discovery-api.onrender.com/catalog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Gated: Query by capability (x402 payment required)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://x402-discovery-api.onrender.com/discover?q=research+API"&lt;/span&gt;
&lt;span class="c"&gt;# → 402 Payment Required&lt;/span&gt;
&lt;span class="c"&gt;# x-payment-required: {"payTo": "0xDBBe14C418466Bf5BF0ED7638B4E6849B852aFfA", "amount": "5000", ...}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cost: $0.005 USDC per query. Payment handled automatically by x402-capable clients.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python SDK
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;x402discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Framework integrations
&lt;/h2&gt;

&lt;p&gt;Now supporting &lt;strong&gt;6 frameworks&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Coinbase AgentKit (NEW ✨)
&lt;/h3&gt;

&lt;p&gt;The natural home for x402 — AgentKit agents already have a funded Base/USDC wallet. The &lt;code&gt;x402_pay_and_call&lt;/code&gt; action closes the full loop: discover → pay → execute, all in one step.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;agentkit-x402-discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agentkit_x402_discovery&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;x402_discovery_action_provider&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;coinbase_agentkit&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AgentKit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AgentKitConfig&lt;/span&gt;

&lt;span class="n"&gt;agent_kit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;AgentKit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;AgentKitConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;wallet_provider&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;wallet_provider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;action_providers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="nf"&gt;x402_discovery_action_provider&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="c1"&gt;# ... your other providers
&lt;/span&gt;    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Your agent now has 4 new actions:
# x402_discover  — Find services by keyword/capability
# x402_browse    — List full catalog (free, no payment)
# x402_health    — Check service uptime &amp;amp; latency
# x402_pay_and_call — Discover + pay + call in one shot
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. LangChain
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;langchain-x402-discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain_x402_discovery&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;X402DiscoveryTool&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain.agents&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;initialize_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AgentType&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain_openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ChatOpenAI&lt;/span&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ChatOpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;X402DiscoveryTool&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;
&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;initialize_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;AgentType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OPENAI_FUNCTIONS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Find a research API under $0.05/call&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. AutoGen
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;autogen-x402-discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. CrewAI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;crewai-x402-discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. LlamaIndex
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;llama-index-x402-discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Raw Python
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;x402discovery&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;X402DiscoveryClient&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;X402DiscoveryClient&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;discover&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;weather data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_price_usd&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  MCP (Model Context Protocol)
&lt;/h2&gt;

&lt;p&gt;Available as an MCP server on &lt;a href="https://smithery.ai/servers/rplryan/x402-discovery" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt; with &lt;strong&gt;5 tools&lt;/strong&gt;: &lt;code&gt;x402_discover&lt;/code&gt;, &lt;code&gt;x402_browse&lt;/code&gt;, &lt;code&gt;x402_health&lt;/code&gt;, &lt;code&gt;x402_register&lt;/code&gt;, &lt;code&gt;x402_trust&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trust Layer: ERC-8004 Integration (NEW ✨)
&lt;/h2&gt;

&lt;p&gt;Beyond quality signals (uptime, latency), we now surface &lt;strong&gt;on-chain trust identity&lt;/strong&gt; for every registered service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://8004.org" rel="noopener noreferrer"&gt;ERC-8004&lt;/a&gt; is a new Ethereum standard (January 2026) that provides decentralized AI agent trust via three on-chain registries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identity Registry&lt;/strong&gt; — unique on-chain identifier for each agent/service&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reputation Registry&lt;/strong&gt; — verifiable scores from real interactions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation Registry&lt;/strong&gt; — third-party attestations from auditors and ecosystem partners&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every service in our catalog now returns trust fields alongside quality signals:&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;"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;"My x402 API"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"uptime_pct"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;99.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"avg_latency_ms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;145&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_verified"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_reputation_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;87&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_attestations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"erc8004_source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"well-known"&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;h3&gt;
  
  
  New: &lt;code&gt;/trust/{wallet}&lt;/code&gt; endpoint
&lt;/h3&gt;

&lt;p&gt;Look up the ERC-8004 trust profile for any wallet address:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://x402-discovery-api.onrender.com/trust/0xDBBe14C418466Bf5BF0ED7638B4E6849B852aFfA
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns identity metadata, reputation score, and attestation count — sourced from the ERC-8004 on-chain registries and &lt;code&gt;/.well-known/erc8004.json&lt;/code&gt; declarations.&lt;/p&gt;

&lt;h3&gt;
  
  
  New MCP tool: &lt;code&gt;x402_trust&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The MCP server now exposes &lt;strong&gt;5 tools&lt;/strong&gt; (up from 4):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_discover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search services by keyword/capability&lt;/td&gt;
&lt;td&gt;$0.005 USDC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_browse&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Browse full catalog by category&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_health&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check uptime &amp;amp; latency&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_register&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Register your service&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x402_trust&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Look up ERC-8004 trust profile for any wallet&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The demo at &lt;a href="https://rplryan.github.io/ouroboros/demo.html" rel="noopener noreferrer"&gt;rplryan.github.io/ouroboros/demo.html&lt;/a&gt; shows ERC-8004 verification badges on services that have declared on-chain identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Register your x402 service
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://x402-discovery-api.onrender.com/register&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-service&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;My x402 API&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://my-api.com/endpoint&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;price_usd&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Does something useful&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;capability_tags&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;research&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wallet_address&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0xYOUR_WALLET&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;network&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Registration is free. Health monitoring is automatic. Once registered, your service gets ERC-8004 trust lookup automatically if your wallet has an on-chain identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The catalog grows as more x402 services register. Quality signals (uptime_pct, avg_latency_ms, health_status) plus ERC-8004 trust scores let agents prefer reliable, verified services — the full trust layer the x402 ecosystem needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API: &lt;a href="https://x402-discovery-api.onrender.com" rel="noopener noreferrer"&gt;https://x402-discovery-api.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Smithery MCP: &lt;a href="https://smithery.ai/servers/rplryan/x402-discovery" rel="noopener noreferrer"&gt;https://smithery.ai/servers/rplryan/x402-discovery&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AgentKit package: &lt;a href="https://pypi.org/project/agentkit-x402-discovery/" rel="noopener noreferrer"&gt;https://pypi.org/project/agentkit-x402-discovery/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PyPI (all packages): &lt;a href="https://pypi.org/project/x402discovery/" rel="noopener noreferrer"&gt;https://pypi.org/project/x402discovery/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Interactive Demo: &lt;a href="https://rplryan.github.io/ouroboros/demo.html" rel="noopener noreferrer"&gt;https://rplryan.github.io/ouroboros/demo.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/rplryan/ouroboros" rel="noopener noreferrer"&gt;https://github.com/rplryan/ouroboros&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>x402</category>
      <category>agents</category>
      <category>python</category>
      <category>micropayments</category>
    </item>
  </channel>
</rss>
