Heurist Logo
Back to Skill Marketplace
coinbase

pay-for-service

VerifiedCryptoaccess level:high

Make a paid API request to an x402 endpoint with automatic USDC payment. Use when you or the user want to call a paid API, make an x402 request, use a paid service, or pay for an API call. Use after finding a service with search-for-service.

Install

npx @heurist-network/skills add pay-for-service

Installs

0

Stars

85

Timeline

Updated Mar 18, 2026

Created Mar 18, 2026

Verification

Reviewed and verified

SHA256: 4f8bf198dd4168e5...

Approved Mar 18, 2026 by admin

Access Level

high

Required Permissions

Signs TransactionsPortfolio Access

Files (1)

SKILL.md

Summary

allowed-tools
Bash(npx [email protected] status*)Bash(npx [email protected] balance*)Bash(npx [email protected] x402 pay *)
user-invocable
Yes
disable-model-invocation
No

SKILL.md

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