<?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: Mr Hamlin</title>
    <description>The latest articles on DEV Community by Mr Hamlin (@mr_hamlin).</description>
    <link>https://dev.to/mr_hamlin</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%2F3815462%2F608d44c9-7dbf-4f19-bf5c-211f31b318fb.jpg</url>
      <title>DEV Community: Mr Hamlin</title>
      <link>https://dev.to/mr_hamlin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mr_hamlin"/>
    <language>en</language>
    <item>
      <title>BlackRock's CEO just called compute one of the next major markets. Here's why Spraay Protocol is already there.</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Wed, 27 May 2026 23:11:09 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/blackrocks-ceo-just-called-compute-one-of-the-next-major-markets-heres-why-spraay-protocol-is-2o7d</link>
      <guid>https://dev.to/mr_hamlin/blackrocks-ceo-just-called-compute-one-of-the-next-major-markets-heres-why-spraay-protocol-is-2o7d</guid>
      <description>&lt;h2&gt;
  
  
  The Signal No One Should Ignore
&lt;/h2&gt;

&lt;p&gt;When Larry Fink — the man who oversees $10 trillion in assets — tells the world that compute is becoming a financial instrument on par with equities and bonds, that's not speculation. That's a roadmap.&lt;/p&gt;

&lt;p&gt;And it's a roadmap we've been building on for months.&lt;/p&gt;

&lt;p&gt;At Spraay Protocol, we didn't wait for BlackRock to validate the thesis. We've been operating at the intersection of AI compute, machine-to-machine payments, and on-chain settlement since before the phrase "compute economy" entered the mainstream vocabulary. What Fink described as the future is, for us, already in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Everyone Sees but Nobody Has Solved
&lt;/h2&gt;

&lt;p&gt;Here's the reality of AI compute right now: it's bought in bulk, priced opaquely, walled behind platform lock-in, and completely disconnected from the financial rails that every other commodity trades on.&lt;/p&gt;

&lt;p&gt;If you're an AI agent — and there will be millions of them — you can't call up a cloud provider and negotiate a rate. You can't hedge against a price spike during peak inference demand. You don't have a treasury function. You don't have a credit line.&lt;/p&gt;

&lt;p&gt;You just pay whatever you're charged, whenever you're charged, and hope for the best.&lt;/p&gt;

&lt;p&gt;That's not how real markets work. Real markets have price discovery. Real markets have futures. Real markets have settlement infrastructure.&lt;/p&gt;

&lt;p&gt;Spraay is that infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Actually Built
&lt;/h2&gt;

&lt;p&gt;Spraay Protocol is a multi-chain x402 payment gateway — the protocol Coinbase introduced that lets machines pay other machines at the HTTP layer. Every API call, every inference request, every data retrieval can carry a payment natively. No invoices. No subscriptions. No human in the loop.&lt;/p&gt;

&lt;p&gt;We took that foundation and built what the compute economy actually needs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compute Futures and Escrow.&lt;/strong&gt; Prepaid credit systems with tiered pricing that let agents and developers lock in compute costs ahead of time. When inference demand spikes — and it will — our users have already secured their capacity at yesterday's price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;115 live paid endpoints across 33 categories.&lt;/strong&gt; This isn't a whitepaper. This is &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;production infrastructure&lt;/a&gt; spanning AI inference, on-chain data, oracles, messaging, storage, and more — all payable via x402 on 13+ chains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Batch payment infrastructure.&lt;/strong&gt; Enterprise-grade payroll and multi-recipient disbursement, because the compute economy doesn't run on one-to-one transactions. It runs on networks paying networks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An &lt;a href="https://smithery.ai/servers/Plagtech/Spraay-x402-mcp" rel="noopener noreferrer"&gt;MCP server with 120 tools&lt;/a&gt;.&lt;/strong&gt; Direct integration into the AI agent ecosystem — LangChain, CrewAI, AutoGPT, and beyond. Agents don't just use Spraay. They think with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why x402 Is the Payment Rail for Compute
&lt;/h2&gt;

&lt;p&gt;The genius of x402 is its simplicity. An HTTP 402 status code has always meant "payment required." Coinbase's protocol made it machine-readable. Spraay made it machine-complete.&lt;/p&gt;

&lt;p&gt;Think about what this means for the compute market Fink is describing. Every inference endpoint becomes a tradeable unit. Every API call carries provable settlement. Every agent has a native way to pay for the resources it consumes — across any chain, at any scale, without a single human approving a transaction.&lt;/p&gt;

&lt;p&gt;This isn't DeFi trying to reinvent finance. This is finance's existing logic — futures, escrow, settlement, clearing — implemented natively for the first commodity that was born digital.&lt;/p&gt;

&lt;p&gt;Compute didn't need to be tokenized. It needed to be &lt;em&gt;transactable&lt;/em&gt;. That's what we provide.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Landscape Is Moving Our Way
&lt;/h2&gt;

&lt;p&gt;Look at the signals beyond Fink's statement:&lt;/p&gt;

&lt;p&gt;AI agent frameworks are proliferating. Every major tech company is building autonomous systems that need to procure their own resources. The conversation has shifted from "will agents handle money?" to "how do we make agent payments safe and efficient?"&lt;/p&gt;

&lt;p&gt;The x402 ecosystem is growing. Coinbase shipped the protocol. Developers are building on it. And Spraay has been in the room since day one — not observing, but operating. We have the most comprehensive x402 gateway in production. That's not a claim we make lightly. Count the endpoints. Count the chains. Count the categories.&lt;/p&gt;

&lt;p&gt;On-chain settlement is being taken seriously by institutions that dismissed it two years ago. When the world's largest asset manager starts drawing parallels between compute and traditional commodities, the infrastructure question becomes urgent. Who settles these transactions? On what rails? With what guarantees?&lt;/p&gt;

&lt;p&gt;We have answers. Live ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;We're not slowing down. The Spraay roadmap is built around a simple conviction: the compute economy will be the largest machine-to-machine market in history, and it will need payment infrastructure that's as fast, programmable, and autonomous as the agents that run on it.&lt;/p&gt;

&lt;p&gt;That means deeper futures and hedging primitives. More chains. More endpoints. Tighter integrations into every major agent framework. And continued leadership in the x402 space — not because we want the title, but because we've earned it by building while others were still debating.&lt;/p&gt;

&lt;p&gt;The capital is coming. Fink said so. The infrastructure has to be ready.&lt;/p&gt;

&lt;p&gt;It already is.&lt;/p&gt;




&lt;p&gt;💧 &lt;strong&gt;Spraay Protocol&lt;/strong&gt; — Multi-chain x402 payment gateway and compute settlement infrastructure.&lt;/p&gt;

&lt;p&gt;🌐 &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;spraay.app&lt;/a&gt; · ⚡ &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;Live Gateway&lt;/a&gt; · 🐦 &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app&lt;/a&gt; · 📡 &lt;a href="https://smithery.ai/servers/Plagtech/Spraay-x402-mcp" rel="noopener noreferrer"&gt;MCP Server on Smithery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you're building AI agents that need to pay for compute, we should talk.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>x402</category>
      <category>ai</category>
      <category>cryptocurrency</category>
      <category>web3</category>
    </item>
    <item>
      <title>Spraay Brings Batch Payments to Canton Network Amid Wall Street Tokenization Push</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Mon, 25 May 2026 00:38:46 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/spraay-brings-batch-payments-to-canton-network-amid-wall-street-tokenization-push-2clj</link>
      <guid>https://dev.to/mr_hamlin/spraay-brings-batch-payments-to-canton-network-amid-wall-street-tokenization-push-2clj</guid>
      <description>&lt;p&gt;Spent the last few days adding Canton Network support to Spraay Protocol's batch payment infrastructure. It's chain 16 for Spraay, and the most interesting one we've integrated to date — for reasons that have less to do with us and more to do with where Canton is going.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Canton context
&lt;/h2&gt;

&lt;p&gt;If you've been heads-down in crypto Twitter, Canton is easy to miss. While most of the EVM ecosystem has been arguing about L2 fragmentation, Canton has quietly become the rail of choice for serious institutional tokenization. The numbers are real:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DTCC&lt;/strong&gt; — which clears the vast majority of U.S. securities and custodies $114T in assets — partnered with Digital Asset in December 2025 to tokenize DTC-custodied U.S. Treasuries on Canton, with broader rollout through 2H 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JPMorgan's Kinexys&lt;/strong&gt; is deploying JPM Coin natively on Canton in phases throughout 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broadridge's&lt;/strong&gt; distributed ledger repo platform, running on Canton rails, already processes &lt;strong&gt;$4 trillion monthly&lt;/strong&gt; in overnight Treasury financing&lt;/li&gt;
&lt;li&gt;Goldman Sachs, BNY Mellon, BNP Paribas, HSBC, Euroclear, S&amp;amp;P Global, Nasdaq are all participants&lt;/li&gt;
&lt;li&gt;Network-wide: ~$6T in tokenized real-world assets across 600+ institutions, ~500K daily transactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a network built for the financial plumbing layer most crypto-native builders don't think about every day. And it's already running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where batch payments fit
&lt;/h2&gt;

&lt;p&gt;Most of Spraay's chains are payment-rail-first: send USDC to N recipients, take a 0.3% protocol fee, optimize gas. That story translates cleanly to retail and to agent-driven commerce (we've leaned hard into x402-style agent payments).&lt;/p&gt;

&lt;p&gt;Canton is different. Holdings are UTXO-style. Transfers go through Splice's Token Standard via a &lt;code&gt;TransferFactory_Transfer&lt;/code&gt; choice on the global synchronizer. Instruments are admin-scoped — the DSO party admins Canton Coin, but any institution issuing on Canton (a tokenized Treasury, a deposit token, a fund share) can be its own instrument admin.&lt;/p&gt;

&lt;p&gt;So a batch payment primitive that works against Token Standard isn't "competing with DTCC." It's a small piece of utility infra that any app building on Canton can compose with — programmatic disbursements, fund flows between sub-accounts, payroll, agent-driven micropayments — whether the instrument is Canton Coin today or a tokenized money-market fund share tomorrow.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/plagtech/spraay-canton" rel="noopener noreferrer"&gt;&lt;code&gt;github.com/plagtech/spraay-canton&lt;/code&gt;&lt;/a&gt; runs against the cn-quickstart LocalNet. It exposes a REST API for batch payments, queries holdings via the Token Standard Holding interface, fetches the TransferFactory from the Scan-hosted registry, executes one &lt;code&gt;TransferFactory_Transfer&lt;/code&gt; per recipient, and collects the protocol fee through a second transfer to the operator party. Same shape as every other Spraay chain — just spoken in Daml.&lt;/p&gt;

