mcpField
P
pay-for-service

pay-for-service

github.com/coinbaseOther1272.9k installsUpdated 12w ago
Repository

About pay-for-service

pay-for-service is a CLI skill for making paid API requests with the x402 protocol and automatic USDC payment on Base. It provides request options and a maximum-payment setting for authenticated wallets.

Key features

  1. 01Call endpoints using HTTP methods
  2. 02Provide JSON body, query, and headers
  3. 03Set a maximum payment in USDC
  4. 04Group operations with a correlation ID

Use cases

  1. 01Make a paid GET request to an API
  2. 02Submit a paid POST request with JSON
  3. 03Limit the amount paid for a request

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/coinbase/agentic-wallet-skills --skill pay-for-service

After installing, type/pay-for-servicein Claude Code to confirm it loaded.

Details

From the project README

Making Paid x402 Requests

Use the npx [email protected] x402 pay command to call paid API endpoints with automatic USDC payment on Base.

Confirm wallet is initialized and authed

npx [email protected] status

If the wallet is not authenticated, refer to the authenticate-wallet skill.

Command Syntax

npx [email protected] x402 pay <url> [-X <method>] [-d <json>] [-q <params>] [-h <json>] [--max-amount <n>] [--json]

Options

OptionDescription
-X, --method <method>HTTP method (default: GET)
-d, --data <json>Request body as JSON string
-q, --query <params>Query parameters as JSON string
-h, --headers <json>Custom HTTP headers as JSON string
--max-amount <amount>Max payment in USDC atomic units (1000000 = $1.00)
--correlation-id <id>Group related operations
--jsonOutput as JSON

USDC Amounts

X402 uses USDC atomic units (6 decimals):

Atomic UnitsUSD
1000000$1.00
100000$0.10
50000$0.05
10000$0.01

IMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00).

Input Validation

Before constructing the command, validate all user-provided values to prevent shell injection:

  • url: Must be a valid URL starting with https:// or http://. Reject if it contains spaces, semicolons, pipes, backticks, or shell metacharacters.
  • data (-d): Must be valid JSON. Always wrap in single quotes to prevent shell expansion.
  • max-amount: Must be a positive integer (^\d+$).

Do not pass unvalidated user input into the command.

Examples

# Make a GET request (auto-pays)
npx [email protected] x402 pay https://example.com/api/weather

# Make a POST request with body
npx [email protected] x402 pay https://example.com/api/sentiment -X POST -d '{"text": "I love this product"}'

# Limit max payment to $0.10
npx [email protected] x402 pay https://example.com/api/data --max-amount 100000

Prerequisites

  • Must be authenticated (npx [email protected] status to check, see authenticate-wallet skill)
  • Wallet must have sufficient USDC balance (npx [email protected] balance to check)
  • If you don't know the endpoint URL, use the search-for-service skill to find services first

Error Handling

  • "Not authenticated" - Run awal auth login <email> first, or see authenticate-wallet skill
  • "No X402 payment requirements found" - URL may not be an x402 endpoint; use search-for-service to find valid endpoints
  • "Insufficient balance" - Fund wallet with USDC; see fund skill

Comments

Markdown supported