An agent tries to book you
It lands on your profile, can’t parse your prices, and DMs a human who answers nine hours later. The agent already moved on.
List your offerings once — sessions, packages, APIs, or digital goods. Agents discover your @you, settle via HTTP 402, and credit your balance. Humans book & pay the same SKU. Toggle Collect on or wire the API — no merchant account.
HTTP 402 + x402 settle. Coinbase, Cloudflare, MetaMask, AWS, and any client that speaks x402 can pay your catalog. Humans finish on the same SKU with Vybe Wallet, MetaMask, or a verified on-chain transfer.
Base USDC supports x402 PAYMENT-SIGNATUREvia the Coinbase facilitator. USDC & USDT on Base, Ethereum, and BNB Chain settle with a verified txHash.
Collect is live protocol, not a waitlist. Agents get HTTP 402 + PAYMENT-REQUIRED, settle USDC or USDT, and credit the same wallet a human pays into. Mobile team: use /mobiledocs.
curl https://vybe.finance/api/agent/collect/{username}Cloudflare, Coinbase and Stripe are handing agents money to spend. Every one of those dollars needs somewhere to land—and right now it lands in DMs, invoices and merchant-account queues. The agent gives up, and the sale never happens.
It lands on your profile, can’t parse your prices, and DMs a human who answers nine hours later. The agent already moved on.
Charging for it means card acquiring, a merchant account and a billing integration—weeks of work before the first cent arrives.
A separate wallet, a separate dashboard, a separate reconciliation job—for income you already track in one place.
Individuals get paid without writing a line of code. Businesses wire Collect into their own product. Both settle into the same Vybe balance.
Your Vybe service page already lists sessions, packages and retainers. Collect turns it into a machine-readable catalog agents can read and pay—no keys, no server, no merchant account.
Setup takes about five minutes. Turn it off whenever you want.
Put express-vybe-402 on the routes you want paid. Callers hit HTTP 402, settle USDC or USDT on a supported network, retry, and your handler runs. Optional keys and webhooks for catalog + fulfillment.
Think Stripe for programmatic access—not Stripe Checkout for your homepage.
Agent wallets are the spend side. Collect is where that money lands when the work—or the API—is yours.
A research agent needs a 60-minute audit. It reads /a/@you, pays the listed price in USDC, and the intent shows up beside your human clients.
No DM. No invoice chase. Session is paid before you open Zoom.
Your critique, retainer or delivery package is already on the service page. Collect makes it machine-readable—agents buy the SKU, humans still use /s/@you.
One catalog. Two kinds of buyers. Same balance.
Wrap an endpoint with express-vybe-402. The agent hits HTTP 402, settles on Base, retries, and your webhook fires when it’s paid.
Cloudflare gives them a wallet to spend. You collect on the response.
Publish offerings under one @brand. Ops agents and human clients book from the same list—retainers, audits, impl sprints—without a second billing stack.
Agent revenue lands next to client revenue. Cash out the same way.
A fixed amount, a pay-to address on Base, and a link a human could finish instead. Whoever pays, the money lands in the same balance.
Agent checkout
@alex · 60 min · Loom or live
Fixed amount · an agent settles on Base or a human pays the same link
Same object behind your /r/ links—amount, fee, memo, expiry. Nothing new to reconcile.
Vybe verifies the transfer on Base, Ethereum, or BNB Chain before anything is marked paid.
Agent income sits beside client income and cashes out on the same rails.
Same intent, two payers. If the agent stalls, the buyer can open /r/Vh3xR2mQ and finish it by hand.
No merchant account. No card acquiring. No code. The offerings you already publish become a catalog agents can buy from.
Add sessions, packages or retainers on your Vybe service page.
Toggle “Accept payments from AI agents.” Your catalog goes live at /a/@you.
They read your catalog, get a 402 intent, settle in USDC—your balance moves.
This is pay-per-call for agents and scripts—not a drop-in checkout for your marketing site. Humans still buy on /s/@you. Your API uses HTTP 402.
Pay-per-call (or pay-per-route) access for agents and programmatic clients—not a card checkout page for shoppers.
npm i express-vybe-402 on your API server. Point it at your Vybe @username and an offering id from your Collect catalog.
First hit → HTTP 402 with payment details. They settle USDC or USDT on Base, Ethereum, or BNB (x402 or tx hash). Retry with X-Vybe-Public-Id → your code runs.
Your Vybe balance—same as human payment requests. Optional payment.paid webhook for fulfillment.
Protocol vybe-agent-collect v0.1: HTTP 402 Payment Required (x402-shaped), settle with a txHash, or poll until paid. Human fallback lives at /r/….
BASE=https://vybe.finance/api/agent/collect/alex
# 1. Discover offerings
curl $BASE
# 2. Start checkout (returns HTTP 402)
curl -X POST $BASE/svc_9fQ2Kd
# 3a. x402 clients retry with PAYMENT-SIGNATURE (facilitator settles)
# curl -X POST $BASE/svc_9fQ2Kd -H "PAYMENT-SIGNATURE: <base64>"
# 3b. Or after a USDC/USDT transfer on Base, Ethereum, or BNB — settle with txHash
curl -X POST $BASE/svc_9fQ2Kd/status \
-H 'Content-Type: application/json' \
-d '{"publicId":"Vh3xR2mQ","txHash":"0x…","chain":"base"}'
# 4. Or poll until paid
curl "$BASE/svc_9fQ2Kd/status?publicId=Vh3xR2mQ"HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: <base64 x402 v2>
{
"protocol": "vybe-agent-collect",
"version": "0.1",
"x402Version": 1,
"accepts": [
{ "network": "eip155:8453", "asset": "USDC on Base", "…" },
{ "network": "eip155:1", "asset": "USDC on Ethereum", "…" },
{ "network": "eip155:56", "asset": "USDT on BNB", "…" }
],
"vybe": {
"publicId": "Vh3xR2mQ",
"requestUrl": "https://vybe.finance/r/Vh3xR2mQ",
"statusUrl": "https://vybe.finance/api/agent/…/status",
"expiresAt": "2026-08-08T18:04:11.000Z"
}
}One Bearer key manages the same catalog your service page shows. When an agent settles, we verify the transfer on Base and POST you a signed event—so your fulfilment runs without anyone watching a dashboard.
# Create / rotate a server key
POST /api/collect/v1/credentials
# Upsert offerings + enable Collect
PUT /api/collect/v1/offerings
Authorization: Bearer vybe_col_…
# Register your webhook
PUT /api/collect/v1/webhook
{ "url": "https://you.com/hooks/vybe" }POST https://you.com/hooks/vybe
X-Vybe-Signature: sha256=…
{
"type": "payment.paid",
"publicId": "Vh3xR2mQ",
"offeringId": "svc_9fQ2Kd",
"amount": "150.00",
"token": "usdc",
"settlementTxHash": "0x…"
}express-vybe-402 sits on the routes you choose. Unpaid requests never reach your handler: the middleware returns 402 with a Collect intent, then calls next() only after status is paid.
import express from "express";
import { requireVybePayment } from "express-vybe-402";
const app = express();
// Agents get HTTP 402 until they pay for this route.
app.get(
"/v1/insights",
requireVybePayment({
username: "alex",
offeringId: "svc_9fQ2Kd",
}),
(req, res) => res.json({ data: buildInsights() }),
);
// The agent retries with the settled intent:
// X-Vybe-Public-Id: Vh3xR2mQGET /api/agent/collect/{username}POST …/{offeringId} → HTTP 402 + PAYMENT-REQUIREDPAYMENT-SIGNATURE retry, or POST …/status with txHashAgents can only spend
Agents can pay you directly
Prices buried in a DM or a PDF
Machine-readable catalog at /a/@you
Merchant account, card acquiring, KYC queue
One toggle, live in about five minutes
Custom billing code on every endpoint
One middleware: express-vybe-402
A second crypto dashboard to reconcile
One balance for agents and people
No. Individuals never touch a wallet. Agents settle in USDC or USDT on Base, Ethereum, or BNB, you see dollars in your Vybe balance, and you cash out on the same rails as the rest of your income.
Nothing is owed until it settles. The intent is an ordinary Vybe payment request with an expiry—if the agent stalls, a human can open the same /r/ link and finish it by hand.
Vybe checks the USDC or USDT transfer on Base, Ethereum, or BNB against the expected amount and pay-to address before marking the request paid. Only then does your balance move and your payment.paid webhook fire.
Yes. Collect returns HTTP 402 with a PAYMENT-REQUIRED header and JSON accepts[] for USDC and USDT on Base (eip155:8453), Ethereum, and BNB Chain. Base USDC supports facilitator PAYMENT-SIGNATURE settle; any listed rail can settle via txHash (or a human finishes at /r/…).
No. Stripe Checkout is for humans paying with cards on a site. express-vybe-402 gates API routes: callers get HTTP 402, pay USDC or USDT on a supported network, then retry. Use your Vybe service page (/s/@you) for human checkout; use the middleware when you want agents or scripts to pay per call.
Create a Collect offering (the price), wrap the Express route with requireVybePayment({ username, offeringId }), and ship. Unpaid traffic never reaches your handler. After settle, you get a paid status (and optional webhook). Money credits your Vybe balance—no separate merchant dashboard.
Monetization Gateway monetizes sites and APIs already behind Cloudflare. Collect is for freelancers and businesses on Vybe: a toggle on your @username service page, the same balance humans already pay into. They can coexist—agents spend from wallets; you get paid here.
No merchant account, no setup fee, no monthly fee. Agent bookings carry the same small platform fee as any other Vybe payment request.
No. The API extends the offerings your service page already publishes, so humans and agents buy from one source of truth instead of two.
Any time. Flip the toggle and your catalog stops serving offerings—open intents simply expire.
Want the long version? Browse all FAQs
Your handle is the main move. Join the list only if you want express-vybe-402 release notes and agent-wallet partner intros.
Wallets are for spending. Your @ is for collecting. Free to claim, live in about five minutes, one balance for people and bots.
Free · ~5 minutes · turn Collect on after you publish