&lt;p&gt;The repo is open, the integration is small, and the door's open if anyone building on Canton wants payment primitives or just wants to compare notes.&lt;/p&gt;

&lt;p&gt;Spraay now spans 16 chains. The interesting part isn't the count — it's that the span now goes from retail-facing chains all the way to the network where institutional tokenization is being built. That's a different kind of map than it was last year.&lt;/p&gt;

</description>
      <category>payments</category>
      <category>wallstreet</category>
      <category>x402</category>
      <category>spraay</category>
    </item>
    <item>
      <title>Spraay just introduced new endpoints for Solana Agents.</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Sat, 16 May 2026 00:34:34 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/spraay-just-introduced-new-endpoints-for-solana-agents-45fp</link>
      <guid>https://dev.to/mr_hamlin/spraay-just-introduced-new-endpoints-for-solana-agents-45fp</guid>
      <description>&lt;p&gt;If you've built a Solana DeFi agent recently, you know the shape of the work.&lt;/p&gt;

&lt;p&gt;You write a quote function. It calls Jupiter directly because that's where the liquidity is. Then you need wallet holdings, so you sign up for Helius and stick a key in &lt;code&gt;.env&lt;/code&gt;. Then you need price feeds, so you wire up Pyth Hermes. Three providers, three rate limits, three sets of error semantics, three keys to rotate. Your agent does six interesting things and you're managing eight pieces of infrastructure.&lt;/p&gt;

&lt;p&gt;I've been building Spraay — an x402 gateway — for several months, and as of today it speaks Solana DeFi natively. Six new endpoints, one gateway, payable per call in USDC. If you're somewhere in the middle of writing the agent I just described, this might save you a weekend.&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET  /api/v1/solana/jupiter/quote         $0.005
POST /api/v1/solana/jupiter/swap-tx       $0.01
GET  /api/v1/solana/helius/assets-by-owner $0.003
GET  /api/v1/solana/helius/asset          $0.002
GET  /api/v1/solana/pyth/price            $0.005
GET  /api/v1/solana/pyth/prices           $0.008
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All six are pure proxies to the real upstream — Jupiter v6, Helius DAS, Pyth Hermes. No synthetic data, no mock responses. Spraay does payment, validation, error normalization, and Bazaar discovery. Your agent does everything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you don't deal with
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No accounts.&lt;/strong&gt; No signup, no email confirmation, no dashboard. Your agent's wallet is its identity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No API keys.&lt;/strong&gt; Payment is the auth. You pay $0.005, you get the response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No bridging.&lt;/strong&gt; Pay in either Solana USDC (SPL) or Base USDC (ERC-20). Spraay accepts both on every endpoint. Useful when your agent already has USDC on Base from doing other things.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No upstream rate-limit babysitting.&lt;/strong&gt; Spraay holds the paid tier with Helius and Jupiter. You see clean 402s on success, 429 with &lt;code&gt;retryAfter&lt;/code&gt; if upstream rate-limits us.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No custody risk on swaps.&lt;/strong&gt; Jupiter &lt;code&gt;swap-tx&lt;/code&gt; returns an unsigned &lt;code&gt;VersionedTransaction&lt;/code&gt;. Your wallet signs and submits. The gateway never touches keys.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Working code
&lt;/h2&gt;

