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://ouhttp://. 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 statuspour vérifier, voir la skillauthenticate-wallet) - Le portefeuille doit avoir un solde USDC suffisant (
npx awal@2.8.2 balancepour vérifier) - Si vous ne connaissez pas l'URL de l'endpoint, utilisez la skill
search-for-servicepour trouver les services en premier
Gestion des erreurs
- "Not authenticated" - Exécutez d'abord
awal auth login <email>, ou consultez la skillauthenticate-wallet - "No X402 payment requirements found" - L'URL peut ne pas être un endpoint x402 ; utilisez
search-for-servicepour trouver les endpoints valides - "Insufficient balance" - Alimenter le portefeuille avec USDC ; voir la skill
fund