The problem
The payment stack ends where autonomous software begins.
Cards were built for humans
Chargebacks, fraud review, and monthly statements assume a person on both sides of every transaction. An autonomous agent has no wallet to reach for and no signature to give.
Agents transact in milliseconds and micro-amounts
An agent negotiates, buys, and settles thousands of times an hour, often for fractions of a cent. Card networks flag that behavior as fraud and price it out of existence.
Every API call is a payment event
Compute, tokens, bandwidth, and data rows all carry a unit cost. Legacy rails cannot price a request worth a tenth of a cent, so that value moves on invoices weeks later.
Why Bitcoin
Machines need money they can hold.
PayBots settles in bitcoin and nothing else. Sats price the request, Lightning moves them, and the ledger keeps the record.
Final settlement
A Lightning payment clears in seconds and never reverses. Chargebacks stop existing at the protocol level, so machine counterparties trade without trust.
Micro-amounts are native
One bitcoin divides into one hundred million sats. A single API call gets an exact price, with no minimum fee and no rounding.
Open to software
No bank account, no card network, no geography. Any agent that holds keys can hold and spend sats, and any endpoint can charge them.
How it works
Three moving parts. One settlement layer.
Issue a spending identity
Give an agent its own payment identity with programmable limits. Per call, per hour, per counterparty, per category. The rules live in the rail, so the agent cannot overspend.
Pay per call
The agent settles each request over Lightning at the moment of use. An invoice arrives, sats move, and the response unlocks inside the same round trip.
Audit everything
The owner audits every satoshi in a real-time ledger. Each entry carries the counterparty, the invoice, the preimage, and the exact request it paid for.
L402 over Lightning
HTTP reserved 402 Payment Required in 1997. PayBots gives it a job.
A metered endpoint answers with a Lightning invoice, the agent pays it inside its programmed limits, and the retry carries the preimage as proof of payment. Settlement is final the moment it clears, and every hop lands on the ledger.
import { PayBots } from "@paybots/agent";
// A spending identity with hard limits, denominated in sats
const wallet = new PayBots({
token: process.env.PAYBOTS_AGENT_TOKEN,
limits: { perCall: "500 sats", perDay: "250000 sats" },
});
// 1. Call a metered endpoint
let res = await fetch("https://api.vendor.com/v1/inference", {
method: "POST",
headers: { Authorization: "Bearer " + wallet.token },
body: JSON.stringify({ prompt }),
});
// 2. The vendor prices the request and responds 402 Payment Required
if (res.status === 402) {
// L402 challenge: a macaroon plus a Lightning invoice for 420 sats
const challenge = res.headers.get("WWW-Authenticate");
// 3. Pay the invoice over Lightning, inside the wallet's limits
const { macaroon, preimage } = await wallet.payL402(challenge);
// 4. Retry with the preimage as proof of payment
res = await fetch("https://api.vendor.com/v1/inference", {
method: "POST",
headers: {
Authorization: "L402 " + macaroon + ":" + preimage,
},
body: JSON.stringify({ prompt }),
});
}
const data = await res.json(); // paid in sats, on the ledger
Use cases
Machine-speed commerce shows up everywhere agents do.
API monetization
Price every endpoint in sats. Agents pay at request time, revenue settles finally, and the billing portal disappears from the stack.
Agent-to-agent commerce
Agents hire other agents. A research agent pays a scraping agent per page and a summarization agent per token, all in sats on one ledger.
Compute marketplaces
GPU minutes, sandbox seconds, and inference batches get priced in sats and settled at the moment of use. Idle capacity becomes a market.
Data licensing
Datasets earn sats per row and per query. Owners set the price once and the ledger records every read by every agent.
Get on the rails early.
PayBots is pre-launch. Join the waitlist for build updates and first access when the rails open.