payper-ai
v0.1.0
Published
Vercel AI SDK tools that let any agent rent GPUs and pay per second in USDG over x402 on Robinhood Chain.
Maintainers
Readme
payper-ai
Vercel AI SDK tools that let any agent rent real GPUs and pay per second in USDG over x402 on Robinhood Chain — one wallet, no account, no KYC.
npm install payper-aiai, viem, and zod come along (ai is a peer dependency you already have).
Use it
Add the tools to any generateText / streamText call and your agent can rent
GPUs on its own:
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";
import { payperTools } from "payper-ai";
const result = await generateText({
model: openai("gpt-4o"),
prompt: "Rent me an H100 for an overnight fine-tune, budget $5.",
tools: payperTools({ walletKey: process.env.PAYPER_WALLET_KEY }),
stopWhen: stepCountIs(5), // let the model call list_gpus then rent_gpu
});
console.log(result.text);Built for AI SDK v5+ (tools use
inputSchema). If you're still on v4, upgrade — that's where the modern tool API lives.
That's it — the model calls list_gpus, then rent_gpu, and you get back a live
pod with an access code.
Configuration
payperTools(opts) accepts:
| Option | Default | Meaning |
|---|---|---|
| walletKey | process.env.PAYPER_WALLET_KEY | 0x… private key of a wallet holding USDG on Robinhood Chain (chain 4663). It signs payments (gasless — Payper pays the gas). |
| gateway | process.env.PAYPER_GATEWAY → https://app.payperlabs.com | Payper gateway URL. |
Use a dedicated agent wallet, not your main one, and keep only what you want the agent to be able to spend.
Tools
| Tool | What it does |
|---|---|
| list_gpus | Live catalog of GPUs + per-hour USD prices |
| rent_gpu | Rent one. Signs a gasless USDG payment up to maxUsd, returns an access code + connection details. Charged only for seconds used. |
| check_session | State, connection details, and spend for a session |
| stop_session | Stop and refund the unused USDG automatically |
How it works
rent_gpu runs the whole x402 flow for the agent: it requests a GPU, receives an
HTTP 402 with the price, signs one EIP-3009 authorization for the cap (gasless),
and retries. Unused balance is refunded on stop_session. No account, no card, no
invoice — just a wallet.
Direct use (no LLM)
The raw flows are exported too, if you want to rent from plain code:
import { makeClient } from "payper-ai";
const payper = makeClient({ walletKey: process.env.PAYPER_WALLET_KEY });
const gpus = await payper.listGpus();
const session = await payper.rentGpu("rtx-3060", 2);Related
- payper-mcp — the same capability for MCP clients (Claude Desktop, Cursor, Cline)
- Docs: https://payperlabs.com/docs.html
MIT © Payper
