From Vendure to WooCommerce..
Crypto checkout is a solved problem. Dozens of payment gateways let customers pay with crypto at checkout. But what happens after the sale? How does the marketplace operator pay their vendors? How does a store owner pay suppliers?
That's the side of e-commerce payments nobody's building for. So we did.
Payouts, Not Checkout
Most crypto-in-commerce projects focus on the buy side: let a customer pay with ETH or USDC at checkout. That's fine, but it's competing with credit cards — and credit cards are really, really good at checkout.
The payout side is different. When a marketplace has 50 vendors and needs to distribute last week's earnings, they're dealing with bank transfers, payment processors taking percentage cuts, international wire fees, and settlement times measured in days. For vendors in countries where traditional banking is unreliable or expensive, it's even worse.
USDC batch payouts solve this cleanly: one on-chain transaction, all recipients paid simultaneously, settled in seconds, verifiable on-chain. The Spraay batch contract on Base handles up to 200 recipients per call. Gas costs are a fraction of what wire transfers charge.
We built payout plugins for two major open-source e-commerce platforms to prove this works in practice.
Vendure: The First Plugin
Vendure is a headless e-commerce framework built on Node.js and TypeScript. It's popular with developers building custom marketplace experiences.
Our @plagtech/vendure-spraay-plugin adds a payout workflow to the Vendure admin panel. When a marketplace operator is ready to distribute earnings, they select the vendors, review the amounts, and approve the batch. The plugin calls the Spraay gateway, which returns an unsigned transaction. The operator signs it with their own wallet — we never touch their keys — and the batch settles on Base.
The plugin is published on npm and we've submitted it to the Vendure Hub for listing.
Key design decision: the plugin is non-custodial. Plagtech never holds funds. The operator's wallet signs the transaction directly. We facilitate the batching, not the custody.
WooCommerce: Going Where the Merchants Are
Vendure is developer-friendly but niche. WooCommerce powers over 35% of all online stores. If we wanted batch payouts to reach real merchants, WooCommerce was the obvious next target.
But WooCommerce runs on PHP and WordPress. Our gateway is a Node.js service. We weren't about to ask WordPress hosts to run Node.
The architecture we landed on: a thin PHP plugin that calls the Spraay REST gateway over HTTP. The plugin handles the WordPress admin UI — settings pages, payout history, batch management — and the gateway handles the crypto. No Node.js dependency on the merchant's hosting.
The plugin works for two audiences: single-store owners paying suppliers, and multi-vendor marketplace operators distributing to vendors. We deliberately avoided requiring any specific multi-vendor plugin (Dokan, WCFM, etc.) as a dependency. The plugin reads WooCommerce's native order data and lets the operator define recipients.
The Auth Problem
Our gateway uses x402 — HTTP-native payment authentication. That's great for machine-to-machine scenarios, but a WordPress plugin can't pay an x402 challenge on every API call. Merchants need a simpler auth flow.
So we shipped API key authentication on the gateway side. B2B clients get an API key (prefixed sk_spraay_ so it's easy to identify in config files), pass it in an X-API-Key header, and skip the x402 challenge entirely. The gateway extends its existing key infrastructure with B2B-specific columns. Revenue comes from the same 0.3% on-chain protocol fee — no separate subscription or API pricing.
This was a gateway-level change that benefits any future integration, not just WooCommerce.
Production Tested
We didn't ship this with only unit tests. We ran a full production test: a local WordPress install (via LocalWP), the plugin installed and configured, connected to the live Spraay gateway on Base mainnet.
We triggered a real batch payout from the WordPress admin panel. Real USDC moved on-chain — 1 USDC to a recipient, 0.003 fee, settled on Base. The transaction confirmed and the plugin correctly reconciled the result by checking the on-chain receipt.
Two bugs surfaced during the live test and we fixed them on the spot: a null array crash in the order ID handling, and a unit mismatch between human-readable decimals and base-unit amounts. The kind of stuff you only catch by actually running money through the system.
Submitted and Waiting
The WooCommerce plugin is submitted to the WordPress.org plugin directory. We're waiting on reviewer approval. Once it's listed, any WooCommerce store can install it and start batching USDC payouts to their vendors or suppliers.
We also published a ClawHub skill for it — AI agents can now help merchants configure and run batch payouts through the plugin.
What's Next
WooCommerce and Vendure aren't the end. Medusa.js is on our list as the next e-commerce integration target. The pattern is the same every time: thin plugin on the platform side, heavy lifting on the gateway, non-custodial signing, batch settlement on Base.
The long-term play is straightforward: if you run an online marketplace and you need to pay people, you should be able to do it in one transaction, settled in seconds, for a fraction of what traditional payment processors charge.
Spraay Protocol is multi-chain batch payment infrastructure built by Plagtech. The WooCommerce plugin is pending at WordPress.org. The Vendure plugin is live on npm. Learn more at spraay.app.
Top comments (0)