✓ Verified 💻 Development ✓ Enhanced Data

Payspawn

Add spending controls to any AI agent that makes API payments.

Rating
4.1 (232 reviews)
Downloads
2,685 downloads
Version
1.0.0

Overview

Add spending controls to any AI agent that makes API payments.

Complete Documentation

View Source →

PaySpawn — Agent Payment Controls

Set spending limits for AI agents that make payments autonomously. Limits are enforced at the smart contract level on Base — not in software, not on a server. The contract cannot be overridden.

Install

bash
npm install @payspawn/sdk

Credential Setup (One Human Step)

Before the agent can make payments, the wallet owner must create a credential:

  • Go to payspawn.ai/dashboard
  • Connect your wallet (MetaMask, Coinbase Wallet, or any USDC wallet on Base)
  • Approve a USDC spending ceiling (one on-chain transaction, ~$0.005 gas)
  • Set limits: daily cap, per-transaction cap, optional address whitelist
  • Sign the credential (EIP-712 signature — no gas, no transaction)
  • Copy the credential string and set it as PAYSPAWN_CREDENTIAL in your environment
The credential is not a private key. Your wallet key never leaves your control. The agent can only spend within the limits you set — the contract enforces this and cannot be bypassed.

Usage

typescript
import { PaySpawn } from "@payspawn/sdk";
const ps = new PaySpawn(process.env.PAYSPAWN_CREDENTIAL);

// Auto-pay x402 APIs within your set limits
const res = await ps.fetch("https://api.example.com/endpoint");

// Send a payment
await ps.pay("0xRecipientAddress", 1.00);

// Check balance and remaining daily allowance
const { balance, remaining } = await ps.check();

// Pause all payments instantly (on-chain, immediate effect)
await ps.agent.pause();

// Resume payments
await ps.agent.unpause();

Fleet Mode

Provision multiple agent credentials from one shared pool. One wallet funds the pool; each agent gets its own credential with its own daily limit.

typescript
// Create a shared budget pool
const pool = await ps.pool.create({ totalBudget: 100, agentDailyLimit: 10 });

// Fund the pool: send USDC to pool.address from your wallet

// Provision credentials for each agent
const fleet = await ps.fleet.provision({ poolAddress: pool.address, count: 10 });
// fleet[0], fleet[1], ... → credential strings, one per agent

Contract Enforcement

Every payment is checked by the PaySpawn V5 contract on Base before any USDC moves:

  • Daily allowance exceeded → transaction reverts
  • Amount exceeds per-tx cap → transaction reverts
  • Recipient not on whitelist → transaction reverts
No API override. No config flag. Math runs first, every time.

Contract address (Base Mainnet): 0xaa8e6815b0E8a3006DEe0c3171Cf9CA165fd862e USDC (Base): 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Links

Installation

Terminal bash

openclaw install payspawn
    
Copied!

💻Code Examples

npm install @payspawn/sdk

npm-install-payspawnsdk.txt
## Credential Setup (One Human Step)

Before the agent can make payments, the wallet owner must create a credential:

1. Go to [payspawn.ai/dashboard](https://payspawn.ai/dashboard)
2. Connect your wallet (MetaMask, Coinbase Wallet, or any USDC wallet on Base)
3. Approve a USDC spending ceiling (one on-chain transaction, ~$0.005 gas)
4. Set limits: daily cap, per-transaction cap, optional address whitelist
5. Sign the credential (EIP-712 signature — no gas, no transaction)
6. Copy the credential string and set it as `PAYSPAWN_CREDENTIAL` in your environment

The credential is not a private key. Your wallet key never leaves your control. The agent can only spend within the limits you set — the contract enforces this and cannot be bypassed.

## Usage

await ps.agent.unpause();

await-psagentunpause.txt
## Fleet Mode

Provision multiple agent credentials from one shared pool. One wallet funds the pool; each agent gets its own credential with its own daily limit.
example.ts
import { PaySpawn } from "@payspawn/sdk";
const ps = new PaySpawn(process.env.PAYSPAWN_CREDENTIAL);

// Auto-pay x402 APIs within your set limits
const res = await ps.fetch("https://api.example.com/endpoint");

// Send a payment
await ps.pay("0xRecipientAddress", 1.00);

// Check balance and remaining daily allowance
const { balance, remaining } = await ps.check();

// Pause all payments instantly (on-chain, immediate effect)
await ps.agent.pause();

// Resume payments
await ps.agent.unpause();
example.ts
// Create a shared budget pool
const pool = await ps.pool.create({ totalBudget: 100, agentDailyLimit: 10 });

// Fund the pool: send USDC to pool.address from your wallet

// Provision credentials for each agent
const fleet = await ps.fleet.provision({ poolAddress: pool.address, count: 10 });
// fleet[0], fleet[1], ... → credential strings, one per agent

Tags

#web_and-frontend-development #api

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author adambrainai
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install payspawn