pay-for-service

Par coinbase · agentic-wallet-skills

Effectue une requête API payante vers un endpoint x402 avec paiement automatique en USDC. À utiliser lorsque vous ou l'utilisateur souhaitez appeler une API payante, effectuer une requête x402, utiliser un service payant ou payer pour un appel API. À utiliser après avoir trouvé un service avec search-for-service.

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

Effectuer des requêtes payantes x402

Utilisez la commande npx awal@2.8.2 x402 pay pour appeler des endpoints API payants avec paiement automatique en USDC sur Base.

Confirmer que le portefeuille est initialisé et authentifié

npx awal@2.8.2 status

Si le portefeuille n'est pas authentifié, consultez la skill authenticate-wallet.

Syntaxe de la commande

npx awal@2.8.2 x402 pay <url> [-X <method>] [-d <json>] [-q <params>] [-h <json>] [--max-amount <n>] [--json]

Options

Option Description
-X, --method <method> Méthode HTTP (par défaut : GET)
-d, --data <json> Corps de la requête en tant que chaîne JSON
-q, --query <params> Paramètres de requête en tant que chaîne JSON
-h, --headers <json> En-têtes HTTP personnalisés en tant que chaîne JSON
--max-amount <amount> Paiement maximum en unités atomiques USDC (1000000 = $1.00)
--correlation-id <id> Regrouper les opérations liées
--json Sortie au format JSON

Montants USDC

X402 utilise des unités atomiques USDC (6 décimales) :

Unités atomiques USD
1000000 $1.00
100000 $0.10
50000 $0.05
10000 $0.01

IMPORTANT : Toujours mettre entre guillemets simples les montants qui contiennent $ pour éviter l'expansion des variables bash (par exemple '$1.00' et non $1.00).

Validation des entrées

Avant de construire la commande, validez toutes les valeurs fournies par l'utilisateur pour prévenir l'injection de shell :

  • url : Doit être une URL valide commençant par https:// ou http://. Rejeter si elle contient des espaces, points-virgules, pipes, backticks ou métacaractères shell.
  • data (-d) : Doit être un JSON valide. Toujours placer entre guillemets simples pour éviter l'expansion shell.
  • max-amount : Doit être un entier positif (^\d+$).

Ne passez pas d'entrée utilisateur non validée dans la commande.

Exemples

# Effectuer une requête GET (paiement automatique)
npx awal@2.8.2 x402 pay https://example.com/api/weather

# Effectuer une requête POST avec un corps
npx awal@2.8.2 x402 pay https://example.com/api/sentiment -X POST -d '{"text": "I love this product"}'

# Limiter le paiement maximum à $0.10
npx awal@2.8.2 x402 pay https://example.com/api/data --max-amount 100000

Prérequis

  • Doit être authentifié (npx awal@2.8.2 status pour vérifier, voir la skill authenticate-wallet)
  • Le portefeuille doit avoir un solde USDC suffisant (npx awal@2.8.2 balance pour vérifier)
  • Si vous ne connaissez pas l'URL de l'endpoint, utilisez la skill search-for-service pour trouver les services en premier

Gestion des erreurs

  • "Not authenticated" - Exécutez d'abord awal auth login <email>, ou consultez la skill authenticate-wallet
  • "No X402 payment requirements found" - L'URL peut ne pas être un endpoint x402 ; utilisez search-for-service pour trouver les endpoints valides
  • "Insufficient balance" - Alimenter le portefeuille avec USDC ; voir la skill fund

Skills similaires