PayPal's Agent Toolkit with limits on refunds and the owner's Approve/Deny above them.
Give your agents a wallet without giving them a blank cheque:
npm i presign-guard-walletpip install fizzlnpm i fizzl-langchainnpm i presign-guard-ai-sdknpm i presign-guard-agentkitnpm i presign-guard-solana-agent-kitnpx -y presign-guard-wallet-mcp@0.20.0npm i presign-guard-payer-screennpm i fizzl-paypal-guard · live demo · videonpx -y fizzl-paypal-guard-mcpSee the dashboard live (demo, example data) →
Agent skills that teach Claude Code, Codex, Cursor and other agents to use the wallet and the Fizzl checks: Fizzl13/fizzl-skills.
import { guardWallet } from "presign-guard-wallet";
const wallet = guardWallet(walletClient, {
pay, // a fetch that pays x402, or creditKey for prepaid presign-guard checks
server: { url: process.env.WALLET_SERVER_URL, key: process.env.WALLET_SERVER_KEY },
});
// Under your price: signs. Above it: you get a request on the dashboard and on Telegram.
// Red verdict: never signed. Server unreachable: stops instead of signing.
Try it from your phone: Actions → telegram-demo → Run workflow (a pretend agent, a stub wallet, no money moves).
Small, open examples of AI agents combining paid APIs with x402: each call is paid per request in USDC, with no accounts or API keys.
| Example | What it does | Services | Cost per run |
|---|---|---|---|
| wallet-mcp | MCP server presign-guard-wallet-mcp: wallet tools for any MCP client (pay x402 APIs, send USDC), every signature checked by presign-guard and kept to spending limits, Telegram or wallet-server approval above them | presign-guard | $0.01 per checked signature (or prepaid credits) |
| fizzl-py | PyPI package fizzl: the four checks for Python agents (requests + x402), plus LangChain tools | presign-guard, x402 Doctor | $0.001 to $0.02 per check (or prepaid credits) |
| fizzl-langchain | npm package fizzl-langchain: the five checks as LangChain.js tools, for LangChain and LangGraph agents | presign-guard, x402 Doctor | $0.001 to $0.02 per check (or prepaid credits) |
| ai-sdk-guard | npm package presign-guard-ai-sdk: four Vercel AI SDK tools (check before signing, token check, wallet approvals, endpoint preflight) | presign-guard, x402 Doctor | $0.001 to $0.02 per check (or prepaid credits) |
| agentkit-guard | npm package presign-guard-agentkit: wraps a Coinbase AgentKit wallet provider so every spending action is checked by presign-guard and kept to spending limits, with Telegram or wallet-server approval above them | presign-guard | $0.01 per checked signature (or prepaid credits) |
| solana-agent-kit-guard | npm package presign-guard-solana-agent-kit: wraps a Solana Agent Kit wallet so every transaction is checked by presign-guard (decoded and simulated) and kept to SOL and USDC limits, with Telegram or wallet-server approval above them | presign-guard | $0.01 per checked transaction (or prepaid credits) |
| paypal-guard | npm package fizzl-paypal-guard: limits, checks and Telegram approval between an AI agent and PayPal's Agent Toolkit (refunds, disputes, cancellations, invoices) | PayPal (read-only lookups), TypeSafe Jev (optional) | free |
| paypal-guard-mcp | MCP server fizzl-paypal-guard-mcp: PayPal's Agent Toolkit for any MCP client, every call that moves money checked by fizzl-paypal-guard, approval on Telegram, the Fizzl wallet or in the chat app above the limits | PayPal (your own REST app) | free |
| guard-wallet | npm package presign-guard-wallet: a viem wallet that asks presign-guard before every signature, keeps to spending limits and asks you on Telegram above them | presign-guard | $0.01 per checked signature (or prepaid credits) |
| crowding-check | Perp funding + CFTC leveraged-fund positioning + the Ichimoku cloud on 4h and 1d, combined into a short read ("crowded long + below the cloud = caution") | Edge Agents, Ichimoku Signal | $0.32 |
| p0-guard | Project 0 builds an unsigned Solana transaction (deposit, borrow, loop and more), presign-guard checks every step (decoded, simulated, accounts screened), and the agent's wallet signs and sends only on green (--send) | Project 0, presign-guard | $0.01 per checked step |
| token-check | Before buying, holding or accepting a token: a verdict (go / ask / stop) with reasons and market data, Solana and EVM tokens; pays on Solana or Base | presign-guard | $0.01 |
| payer-screen | npm package presign-guard-payer-screen: for sellers. Express middleware that screens who pays your x402 API against the OFAC SDN list before the payment settles (EVM, Solana, Algorand, XRP Ledger); a listed payer gets 451 and is never charged | presign-guard open list (free) | free |
| safe-fetch | npm package x402-safe-fetch: the safe-pay logic as a drop-in fetch for your own agent (preflight, go / caution / no_go, budget cap, trusted hosts, 10-minute verdict cache) | x402 Doctor + the endpoint | $0.001 + the endpoint |
| safe-pay | Before paying an x402 endpoint it has never used, the agent pays $0.001 for a preflight and pays only on go, within a budget | x402 Doctor + the endpoint | $0.001 + the endpoint |
Each example has a --dry-run that shows the prices without paying. Use a dedicated wallet with a little USDC, keep its key in your environment, and never commit it.
Check your own x402 endpoint for free with x402 Doctor.
These are examples of combining services, not trade advice.
MIT (see LICENSE), except wallet-server/, which is AGPL-3.0-only (see wallet-server/LICENSE). The packages you install in your own agent (guard-wallet, wallet-mcp, safe-fetch, the framework guards and the rest) are MIT.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y fizzl-paypal-guard-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-fizzl13-paypal-guard": {
"command": "npx",
"args": [
"-y",
"fizzl-paypal-guard-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencefizzl-paypal-guard-mcpnpmPayPal, guarded works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.