&lt;p&gt;The integration that took me three days to do raw, ported to Spraay in about twenty minutes. The example below uses pseudocode for the payment client — drop in whatever x402 client you're already using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VersionedTransaction&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Connection&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@solana/web3.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Your x402 client of choice — handles the 402 → pay → retry flow&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;makeX402Client&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;baseUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://gateway.spraay.app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// Pay in Solana USDC, Base USDC, or both — your call&lt;/span&gt;
  &lt;span class="na"&gt;solanaPrivateKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SOLANA_PRIVATE_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;connection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Connection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SOLANA_RPC_URL&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 1. Read the agent's wallet — SPL tokens, NFTs, native SOL balance, paginated&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;holdings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/solana/helius/assets-by-owner&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
  &lt;span class="s2"&gt;`?owner=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;myWallet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toBase58&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;limit=100`&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Wallet holds &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;holdings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;total&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; assets, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;holdings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nativeBalance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lamports&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;e9&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; SOL`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Pull live prices for the agent's watchlist in one call&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/solana/pyth/prices?feedIds=SOL,BTC,ETH,JUP,BONK&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;solPrice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;prices&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prices&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SOL&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;price&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// e.g. 142.37&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;solConfidence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;prices&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prices&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SOL&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// ± confidence interval&lt;/span&gt;

&lt;span class="c1"&gt;// 3. Quote a swap&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;quote&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/solana/jupiter/quote&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;?inputMint=USDC&amp;amp;outputMint=SOL&amp;amp;amount=10000000&amp;amp;slippageBps=50&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`10 USDC → &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;outAmount&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;e9&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; SOL via &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;routeHops&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-hop route`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// 4. Build the unsigned transaction&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;swap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/solana/jupiter/swap-tx&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;quoteResponse&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;userPublicKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;myWallet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toBase58&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="na"&gt;prioritizationFeeLamports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;auto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// 5. Sign and submit yourself — gateway never sees the key&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;VersionedTransaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deserialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;swap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;swapTransaction&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base64&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;tx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nx"&gt;myWallet&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sendTransaction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Swap submitted: https://solscan.io/tx/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;sig&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Five operations, four endpoints, one payment rail. The agent pays the per-call cost out of its own wallet, gas-of-the-API-economy style.&lt;/p&gt;

&lt;h2&gt;
  
  
  Endpoint details, quickly
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Jupiter
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/quote&lt;/code&gt; wraps &lt;code&gt;quote-api.jup.ag/v6/quote&lt;/code&gt; (or &lt;code&gt;api.jup.ag/swap/v1/quote&lt;/code&gt; on the paid tier — Spraay holds the key). Returns route plan, slippage, output amount, price impact. Accepts symbol aliases (&lt;code&gt;USDC&lt;/code&gt;, &lt;code&gt;SOL&lt;/code&gt;, &lt;code&gt;BONK&lt;/code&gt;, &lt;code&gt;WIF&lt;/code&gt;, &lt;code&gt;JUP&lt;/code&gt;, etc.) or raw base58 mints.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/swap-tx&lt;/code&gt; wraps the &lt;code&gt;/swap&lt;/code&gt; endpoint. Returns a base64-encoded &lt;code&gt;VersionedTransaction&lt;/code&gt;. Pass the raw &lt;code&gt;quoteResponse&lt;/code&gt; from &lt;code&gt;/quote&lt;/code&gt; and your &lt;code&gt;userPublicKey&lt;/code&gt;. Optional: &lt;code&gt;wrapAndUnwrapSol&lt;/code&gt;, &lt;code&gt;prioritizationFeeLamports&lt;/code&gt;. Gateway never signs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Helius DAS
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/assets-by-owner&lt;/code&gt; wraps &lt;code&gt;getAssetsByOwner&lt;/code&gt;. Returns SPL tokens, regular NFTs, compressed NFTs, and native SOL balance in one paginated response. Default &lt;code&gt;limit=100&lt;/code&gt;, max &lt;code&gt;1000&lt;/code&gt;. &lt;code&gt;showFungible&lt;/code&gt; and &lt;code&gt;showNativeBalance&lt;/code&gt; both default &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/asset&lt;/code&gt; wraps &lt;code&gt;getAsset&lt;/code&gt;. Returns full metadata for a single asset by mint or compressed NFT ID — image, attributes, royalty info, compression details, ownership.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pyth
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/price&lt;/code&gt; wraps Hermes &lt;code&gt;/v2/updates/price/latest&lt;/code&gt; for one feed. Returns the human-readable price (already scaled by &lt;code&gt;expo&lt;/code&gt;), confidence interval, publish time, and EMA price. Symbol aliases for the obvious ones (&lt;code&gt;SOL&lt;/code&gt;, &lt;code&gt;BTC&lt;/code&gt;, &lt;code&gt;ETH&lt;/code&gt;, &lt;code&gt;USDC&lt;/code&gt;, &lt;code&gt;USDT&lt;/code&gt;, &lt;code&gt;JUP&lt;/code&gt;, &lt;code&gt;PYTH&lt;/code&gt;, &lt;code&gt;BONK&lt;/code&gt;, &lt;code&gt;WIF&lt;/code&gt;, &lt;code&gt;JTO&lt;/code&gt;) or pass the 64-char hex feed ID.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/prices&lt;/code&gt; is the batch version. Up to 50 feeds, comma-separated. Returns a &lt;code&gt;{ symbol: priceObject }&lt;/code&gt; map keyed by uppercase symbol.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying it before you integrate
&lt;/h2&gt;

&lt;p&gt;Every endpoint returns a clean &lt;code&gt;402 Payment Required&lt;/code&gt; with full x402 payment requirements when you call without paying. You can see the schema, pricing, and accepts arrays directly:&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;-i&lt;/span&gt; &lt;span class="s2"&gt;"https://gateway.spraay.app/api/v1/solana/pyth/price?feedId=SOL"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The 402 body includes both EVM and Solana payment options. Your x402 client picks the rail.&lt;/p&gt;

&lt;p&gt;If you want to see all six (plus the rest of Spraay's catalog) in Bazaar-discoverable form:&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;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://gateway.spraay.app/.well-known/x402.json"&lt;/span&gt; | jq &lt;span class="s1"&gt;'.resources[] | select(.resource | contains("/solana/"))'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Error handling notes worth knowing
&lt;/h2&gt;

&lt;p&gt;A few things that will save debugging time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;429 rate_limit&lt;/code&gt;&lt;/strong&gt; means we're being rate-limited by an upstream provider. Response includes &lt;code&gt;retryAfter&lt;/code&gt; in seconds. Backoff and retry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;502 upstream_error&lt;/code&gt;&lt;/strong&gt; from any endpoint means the upstream returned a non-2xx. The body contains the actual upstream error in &lt;code&gt;detail&lt;/code&gt;. Useful for debugging slippage tolerance, missing feeds, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;400 invalid_input_mint&lt;/code&gt;&lt;/strong&gt; etc. are pre-flight validation failures. Spraay never charges you if validation fails before the upstream call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pyth feed IDs&lt;/strong&gt; are case-sensitive hex. If you're not using aliases, lowercase everything or use the alias map.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Gateway: &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;gateway.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Full endpoint catalog: &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Smithery MCP server: &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;smithery.ai/server/@plagtech/spraay-x402-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/plagtech" rel="noopener noreferrer"&gt;github.com/plagtech&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build something with this and it breaks, ping me — I respond fast and the roadmap is mostly driven by what builders actually ask for.&lt;/p&gt;

&lt;p&gt;💧&lt;/p&gt;

</description>
      <category>ai</category>
      <category>x402</category>
      <category>solana</category>
      <category>defi</category>
    </item>
    <item>
      <title>The First Batch Payment Skill for Vercel Agents (skills.sh)</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Fri, 15 May 2026 20:59:21 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/the-first-batch-payment-skill-for-vercel-agents-skillssh-21l</link>
      <guid>https://dev.to/mr_hamlin/the-first-batch-payment-skill-for-vercel-agents-skillssh-21l</guid>
      <description>&lt;p&gt;Spraay Protocol just shipped as a &lt;a href="https://github.com/plagtech/spraay-agent-skills" rel="noopener noreferrer"&gt;Vercel-compatible agent skill&lt;/a&gt;. One command gives any AI coding agent the ability to batch-send crypto to hundreds of recipients in a single transaction — across 15 blockchains.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add plagtech/spraay-agent-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Claude Code, Cursor, GitHub Copilot, Codex, Gemini CLI, and 12+ other agents can now build batch payment workflows using Spraay.&lt;/p&gt;

&lt;h2&gt;
  
  
  What problem does this solve?
&lt;/h2&gt;

&lt;p&gt;Sending crypto to multiple people is painful. Whether it's payroll for a remote team, an airdrop for a token community, bounty payouts for contributors, or a DAO treasury distribution — the standard approach is sending individual transactions one at a time.&lt;/p&gt;

&lt;p&gt;That means paying gas on every single transfer, manually entering each address, and hoping you don't make a mistake on transaction 47 of 200.&lt;/p&gt;

&lt;p&gt;Spraay bundles all of those into one on-chain transaction. Up to 200+ recipients, ~80% gas savings, 0.3% protocol fee.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why an agent skill?
&lt;/h2&gt;

&lt;p&gt;AI agents are increasingly handling real workflows — not just answering questions, but taking actions. An agent managing a DAO treasury should be able to say "distribute 10,000 USDC across these 50 contributors" and execute it.&lt;/p&gt;

&lt;p&gt;Vercel recently launched their &lt;a href="https://github.com/vercel-labs/skills" rel="noopener noreferrer"&gt;Skills CLI&lt;/a&gt; and &lt;a href="https://skills.sh" rel="noopener noreferrer"&gt;skills.sh&lt;/a&gt; directory — an open ecosystem for packaging capabilities that any AI agent can install and use. Skills are simple: a &lt;code&gt;SKILL.md&lt;/code&gt; file teaches the agent what the tool does, when to use it, and how to call it. No SDKs to integrate, no code to write.&lt;/p&gt;

&lt;p&gt;When an agent reads the Spraay skill, it knows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to call the batch payment gateway&lt;/li&gt;
&lt;li&gt;Which 15 chains are supported&lt;/li&gt;
&lt;li&gt;What the request format looks like&lt;/li&gt;
&lt;li&gt;How the 0.3% fee works&lt;/li&gt;
&lt;li&gt;That it should always confirm with the user before signing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent becomes payment-capable in one install.&lt;/p&gt;

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

&lt;p&gt;The skill focuses on one thing: batch payments. Five types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native token batches&lt;/strong&gt; — ETH, SOL, MATIC, BNB, AVAX, XLM, XRP, BTC, TAO, STX&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ERC-20 / SPL token batches&lt;/strong&gt; — USDC, DAI, WETH, or any token contract&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Equal-amount batches&lt;/strong&gt; — same amount to every recipient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variable-amount batches&lt;/strong&gt; — different amounts per recipient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSV import batches&lt;/strong&gt; — upload a spreadsheet of addresses and amounts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  15 chains, real contracts
&lt;/h2&gt;

&lt;p&gt;Every EVM chain has a verified, deployed batch contract:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chain&lt;/th&gt;
&lt;th&gt;Contract&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Base&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ethereum&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x15E7aEDa45094DD2E9E746FcA1C726cAd7aE58b3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arbitrum&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x5be43aA67804aD84fcb890d0AE5F257fb1674302&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Polygon&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x6d2453ab7416c99aeDCA47CF552695be5789D7ff&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BNB Chain&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x3093a2951FB77b3beDfB8BA20De645F7413432C1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avalanche&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x6A41Fb5F5CfE632f9446b548980dA6cE2d75afcC&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unichain&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x08fA5D1c16CD6E2a16FC0E4839f262429959E073&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plasma&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0x08fA5D1c16CD6E2a16FC0E4839f262429959E073&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BOB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0xEc8599026AE70898391a71c96AA82d4840C2e973&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plus non-EVM chains with chain-native implementations: Solana (SPL batch), Stellar (multi-operation), Bitcoin (PSBT), XRP Ledger (sequential payments), Bittensor (&lt;code&gt;utility.batchAll&lt;/code&gt;), and Stacks (Clarity contract).&lt;/p&gt;

&lt;p&gt;These aren't testnet demos. They're live, verified contracts handling real value.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the gateway works
&lt;/h2&gt;

&lt;p&gt;The Spraay gateway at &lt;code&gt;gateway.spraay.app&lt;/code&gt; uses the x402 payment protocol — the HTTP 402 standard that Coinbase helped pioneer for machine-to-machine payments.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Agent sends a batch request to the gateway&lt;/li&gt;
&lt;li&gt;Gateway returns unsigned transaction data bundling all transfers&lt;/li&gt;
&lt;li&gt;User reviews and signs in their wallet&lt;/li&gt;
&lt;li&gt;All recipients get paid in one on-chain transaction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Gateway access costs $0.02 USDC per call, paid automatically via x402 on Base. No API keys, no accounts, no subscriptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick integration
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x402-client&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;baseUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://gateway.spraay.app&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;privateKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;EVM_PRIVATE_KEY&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/api/v1/batch/execute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;USDC&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;recipients&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xAlice&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;100.00&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xBob&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;50.00&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xCarol&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;25.00&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or skip the code entirely — users can batch-send at &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;spraay.app&lt;/a&gt; by connecting their wallet and adding recipients or uploading a CSV.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this fits in the Vercel ecosystem
&lt;/h2&gt;

&lt;p&gt;Vercel's agent skills ecosystem is growing fast. There are skills for React best practices, deployment automation, and web design guidelines. Crypto is starting to show up — Crypto.com published a trading skill, and community repos are covering DeFi yield and sentiment analysis.&lt;/p&gt;

&lt;p&gt;But nobody had batch payments. It's a gap that matters because every on-chain organization eventually needs to pay multiple people, and doing it manually doesn't scale.&lt;/p&gt;

&lt;p&gt;Spraay fills that gap with deployed infrastructure across 15 chains, not a wrapper around someone else's API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add plagtech/spraay-agent-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use the dApp directly: &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;spraay.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full gateway docs: &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The MCP server is also on Smithery if you're building with MCP-compatible agents: &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;@plagtech/spraay-x402-mcp&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Spraay Protocol is built by &lt;a href="https://github.com/plagtech" rel="noopener noreferrer"&gt;@plagtech&lt;/a&gt;. Follow &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app&lt;/a&gt; for updates.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vercel</category>
      <category>ai</category>
      <category>agentskills</category>
      <category>agents</category>
    </item>
    <item>
      <title>💧 Spraay x402 Gateway Now Accepts Solana USDC — Dual-Chain AI Agent Payments Are Live</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Wed, 13 May 2026 04:27:37 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/spraay-x402-gateway-now-accepts-solana-usdc-dual-chain-ai-agent-payments-are-live-4bb2</link>
      <guid>https://dev.to/mr_hamlin/spraay-x402-gateway-now-accepts-solana-usdc-dual-chain-ai-agent-payments-are-live-4bb2</guid>
      <description>&lt;p&gt;Your AI agent holds USDC on Solana. The API it needs to call takes payment on Base. Until today, that meant bridging, swapping, or just not making the call.&lt;/p&gt;

&lt;p&gt;Not anymore.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Shipped
&lt;/h2&gt;

&lt;p&gt;The Spraay x402 Gateway — 93+ paid endpoints covering AI inference, batch payments, DeFi, oracle data, escrow, payroll, robotics, supply chain, and more — now accepts USDC on both &lt;strong&gt;Base&lt;/strong&gt; and &lt;strong&gt;Solana mainnet&lt;/strong&gt; through the official x402 protocol.&lt;/p&gt;

&lt;p&gt;Every gated endpoint returns a 402 challenge with two &lt;code&gt;accepts&lt;/code&gt; entries. The agent picks whichever chain it holds funds on. No bridging, no extra steps.&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;"accepts"&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;"scheme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"exact"&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"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&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;"network"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"eip155:8453"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"payTo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0xAd62f03C7514bb8c51f1eA70C2b75C37404695c8"&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;"scheme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"exact"&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"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&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;"network"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"payTo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"8WhWE8YgY5QBWyLowEHuaZiWdwDM3SrgDk36xYBNvYNS"&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;h2&gt;
  
  
  Three Payment Rails, One Gateway
&lt;/h2&gt;

&lt;p&gt;The gateway now supports three concurrent payment methods on every route:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. x402 EVM (Base)&lt;/strong&gt; — The original rail. Coinbase CDP facilitator handles verification and settlement. Sub-cent gas on Base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. x402 SVM (Solana)&lt;/strong&gt; — New. Uses the official &lt;code&gt;@x402/svm&lt;/code&gt; SDK with &lt;code&gt;ExactSvmScheme&lt;/code&gt;. Same Coinbase facilitator. 400ms finality, ~$0.00025 tx fees. Fully compatible with pay.sh, xpay, and every x402 client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Custom Solana (X-Solana-Tx header)&lt;/strong&gt; — A direct SPL USDC transfer fallback. Agent sends USDC to the receive address, retries with the tx signature in a header, gateway verifies on-chain via &lt;code&gt;@solana/web3.js&lt;/code&gt;. Works for agents that don't speak x402.&lt;/p&gt;

&lt;p&gt;All three are active simultaneously. None interfere with each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works (Agent Perspective)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent calls GET /api/v1/oracle/prices
  → Gateway returns 402 with accepts[] (Base + Solana)

Agent inspects accepts[], picks solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
  → Signs USDC transfer authorization

Agent retries with X-PAYMENT header containing signed payload
  → Coinbase facilitator verifies + settles on Solana
  → Gateway returns 200 with oracle data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The entire flow is one round-trip after the initial 402. No accounts, no API keys, no subscriptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discovery Endpoints
&lt;/h2&gt;

&lt;p&gt;Agents can auto-discover payment options at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/x402.json&lt;/code&gt; — Full resource catalog with pricing&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/solana.json&lt;/code&gt; — Solana-specific payment config&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/agent-registration.json&lt;/code&gt; — Agent framework metadata&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/mpp.json&lt;/code&gt; — MPP/Stripe support (also active)&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;93+ paid endpoints across 21 categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Inference&lt;/strong&gt; — 200+ models via OpenRouter + 43 Bittensor models (SN64)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch Payments&lt;/strong&gt; — Base, Stellar, XRP, up to 200 recipients&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi&lt;/strong&gt; — Swaps, bridge quotes, position tracking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oracle&lt;/strong&gt; — Prices, gas, FX rates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payroll&lt;/strong&gt; — Crypto payroll execution and estimation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escrow&lt;/strong&gt; — Create, fund, release, cancel with milestones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure&lt;/strong&gt; — RPC, IPFS, cron, logging, webhooks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robotics (RTP)&lt;/strong&gt; — Dispatch physical tasks to robots via x402&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supply Chain (SCTP)&lt;/strong&gt; — Suppliers, POs, invoices, AI verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Wallets&lt;/strong&gt; — Provision smart contract wallets on Base&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;And more&lt;/strong&gt; — KYC, auth, audit, tax, GPU compute, search/RAG, XMTP messaging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these now accept payment on Base or Solana.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation
&lt;/h2&gt;

&lt;p&gt;For anyone building a similar dual-chain x402 server, the key pieces are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ExactSvmScheme&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@x402/svm/exact/server&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Register both schemes&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;x402ResourceServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;facilitatorClient&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;eip155:8453&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ExactEvmScheme&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="nx"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ExactSvmScheme&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// Each route gets dual accepts&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;GET /api/v1/oracle/prices&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;accepts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;exact&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;$0.008&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;eip155:8453&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;payTo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;evmAddress&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;exact&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;$0.008&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;payTo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;solanaAddress&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Coinbase CDP facilitator handles both EVM and SVM verification — no need to run your own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# See the dual-chain 402 challenge&lt;/span&gt;
curl https://gateway.spraay.app/api/v1/oracle/prices

&lt;span class="c"&gt;# Solana discovery&lt;/span&gt;
curl https://gateway.spraay.app/.well-known/solana.json

&lt;span class="c"&gt;# With pay.sh (Solana wallet)&lt;/span&gt;
pay curl https://gateway.spraay.app/api/v1/oracle/prices?tokens&lt;span class="o"&gt;=&lt;/span&gt;ETH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gateway&lt;/strong&gt;: &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;gateway.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/plagtech/spraay-x402-gateway" rel="noopener noreferrer"&gt;plagtech/spraay-x402-gateway&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt;: &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;@plagtech/spraay-x402-mcp on Smithery&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X&lt;/strong&gt;: &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;The x402 ecosystem is moving fast. Solana support in the protocol means agents on either chain can pay for APIs without bridging. We're live on both. Build something.&lt;/p&gt;

</description>
      <category>x402</category>
      <category>solana</category>
      <category>ai</category>
      <category>web3</category>
    </item>
    <item>
      <title>Spraay Gateway Now Accepts Credit Cards — 80+ API Endpoints, No Crypto Wallet Required</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Fri, 08 May 2026 02:54:47 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/spraay-gateway-now-accepts-credit-cards-80-api-endpoints-no-crypto-wallet-required-4dj3</link>
      <guid>https://dev.to/mr_hamlin/spraay-gateway-now-accepts-credit-cards-80-api-endpoints-no-crypto-wallet-required-4dj3</guid>
      <description>&lt;p&gt;I've been building &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;Spraay&lt;/a&gt; — a multi-chain payment gateway where AI agents pay per API call using the x402 protocol and USDC on Base. 88 endpoints across AI inference, batch payments, DeFi, oracle data, escrow, robotics, and more.&lt;/p&gt;

&lt;p&gt;The x402 model works great for crypto-native developers and autonomous agents. But I kept hearing the same thing from traditional devs:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"This looks useful, but I don't want to set up a wallet and buy USDC just to test your API."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fair point. So today I'm launching a &lt;strong&gt;traditional subscription tier&lt;/strong&gt; alongside x402 — pay with a credit card, get an API key, start building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Ways to Use Spraay
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pay-per-call (x402)&lt;/strong&gt; — No signup. Your agent pays USDC per request on Base. This is how autonomous agents use it. Prices range from $0.001 to $0.10 per call depending on the endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monthly subscription (Stripe)&lt;/strong&gt; — Sign up with your email, pay with a card, get an API key emailed to you. Add &lt;code&gt;X-API-Key&lt;/code&gt; to your requests and you're in.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Daily Calls&lt;/th&gt;
&lt;th&gt;Endpoints&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pay-per-call&lt;/td&gt;
&lt;td&gt;USDC per request&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;All 80+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starter&lt;/td&gt;
&lt;td&gt;$29/month&lt;/td&gt;
&lt;td&gt;1,000/day&lt;/td&gt;
&lt;td&gt;All 80+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;$99/month&lt;/td&gt;
&lt;td&gt;10,000/day&lt;/td&gt;
&lt;td&gt;All 80+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both paths hit the same endpoints. Same data, same infrastructure, same uptime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Get Access To
&lt;/h2&gt;

&lt;p&gt;Here's a sample of what's behind the gateway:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Inference&lt;/strong&gt; — 200+ models via OpenRouter + 43 models on Bittensor (OpenAI-compatible drop-in)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch Payments&lt;/strong&gt; — Send tokens to 200 recipients in one transaction across 15 chains&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi&lt;/strong&gt; — Swap quotes and execution via Uniswap V3, cross-chain bridge quotes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oracle&lt;/strong&gt; — Real-time token prices, gas prices, FX rates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search/RAG&lt;/strong&gt; — Web search, content extraction, Q&amp;amp;A with sources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU Compute&lt;/strong&gt; — Image generation, video, audio via Replicate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Wallets&lt;/strong&gt; — Provision ERC-4337 smart wallets for AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escrow&lt;/strong&gt; — Milestone-based conditional escrow contracts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robot Task Protocol&lt;/strong&gt; — Dispatch tasks to physical robots via x402&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plus:&lt;/strong&gt; Payroll, invoicing, KYC, audit trails, XMTP messaging, IPFS storage, cron scheduling, and more
Full docs at &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Subscriptions Work
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Pick a plan at &lt;a href="https://spraay.app/#pricing" rel="noopener noreferrer"&gt;spraay.app/pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Enter your email → redirected to Stripe Checkout&lt;/li&gt;
&lt;li&gt;Pay → API key emailed to you instantly&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;X-API-Key: spry_your_key&lt;/code&gt; header to any request&lt;/li&gt;
&lt;li&gt;That's it — no 402 payment flow, no wallet, no USDC
Check your usage anytime:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: spry_your_key"&lt;/span&gt; https://gateway.spraay.app/v1/auth/usage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rotate your key if compromised:&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 &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: spry_your_key"&lt;/span&gt; https://gateway.spraay.app/v1/auth/rotate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Manage billing through Stripe's customer portal — update card, change plans, cancel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Both Models?
&lt;/h2&gt;

&lt;p&gt;x402 is the future for agent-to-agent payments. An AI agent with a USDC balance can autonomously discover and pay for API calls without any human in the loop. That's powerful.&lt;/p&gt;

&lt;p&gt;But not every developer is building autonomous agents. Some just want to hit an oracle endpoint for price data, or run a batch payment from their backend. For them, a traditional API key is the fastest path.&lt;/p&gt;

&lt;p&gt;Spraay supports both — and the gateway doesn't care which one you use. If your request has an API key, it's validated and served. If it doesn't, the x402 payment flow kicks in. Same endpoints, same responses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built on Base
&lt;/h2&gt;

&lt;p&gt;Everything runs on Base mainnet. The batch payment contract is verified at &lt;a href="https://basescan.org/address/0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC" rel="noopener noreferrer"&gt;&lt;code&gt;0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC&lt;/code&gt;&lt;/a&gt;. Part of the Base Build program.&lt;/p&gt;

&lt;p&gt;Recently merged into &lt;a href="https://github.com/google/adk-python" rel="noopener noreferrer"&gt;Google Agent Development Kit&lt;/a&gt; as an integration, and live on &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt; as an MCP server with 60+ tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pricing &amp;amp; signup:&lt;/strong&gt; &lt;a href="https://spraay.app/#pricing" rel="noopener noreferrer"&gt;spraay.app/#pricing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gateway:&lt;/strong&gt; &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;gateway.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/plagtech" rel="noopener noreferrer"&gt;github.com/plagtech&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Twitter:&lt;/strong&gt; &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app&lt;/a&gt;
If you have questions, drop a comment or reach out on Twitter. Happy to walk through integration.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>webdev</category>
      <category>ai</category>
      <category>crypto</category>
    </item>
    <item>
      <title>How to pay 100 agents in a single x402 call</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Sat, 25 Apr 2026 04:51:15 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/how-to-pay-100-agents-in-a-single-x402-call-1243</link>
      <guid>https://dev.to/mr_hamlin/how-to-pay-100-agents-in-a-single-x402-call-1243</guid>
      <description>&lt;p&gt;You're building an agent that pays for things. It pulls market data, hits an inference endpoint, fans out USDC to 50 freelancers, and writes a row to your database. Four steps.&lt;/p&gt;

&lt;p&gt;Three of those steps are one HTTP call each. The fourth — paying 50 people — is 50 transactions, 50 nonces to track, 50 places where something can fail halfway. Your "agent" spends 90% of its runtime managing payment loops.&lt;/p&gt;

&lt;p&gt;This is the part of the agent stack that nobody talks about. The x402 marketplace today is full of read-side services: Anthropic, OpenAI, CoinGecko, Exa, Perplexity. They give your agent inputs. None of them help your agent fan money outward.&lt;/p&gt;

&lt;p&gt;That's the gap I've been building into for the last few months. This post is a quick tour of why batch settlement matters, why it's the right primitive for the agent economy, and how to actually use it in your code right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cost of doing it wrong
&lt;/h2&gt;

&lt;p&gt;Let's get specific. Say your agent needs to pay 50 USDC recipients on Base. Doing it the obvious way — one ERC-20 transfer per recipient — looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Transactions&lt;/th&gt;
&lt;th&gt;Total Gas&lt;/th&gt;
&lt;th&gt;Wall-Clock Time&lt;/th&gt;
&lt;th&gt;Failure Modes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;50 sequential transfers&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;~3,300,000&lt;/td&gt;
&lt;td&gt;60-120 seconds&lt;/td&gt;
&lt;td&gt;Per-tx revert, nonce gaps, RPC drops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50 parallel transfers&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;~3,300,000&lt;/td&gt;
&lt;td&gt;5-15 seconds&lt;/td&gt;
&lt;td&gt;Nonce conflicts, replacement underpriced&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1 batch call&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;~280,000&lt;/td&gt;
&lt;td&gt;2-3 seconds&lt;/td&gt;
&lt;td&gt;Atomic — all or none&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The batch path saves ~92% of the gas and roughly an order of magnitude on wall-clock time. More importantly, it's atomic: either all 50 transfers land in the same block, or none do. Your agent never has to reconcile partial state.&lt;/p&gt;

&lt;p&gt;If you've ever built a payroll system, an airdrop tool, a marketplace payout, or an AI agent that distributes rewards, you know exactly why this matters. Partial state is where bugs live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why x402 needs this primitive
&lt;/h2&gt;

&lt;p&gt;The x402 protocol is beautifully simple: a server responds with &lt;code&gt;402 Payment Required&lt;/code&gt;, the client attaches a payment proof, the server returns the resource. It works because each request is a single payment unit.&lt;/p&gt;

&lt;p&gt;But the agent economy isn't single-recipient. Real workflows look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A research agent buys 10 different data sources for one report, then pays the user a share back.&lt;/li&gt;
&lt;li&gt;A trading agent settles fees to multiple liquidity providers in a single decision cycle.&lt;/li&gt;
&lt;li&gt;A supply chain agent pays a supplier, the carrier, and the inspector when an invoice clears.&lt;/li&gt;
&lt;li&gt;A DAO treasury agent distributes monthly payments to 200 contributors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of those workflows works &lt;em&gt;through&lt;/em&gt; x402, but the payment leg currently has to fall back to a non-x402 path — ethers, viem, custom batch contracts, or a centralized service. That's friction. And friction is where adoption dies.&lt;/p&gt;

&lt;p&gt;So I built the missing piece: an x402 endpoint that takes a list of recipients and amounts, and settles all of them in a single on-chain transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  The endpoint
&lt;/h2&gt;

&lt;p&gt;The Spraay gateway exposes batch settlement as a paid x402 resource. One call in, one transaction out, atomic across all recipients.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST https://gateway.spraay.app/api/v1/batch/execute
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request shape:&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;"token"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USDC"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sender"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0xYourAgentWallet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recipients"&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="s2"&gt;"0xRecipient1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"0xRecipient2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"0xRecipient3"&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;"amounts"&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="s2"&gt;"1000000"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"2500000"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"750000"&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;Amounts are in token-base units (USDC has 6 decimals, so &lt;code&gt;1000000&lt;/code&gt; = 1 USDC). The cost is $0.02 in USDC paid via x402, regardless of recipient count — economics get better the more recipients you have.&lt;/p&gt;

&lt;p&gt;The endpoint hits a batch contract on Base (&lt;code&gt;0x1646452F98E36A3c9Cfc3eDD8868221E207B5eEC&lt;/code&gt;), which loops the transfers in a single transaction. Either every recipient gets paid in the same block, or the whole call reverts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calling it from an agent
&lt;/h2&gt;

&lt;p&gt;Any HTTP client that speaks x402 can hit this endpoint. The simplest path is the official &lt;code&gt;x402-fetch&lt;/code&gt; wrapper — it handles the 402 challenge automatically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;wrapFetchWithPayment&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x402-fetch&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createWalletClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;http&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;viem&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;privateKeyToAccount&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;viem/accounts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;base&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;viem/chains&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;privateKeyToAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;AGENT_PRIVATE_KEY&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;wallet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createWalletClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;chain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;transport&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;http&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fetchWithPayment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;wrapFetchWithPayment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;wallet&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetchWithPayment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://gateway.spraay.app/api/v1/batch/execute&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;USDC&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;recipients&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xRecipient1...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xRecipient2...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0xRecipient3...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="na"&gt;amounts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1000000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2500000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;750000&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&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;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Batch tx hash:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txHash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the whole integration. Three recipients, fifty recipients, two hundred recipients — same code shape, same gas profile per call.&lt;/p&gt;

&lt;p&gt;If you're not using &lt;code&gt;x402-fetch&lt;/code&gt;, the manual flow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;POST&lt;/code&gt; to the endpoint with no payment header. You get back &lt;code&gt;402 Payment Required&lt;/code&gt; with a JSON body describing the price and the facilitator.&lt;/li&gt;
&lt;li&gt;Sign a USDC transfer authorization for the price ($0.02) to the &lt;code&gt;payTo&lt;/code&gt; address from the response.&lt;/li&gt;
&lt;li&gt;Re-&lt;code&gt;POST&lt;/code&gt; with the signature in the &lt;code&gt;X-PAYMENT&lt;/code&gt; header.&lt;/li&gt;
&lt;li&gt;Get back your batch result with the on-chain tx hash.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where this fits in a larger agent
&lt;/h2&gt;

&lt;p&gt;Batch settlement is most useful as a primitive that other things compose on top of. A few patterns I've seen agents use:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Periodic distribution.&lt;/strong&gt; A cron-driven agent that pulls revenue, splits it across stakeholders, and pays them out weekly. One batch call per cycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Marketplace payouts.&lt;/strong&gt; A listing platform agent that resolves orders end-of-day and pays sellers atomically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-hop settlement.&lt;/strong&gt; An agent that pays an LLM provider, a search provider, and a vector DB provider all from the same workflow's budget — batched so the user is charged once, atomically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent-to-agent commerce.&lt;/strong&gt; When agents subcontract work to other agents, the paying agent can settle the entire delegation tree in one call rather than chaining individual payments.&lt;/p&gt;

&lt;p&gt;The Spraay gateway has 90+ other x402 endpoints — agent wallet provisioning, on-chain DeFi positions, contract reads/writes, multi-chain RPC, AI inference (including a Bittensor drop-in at &lt;code&gt;/bittensor/v1&lt;/code&gt;), oracle data, and more — but batch settlement is the one that nothing else on the x402 marketplace currently offers. Everything else is competitive; this one is structurally unique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The simplest sanity test: hit the endpoint without payment and watch the 402 challenge come back.&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;-i&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://gateway.spraay.app/api/v1/batch/execute &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;'{"token":"USDC","sender":"0x...","recipients":["0x..."],"amounts":["1000000"]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll get a &lt;code&gt;402 Payment Required&lt;/code&gt; response with the payment requirements. That confirms the endpoint is live and gated. From there, drop in &lt;code&gt;x402-fetch&lt;/code&gt; (or your favorite x402 client) and you're paying batch in five minutes.&lt;/p&gt;

&lt;p&gt;The endpoint works on Base mainnet today. If you're building anything that fans money outward — payroll, airdrops, multi-recipient agent workflows, marketplace payouts — give it a try and let me know what breaks. I read every reply.&lt;/p&gt;

&lt;p&gt;Discovery doc with the full endpoint catalog: &lt;code&gt;https://gateway.spraay.app/.well-known/x402.json&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Build something. Pay everyone. In one call.&lt;/p&gt;

&lt;p&gt;— &lt;a href="https://dev.to/mr_hamlin"&gt;@mr_hamlin&lt;/a&gt;&lt;/p&gt;

</description>
      <category>x402</category>
      <category>web3</category>
      <category>agents</category>
      <category>base</category>
    </item>
    <item>
      <title>How to Use Bittensor Like OpenAI (3 Lines of Code)</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Thu, 09 Apr 2026 16:25:32 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/how-to-use-bittensor-like-openai-3-lines-of-code-7c6</link>
      <guid>https://dev.to/mr_hamlin/how-to-use-bittensor-like-openai-3-lines-of-code-7c6</guid>
      <description>&lt;p&gt;Every OpenAI-compatible SDK works with Bittensor now. No wallet. No TAO. No subnet knowledge. Just one line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://gateway.spraay.app/bittensor/v1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You're on decentralized AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://spraay.app/bittensor" rel="noopener noreferrer"&gt;Spraay Inference&lt;/a&gt; is a drop-in replacement for OpenAI's API that routes to Bittensor's decentralized AI network under the hood. Same &lt;code&gt;/v1/chat/completions&lt;/code&gt; endpoint, same request format, same SDK support.&lt;/p&gt;

&lt;p&gt;The difference: instead of hitting OpenAI's servers, your requests go to Subnet 64 (Chutes AI) — a decentralized network of GPU miners competing to serve the best inference. Every response is TEE-verified (Trusted Execution Environment), meaning you get cryptographic proof the model actually ran your prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;43+ models available today&lt;/strong&gt;, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek V3.2, DeepSeek R1 (reasoning)&lt;/li&gt;
&lt;li&gt;Qwen3 32B, Qwen3 235B&lt;/li&gt;
&lt;li&gt;GPT-OSS 120B (OpenAI's open-source model)&lt;/li&gt;
&lt;li&gt;Mistral Small 3.1&lt;/li&gt;
&lt;li&gt;And many more&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why switch from OpenAI?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cost.&lt;/strong&gt; Bittensor inference runs 40-85% cheaper than centralized providers because miners compete on price. A typical DeepSeek V3 call costs ~$0.25/M input tokens vs OpenAI's $2.50/M for GPT-4o.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Openness.&lt;/strong&gt; Every model on Bittensor is open-source. No black boxes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permissionless.&lt;/strong&gt; No one can revoke your access, change your pricing overnight, or censor your outputs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verifiable.&lt;/strong&gt; TEE verification means you can prove the model ran exactly as specified — important for agent pipelines where trust matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://gateway.spraay.app/bittensor/v1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;not-needed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// x402 handles payment&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completions&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="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;deepseek-ai/DeepSeek-V3-0324&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a helpful assistant.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Explain how Bittensor's subnet architecture works.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&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="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python works too:&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;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&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;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://gateway.spraay.app/bittensor/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_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;not-needed&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="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="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&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="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;deepseek-ai/DeepSeek-R1-0528&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&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;role&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;user&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;content&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;What is proof of intelligence?&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="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="n"&gt;choices&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="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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://gateway.spraay.app/bittensor/v1/chat/completions &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;'{
    "model": "Qwen/Qwen3-32B",
    "messages": [{"role": "user", "content": "Hello from Bittensor"}],
    "max_tokens": 256
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Available endpoints
&lt;/h2&gt;

&lt;p&gt;The API follows OpenAI's specification exactly:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bittensor/v1/models&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;List all available models&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bittensor/v1/chat/completions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;Chat completions (streaming supported)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bittensor/v1/images/generations&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;Image generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bittensor/v1/embeddings&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;Text embeddings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/bittensor/v1/health&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;Health check&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Streaming, function calling, structured output, and tool use all work as expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works under the hood
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your app (OpenAI SDK)
    ↓ standard HTTP request
Spraay Gateway (gateway.spraay.app)
    ↓ x402 payment verification
    ↓ model → provider routing
Bittensor Subnet 64 (Chutes AI)
    ↓ distributed across GPU miners
    ↓ TEE-verified execution
Response back to your app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Spraay x402 Gateway handles payment via the &lt;a href="https://www.x402.org/" rel="noopener noreferrer"&gt;x402 protocol&lt;/a&gt; — HTTP-native micropayments in USDC on Base. Agents can consume inference autonomously without API keys or accounts. This is designed for the agentic future where software pays for its own compute.&lt;/p&gt;

&lt;h2&gt;
  
  
  For AI agent developers
&lt;/h2&gt;

&lt;p&gt;If you're building autonomous agents with LangChain, CrewAI, AutoGPT, or any framework that uses OpenAI-compatible endpoints, Spraay Inference is the simplest way to put your agents on decentralized AI:&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="c1"&gt;# LangChain example
&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;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://gateway.spraay.app/bittensor/v1&lt;/span&gt;&lt;span class="sh"&gt;"&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;deepseek-ai/DeepSeek-V3.2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_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;not-needed&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="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Analyze the top Bittensor subnets by revenue&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;The x402 payment model means your agent doesn't need a credit card, an account, or even a human in the loop. It pays per-request in USDC and gets inference back. That's the unlock for truly autonomous AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it now
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live playground&lt;/strong&gt; (no setup needed): &lt;a href="https://spraay.app/bittensor" rel="noopener noreferrer"&gt;spraay.app/bittensor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gateway endpoint&lt;/strong&gt;: &lt;code&gt;gateway.spraay.app/bittensor/v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spraay Protocol&lt;/strong&gt;: &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;spraay.app&lt;/a&gt; | &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;Gateway docs&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Spraay Inference is part of the &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;Spraay x402 Gateway&lt;/a&gt; — 88+ pay-per-call API endpoints for AI, payments, DeFi, and infrastructure on Base. Built for agents.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;$TAO 💧&lt;/em&gt;&lt;/p&gt;

</description>
      <category>openai</category>
      <category>bittensor</category>
      <category>tao</category>
      <category>web3</category>
    </item>
    <item>
      <title>I built a tool to send TAO to 100+ wallets in one transaction (Bittensor payouts)</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Wed, 01 Apr 2026 21:01:17 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/i-built-a-tool-to-send-tao-to-100-wallets-in-one-transaction-bittensor-payouts-4i60</link>
      <guid>https://dev.to/mr_hamlin/i-built-a-tool-to-send-tao-to-100-wallets-in-one-transaction-bittensor-payouts-4i60</guid>
      <description>&lt;p&gt;Bittensor subnet operators often need to send &lt;strong&gt;TAO payouts to multiple wallets&lt;/strong&gt; — miners, contributors, validators.&lt;/p&gt;

&lt;p&gt;Right now, most people are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sending transactions one by one&lt;/li&gt;
&lt;li&gt;writing custom scripts&lt;/li&gt;
&lt;li&gt;or dealing with error-prone payout flows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built something simple:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;A way to batch TAO payouts in a single transaction&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The problem: TAO payouts don’t scale well
&lt;/h2&gt;

&lt;p&gt;If you’re running a Bittensor subnet, you’ve probably run into this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you have a list of wallet addresses&lt;/li&gt;
&lt;li&gt;each one needs a payout&lt;/li&gt;
&lt;li&gt;you’re sending transactions manually or via scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;wasted time&lt;/li&gt;
&lt;li&gt;higher chance of mistakes&lt;/li&gt;
&lt;li&gt;poor scalability as your subnet grows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There wasn’t a clean, simple way to:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;send TAO to multiple wallets at once&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ The solution: TAO Batch Payouts
&lt;/h2&gt;

&lt;p&gt;I built a tool called:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;TAO Batch Payouts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;paste wallet addresses + amounts&lt;/li&gt;
&lt;li&gt;review the payouts&lt;/li&gt;
&lt;li&gt;send everything in &lt;strong&gt;one transaction&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No scripts. No manual sending.&lt;/p&gt;




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

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

&lt;ol&gt;
&lt;li&gt;Paste wallets + amounts (or upload CSV)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Review &amp;amp; Send&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Confirm the payouts&lt;/li&gt;
&lt;li&gt;Execute the batch transaction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Example input
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;5F3sa2TJ...freqmY4p 1.5
5Grwva...GkutQY     2.3
5FHneW...M694ty     0.75
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 Why this matters
&lt;/h2&gt;

&lt;p&gt;This isn’t just convenience — it solves a real pain in the Bittensor ecosystem:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Batch payments
&lt;/h3&gt;

&lt;p&gt;Send to &lt;strong&gt;100+ wallets in one transaction&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Less manual work
&lt;/h3&gt;

&lt;p&gt;No more copy-paste wallet-by-wallet&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Fewer errors
&lt;/h3&gt;

&lt;p&gt;Review everything before sending&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Built for subnet operators
&lt;/h3&gt;

&lt;p&gt;Designed specifically for &lt;strong&gt;TAO distribution and rewards&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Try it here
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://spraay.app/tao-batch" rel="noopener noreferrer"&gt;https://spraay.app/tao-batch&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧾 Pricing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1% batch fee&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;applied at confirmation&lt;/li&gt;
&lt;li&gt;fully transparent before sending&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Under the hood
&lt;/h2&gt;

&lt;p&gt;This is powered by &lt;strong&gt;Spraay&lt;/strong&gt;, a multi-chain batch payment infrastructure.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;👉 make &lt;strong&gt;multi-wallet crypto payouts&lt;/strong&gt; as easy as a single transaction&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Bigger picture: programmable payments for AI agents
&lt;/h2&gt;

&lt;p&gt;This tool is just one piece of a larger direction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI agents making payments&lt;/li&gt;
&lt;li&gt;automated reward distribution&lt;/li&gt;
&lt;li&gt;machine-to-machine transactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Batch payouts are a foundational primitive for:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;agent-native payments + programmable finance&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Keywords (for devs searching this)
&lt;/h2&gt;

&lt;p&gt;If you’re here looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to send TAO to multiple wallets&lt;/li&gt;
&lt;li&gt;batch crypto payments&lt;/li&gt;
&lt;li&gt;bittensor payouts automation&lt;/li&gt;
&lt;li&gt;distribute TAO rewards&lt;/li&gt;
&lt;li&gt;multi wallet crypto transactions&lt;/li&gt;
&lt;li&gt;bulk crypto payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This tool was built for exactly that.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙏 Feedback
&lt;/h2&gt;

&lt;p&gt;If you’re running a Bittensor subnet or dealing with TAO payouts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how are you handling payouts today?&lt;/li&gt;
&lt;li&gt;manual? scripts? something else?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would love feedback or ideas.&lt;/p&gt;




&lt;h2&gt;
  
  
  👋 Closing
&lt;/h2&gt;

&lt;p&gt;This started as:&lt;/p&gt;

&lt;p&gt;👉 “there has to be an easier way to send payouts”&lt;/p&gt;

&lt;p&gt;And turned into a simple tool you can use right now.&lt;/p&gt;

&lt;p&gt;If it saves you time (or prevents one mistake), it’s doing its job.&lt;/p&gt;




&lt;p&gt;👉 &lt;a href="https://spraay.app/tao-batch" rel="noopener noreferrer"&gt;https://spraay.app/tao-batch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bittensor</category>
      <category>tao</category>
      <category>ai</category>
      <category>payments</category>
    </item>
    <item>
      <title>🚀 I built an API where an AI agent can verify an invoice and pay it in USDC</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Tue, 31 Mar 2026 20:57:38 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/i-built-an-api-where-an-ai-agent-can-verify-an-invoice-and-pay-it-in-usdc-ej7</link>
      <guid>https://dev.to/mr_hamlin/i-built-an-api-where-an-ai-agent-can-verify-an-invoice-and-pay-it-in-usdc-ej7</guid>
      <description>&lt;p&gt;Most accounts payable workflows still look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone emails a PDF invoice&lt;/li&gt;
&lt;li&gt;Someone checks it against a purchase order&lt;/li&gt;
&lt;li&gt;Someone approves it&lt;/li&gt;
&lt;li&gt;Someone logs into a bank and sends the payment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ It takes days.&lt;br&gt;
💸 It costs money.&lt;br&gt;
🧠 It requires humans in the loop.&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚡ So I built something simpler
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An API where an AI agent can verify an invoice and pay a supplier in one flow.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No API keys.&lt;br&gt;
No accounts.&lt;br&gt;
Just &lt;strong&gt;pay per request&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 The idea
&lt;/h2&gt;

&lt;p&gt;Instead of humans doing invoice checks, an agent can run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create PO → Submit invoice → Verify → Pay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;👉 From invoice → verified → paid in seconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 The flow (3 calls that matter)
&lt;/h2&gt;

&lt;p&gt;Here’s the entire loop.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧾 1. Submit an invoice
&lt;/h3&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://gateway.spraay.app/api/v1/sctp/invoice &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;'{
    "poId": "po_123",
    "supplierId": "sup_abc",
    "items": [
      {
        "description": "Resistor 10K x1000",
        "quantity": 1000,
        "unitPrice": 0.02
      }
    ],
    "total": 20.00
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ✅ 2. Verify it (this is the interesting part)
&lt;/h3&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://gateway.spraay.app/api/v1/sctp/invoice/verify &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;'{"invoiceId": "inv_456"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ⚡ Exact match (instant)
&lt;/h4&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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"matched"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&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.99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verifiedBy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deterministic"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"latencyMs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recommendation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"approve_payment"&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;h4&gt;
  
  
  🧠 Fuzzy match (AI reasoning)
&lt;/h4&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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"partial_match"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&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.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;"verifiedBy"&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"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"latencyMs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1340&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"discrepancies"&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="s2"&gt;"Description variation: 'Resistor 10K' vs 'Resistors 10KΩ (1000pc)'"&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;"recommendation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"approve_payment"&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;
  
  
  💸 3. Pay the supplier
&lt;/h3&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://gateway.spraay.app/api/v1/sctp/pay &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;'{
    "invoiceId": "inv_456",
    "supplierId": "sup_abc",
    "amount": 20.00,
    "token": "USDC",
    "chain": "base"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Response
&lt;/h4&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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"processing"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"estimatedSettlement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~2s"&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;
  
  
  ⚙️ How it works
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;/verify&lt;/code&gt; endpoint uses a &lt;strong&gt;two-step system&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Fast path (~50ms)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deterministic checks&lt;/li&gt;
&lt;li&gt;Totals, quantities, prices&lt;/li&gt;
&lt;li&gt;Instant match → high confidence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 Slow path (~1–2s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LLM reasoning for fuzzy cases&lt;/li&gt;
&lt;li&gt;Handles naming differences, rounding, inconsistencies&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Why this matters
&lt;/h2&gt;

&lt;p&gt;This isn’t just another API.&lt;/p&gt;

&lt;p&gt;It changes how financial workflows work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ No dashboards&lt;/li&gt;
&lt;li&gt;❌ No logins&lt;/li&gt;
&lt;li&gt;❌ No subscriptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Programmable financial infrastructure that agents can use directly&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An AI agent can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;receive an invoice&lt;/li&gt;
&lt;li&gt;verify it&lt;/li&gt;
&lt;li&gt;decide based on confidence&lt;/li&gt;
&lt;li&gt;execute payment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All without a human.&lt;/p&gt;




&lt;h2&gt;
  
  
  👀 Who this is for
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🤖 AI CFO / finance agents&lt;/li&gt;
&lt;li&gt;🪙 Crypto startups paying vendors&lt;/li&gt;
&lt;li&gt;🏛️ DAOs managing contributor payments&lt;/li&gt;
&lt;li&gt;🧑‍💻 Indie hackers automating ops&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 What this is (and isn’t)
&lt;/h2&gt;

&lt;p&gt;This is &lt;strong&gt;v0.1&lt;/strong&gt; of something I’m calling:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Supply Chain Task Protocol (SCTP)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right now it focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;invoices&lt;/li&gt;
&lt;li&gt;verification&lt;/li&gt;
&lt;li&gt;payments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Later, it may expand into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;escrow&lt;/li&gt;
&lt;li&gt;shipment tracking&lt;/li&gt;
&lt;li&gt;document verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…but only after this core loop is proven.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Try it yourself
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;https://gateway.spraay.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/plagtech/sctp" rel="noopener noreferrer"&gt;https://github.com/plagtech/sctp&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you're building AI agents and want to automate real-world workflows, I’d love feedback.&lt;/p&gt;

&lt;p&gt;This is one of those things that either clicks immediately…&lt;/p&gt;

&lt;p&gt;or sounds insane.&lt;/p&gt;

&lt;p&gt;I’m betting on the former.&lt;/p&gt;

</description>
      <category>supply</category>
      <category>workflow</category>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>The agentic economy isn't a whitepaper anymore. Here's what the numbers say: 250,000 AI Agents Are Live On-Chain.</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Fri, 27 Mar 2026 02:47:02 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/the-agentic-economy-isnt-a-whitepaper-anymore-heres-what-the-numbers-say-250000-ai-agents-are-13aa</link>
      <guid>https://dev.to/mr_hamlin/the-agentic-economy-isnt-a-whitepaper-anymore-heres-what-the-numbers-say-250000-ai-agents-are-13aa</guid>
      <description>&lt;p&gt;On March 9, 2026, Coinbase CEO Brian Armstrong posted five sentences that rattled the entire payments industry:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Very soon there are going to be more AI agents than humans making transactions. They can't open a bank account, but they can own a crypto wallet. Think about it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Two weeks later, the data is starting to prove him right.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers Are Real Now
&lt;/h2&gt;

&lt;p&gt;Daily active on-chain AI agents crossed &lt;strong&gt;250,000&lt;/strong&gt; in early 2026 — a 400%+ increase from 2025. More than 68% of new DeFi protocols launched in Q1 2026 included at least one autonomous AI agent for trading or liquidity management. AI-powered agents now represent roughly 18% of total prediction market volume, outperforming human traders by 27% on accuracy.&lt;/p&gt;

&lt;p&gt;This isn't speculative anymore. The machines are transacting.&lt;/p&gt;

&lt;p&gt;Coinbase launched Agentic Wallets on February 11, 2026, via the x402 protocol — an open payment standard built for machine-to-machine transactions. By the time Armstrong made his post, the protocol had already processed over &lt;strong&gt;50 million transactions&lt;/strong&gt;. CZ, the founder of Binance, echoed the thesis the very next day: AI agents will make &lt;em&gt;millions of times&lt;/em&gt; more payments than humans, and they'll use crypto to do it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Stablecoins Are the Default
&lt;/h2&gt;

&lt;p&gt;The reason agents are gravitating toward stablecoins isn't ideological — it's engineering.&lt;/p&gt;

&lt;p&gt;Traditional payment rails weren't built for this. Credit cards have minimum fees around $0.30 per transaction. Banks require KYC, government IDs, and human identity verification. AI agents can't satisfy any of those requirements. But they &lt;em&gt;can&lt;/em&gt; generate a cryptographic private key in milliseconds and start transacting globally.&lt;/p&gt;

&lt;p&gt;Stablecoins solve every friction point an autonomous agent faces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Programmability&lt;/strong&gt; — spending limits, conditional flows, and policies enforced at the wallet layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Always-on settlement&lt;/strong&gt; — blockchains don't close on weekends&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price stability&lt;/strong&gt; — agents can budget in USD terms without spot-crypto volatility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Micropayment economics&lt;/strong&gt; — fractions of a cent per API call, per data query, per task&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CB Insights projects that stablecoins will transition from crypto-native trading tools to the &lt;strong&gt;settlement layer for agent-driven commerce&lt;/strong&gt; in 2026. Circle CEO Jeremy Allaire has called USDC the "best dollar API" for AI's global economic system. And the data backs it up — on-chain analysis shows USDC accounts for 98.6% of agent transactions on EVM chains and 99.7% on Solana within the x402 ecosystem.&lt;/p&gt;

&lt;p&gt;The stablecoin market has matured into a &lt;strong&gt;$46 trillion&lt;/strong&gt; annualized transaction volume economy. That's 20x PayPal and rivaling major card networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  x402: HTTP for Money
&lt;/h2&gt;

&lt;p&gt;The protocol making all of this work is x402 — and it just got a major upgrade.&lt;/p&gt;

&lt;p&gt;x402 resurrects the long-dormant HTTP 402 "Payment Required" status code and turns it into a machine-readable payment negotiation layer. When an AI agent hits a paid endpoint, the server returns a 402 with payment details. The agent pays in USDC. Retries the request with a payment receipt header. No human intervention required.&lt;/p&gt;

&lt;p&gt;Here's the flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent requests a resource&lt;/li&gt;
&lt;li&gt;Server responds &lt;code&gt;402 Payment Required&lt;/code&gt; with price + recipient&lt;/li&gt;
&lt;li&gt;Agent signs and submits payment&lt;/li&gt;
&lt;li&gt;Agent retries with payment proof in the header&lt;/li&gt;
&lt;li&gt;Server delivers the resource&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No accounts. No subscriptions. No API keys. Just money moving at HTTP speed.&lt;/p&gt;

&lt;p&gt;On March 22, x402 V2 shipped — adding multi-chain support, wallet-based identity, dynamic payment recipients, and a fully modular SDK. Coinbase and Cloudflare co-founded the x402 Foundation to govern the standard. The protocol is now live on Base, Solana, Ethereum L2s, and even Etherlink (Tezos). Cloudflare integrated x402 into both its Agents SDK and MCP servers.&lt;/p&gt;

&lt;p&gt;The v1.0 spec freeze is targeted for Q3 2026, after which backward compatibility guarantees kick in.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Identity Gap: KYA Is the New KYC
&lt;/h2&gt;

&lt;p&gt;But payments alone don't solve the full picture. If agents can transact freely, how do you know &lt;em&gt;who&lt;/em&gt; (or what) is behind each one?&lt;/p&gt;

&lt;p&gt;a16z's crypto research team frames it this way: the bottleneck for the agent economy has shifted from intelligence to identity. In financial services, non-human identities already outnumber human employees 96-to-1 — yet these identities remain "unbanked ghosts." Agents need cryptographically signed credentials that link them to their principal, their constraints, and their liability.&lt;/p&gt;

&lt;p&gt;Sam Altman's World project launched AgentKit on March 17 to address exactly this — a toolkit that lets AI agents carry zero-knowledge proof that a verified human is behind them. It integrates directly with x402, positioning World as the identity layer for the agentic web.&lt;/p&gt;

&lt;p&gt;The industry that built KYC infrastructure over decades now has months to figure out &lt;strong&gt;KYA&lt;/strong&gt; — Know Your Agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Builders
&lt;/h2&gt;

&lt;p&gt;If you're building in crypto right now, the signal is clear: the next wave of users isn't human.&lt;/p&gt;

&lt;p&gt;The infrastructure play is wide open. Consider what's needed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Payment rails&lt;/strong&gt; — x402 gateways, facilitators, and middleware that let any API accept stablecoin micropayments per request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent wallets&lt;/strong&gt; — programmable wallets with session keys, spending policies, and budget controls that don't require human authorization per transaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity and trust&lt;/strong&gt; — reputation systems and verifiable credentials for agents, so merchants and protocols can assess risk without blocking every non-human actor at the firewall.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical-world bridging&lt;/strong&gt; — as AI agents move from digital tasks to coordinating physical robots and IoT devices, payment protocols need to extend into hardware.&lt;/p&gt;

&lt;p&gt;I've been building in this exact space. &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;Spraay&lt;/a&gt; is a multi-chain batch payment protocol with a live x402 gateway at &lt;code&gt;gateway.spraay.app&lt;/code&gt; — 76+ paid endpoints across 13 chains, all accepting USDC micropayments per request. We just shipped Agent Wallets (Category 17) on Base mainnet, and we're working on the &lt;a href="https://github.com/plagtech/rtp-spec" rel="noopener noreferrer"&gt;Robot Task Protocol (RTP)&lt;/a&gt; — an open standard for AI agents to hire physical robots via x402 micropayments.&lt;/p&gt;

&lt;p&gt;The agentic economy is being built right now, in public, by independent builders. If you're waiting for a Fortune 500 company to hand you the playbook, you're already behind.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reality Check
&lt;/h2&gt;

&lt;p&gt;Let's be honest about where things stand. Despite the narrative momentum, x402's average daily transaction volume is still around $28,000, and analysts estimate roughly half of that is wash trading or self-dealing. The gap between the vision and the current volume is real.&lt;/p&gt;

&lt;p&gt;But as one analyst put it: the growth rate of the agent economy may be overestimated for the coming year, but its potential may be underestimated five years from now.&lt;/p&gt;

&lt;p&gt;250,000 daily active agents. $46 trillion in stablecoin volume. 50 million x402 transactions. Two of crypto's most prominent founders publicly declaring that machines will dominate financial transactions.&lt;/p&gt;

&lt;p&gt;The infrastructure layer is being poured. The question isn't &lt;em&gt;if&lt;/em&gt; agents will be the primary users of crypto — it's whether you'll be building the rails they run on, or watching from the sidelines.&lt;/p&gt;




&lt;p&gt;💧 &lt;strong&gt;Building in the agentic economy?&lt;/strong&gt; Check out &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;Spraay&lt;/a&gt; — batch payments, x402 gateway, agent wallets, and RTP across 13 chains. &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;Docs&lt;/a&gt; | &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;MCP Server&lt;/a&gt; | &lt;a href="https://github.com/plagtech" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Follow me for daily posts on building crypto infrastructure for AI agents: &lt;a href="https://dev.to/mr_hamlin"&gt;@mr_hamlin on dev.to&lt;/a&gt; | &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app on X&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>ai</category>
      <category>stablecoins</category>
      <category>crypto</category>
    </item>
    <item>
      <title>I Just Gave AutoGPT the Ability to Send Crypto Payments</title>
      <dc:creator>Mr Hamlin</dc:creator>
      <pubDate>Tue, 24 Mar 2026 06:32:40 +0000</pubDate>
      <link>https://dev.to/mr_hamlin/i-just-gave-autogpt-the-ability-to-send-crypto-payments-27ge</link>
      <guid>https://dev.to/mr_hamlin/i-just-gave-autogpt-the-ability-to-send-crypto-payments-27ge</guid>
      <description>&lt;p&gt;AI agents are getting smarter every week. They can browse the web, write code, manage your calendar, and post on social media. But ask one to pay someone? That's where they hit a wall.&lt;/p&gt;

&lt;p&gt;I just opened &lt;a href="https://github.com/Significant-Gravitas/AutoGPT/pull/12533" rel="noopener noreferrer"&gt;PR #12533&lt;/a&gt; on AutoGPT — the biggest open-source AI agent platform on GitHub — adding native crypto payment blocks powered by &lt;a href="https://spraay.app" rel="noopener noreferrer"&gt;Spraay&lt;/a&gt;, the multi-chain batch payment gateway I've been building.&lt;/p&gt;

&lt;p&gt;This is the first crypto payment integration in AutoGPT's block ecosystem. Here's why it matters and how I built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: AI agents can't pay for anything
&lt;/h2&gt;

&lt;p&gt;Think about it. AutoGPT can already:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrape Reddit for trending topics and create video content&lt;/li&gt;
&lt;li&gt;Monitor your YouTube channel and auto-generate blog posts&lt;/li&gt;
&lt;li&gt;Manage GitHub issues and coordinate workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the moment an agent needs to compensate a freelancer, pay a bounty, or settle an invoice? It's stuck. There's no native payment rail.&lt;/p&gt;

&lt;p&gt;Traditional payment APIs (Stripe, PayPal) require KYC, bank accounts, and don't work well for autonomous systems. Crypto solves this — specifically stablecoins like USDC that don't fluctuate in value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter x402: HTTP meets crypto payments
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://x402.org" rel="noopener noreferrer"&gt;x402 protocol&lt;/a&gt; is elegantly simple. It extends HTTP with status code 402 (Payment Required) to let APIs accept USDC micropayments per request. No subscriptions. No invoices. Just pay-per-call.&lt;/p&gt;

&lt;p&gt;Spraay's gateway sits at &lt;code&gt;gateway.spraay.app&lt;/code&gt; and exposes 76+ paid endpoints across 13 blockchain networks. When an AI agent calls the API, it pays a fraction of a cent in USDC and gets the service done. That's the entire auth model.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built: 4 payment blocks
&lt;/h2&gt;

&lt;p&gt;AutoGPT's platform uses a modular "block" system. Each block performs a single action, and users chain them together visually to build agent workflows. I added four blocks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SpraayBatchPaymentBlock&lt;/strong&gt; — The flagship. Send payments to multiple recipients in a single on-chain transaction. One call, multiple payees, massive gas savings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SpraayTokenTransferBlock&lt;/strong&gt; — Simple one-to-one transfer. Agent pays someone. Done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SpraayGetBalanceBlock&lt;/strong&gt; — Check any wallet's token balance on any chain. Essential for pre-flight checks before sending payments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SpraayTransactionStatusBlock&lt;/strong&gt; — Track confirmation status. Lets agents wait for finality before proceeding in a workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The code: how AutoGPT blocks work
&lt;/h2&gt;

&lt;p&gt;AutoGPT blocks follow a clean pattern: a Python class inheriting from &lt;code&gt;Block&lt;/code&gt;, with typed input/output schemas and an async &lt;code&gt;run&lt;/code&gt; method. Here's a simplified look at the batch payment block:&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="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SpraayBatchPaymentBlock&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Block&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BlockSchema&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;credentials&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;spraay_provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;credentials_field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;chain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ChainNetwork&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Blockchain network to send payments on&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ChainNetwork&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BASE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;recipients&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;List of recipient wallet addresses&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="n"&gt;amounts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;List of amounts to send&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="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BlockSchema&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;transaction_hash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
        &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
        &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SchemaField&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;spraay_request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;POST&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/v1/batch/send&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;json_body&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;chain&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;recipients&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipients&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;amounts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;amounts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;transaction_hash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;transaction_hash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&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;The provider config uses AutoGPT's &lt;code&gt;ProviderBuilder&lt;/code&gt; for API key management:&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;backend.sdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BlockCostType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ProviderBuilder&lt;/span&gt;

&lt;span class="n"&gt;spraay_provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nc"&gt;ProviderBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;spraay&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="nf"&gt;with_api_key&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SPRAAY_API_KEY&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;Spraay x402 Gateway API Key&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="nf"&gt;with_base_cost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BlockCostType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RUN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clean, typed, testable. Every block includes &lt;code&gt;test_input&lt;/code&gt;, &lt;code&gt;test_output&lt;/code&gt;, and &lt;code&gt;test_mock&lt;/code&gt; so it plugs right into AutoGPT's test suite.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can build with this
&lt;/h2&gt;

&lt;p&gt;Once these blocks are merged, AutoGPT agents can do things like:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freelancer payroll agent&lt;/strong&gt; — Reads a Google Sheet of contractors, batch pays them all in USDC on Base. One transaction. Done weekly on a schedule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bounty payer&lt;/strong&gt; — Monitors GitHub issues tagged &lt;code&gt;bounty&lt;/code&gt;. When a linked PR gets merged, it automatically pays the contributor's wallet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent-to-agent payments&lt;/strong&gt; — One agent hires another agent for a subtask and pays via x402. This is the foundation of an autonomous agent economy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conditional payment workflows&lt;/strong&gt; — Check balance → if sufficient funds → send batch payment → verify confirmation → log to Google Sheets. All without human intervention.&lt;/p&gt;

&lt;h2&gt;
  
  
  13 chains, one API
&lt;/h2&gt;

&lt;p&gt;The blocks support every chain Spraay runs on:&lt;/p&gt;

&lt;p&gt;Base, Ethereum, Arbitrum, Polygon, BNB Chain, Avalanche, Unichain, Plasma, BOB, Solana, Bittensor, Stacks, and Bitcoin.&lt;/p&gt;

&lt;p&gt;Each chain is a simple enum value. Switch from Base to Solana by changing one field. The gateway handles all the chain-specific logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open source this into AutoGPT?
&lt;/h2&gt;

&lt;p&gt;Visibility and ecosystem growth. AutoGPT has 183K stars and an active contributor community. Getting payment blocks into their marketplace means every AutoGPT user can add crypto payments to their agents without writing custom code.&lt;/p&gt;

&lt;p&gt;It's also a signal. AI agents handling money is inevitable. The infrastructure should be open, auditable, and composable — not locked behind proprietary APIs.&lt;/p&gt;

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

&lt;p&gt;The PR is live at &lt;a href="https://github.com/Significant-Gravitas/AutoGPT/pull/12533" rel="noopener noreferrer"&gt;#12533&lt;/a&gt;. If you're interested in AI agent payments, here are some links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spraay gateway&lt;/strong&gt;: &lt;a href="https://gateway.spraay.app" rel="noopener noreferrer"&gt;gateway.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.spraay.app" rel="noopener noreferrer"&gt;docs.spraay.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt; (for Claude, Cursor, etc.): &lt;a href="https://smithery.ai/server/@plagtech/spraay-x402-mcp" rel="noopener noreferrer"&gt;@plagtech/spraay-x402-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/plagtech" rel="noopener noreferrer"&gt;github.com/plagtech&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building agents that need to move money, I'd love to hear what you're working on. Drop a comment or find me on X at &lt;a href="https://twitter.com/Spraay_app" rel="noopener noreferrer"&gt;@Spraay_app&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Follow me for more on building crypto infrastructure for AI agents. I write daily about Web3, x402, and the agent economy.&lt;/em&gt;&lt;/p&gt;

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