accepts, et comment PAYMENT-SIGNATURE transforme la même requête API en requête payée.
Préparatifs
Vous devez préparer :
L’appel X402 à l’API Ace Data Cloud ne nécessite pas de jeton API. La première requête du SDK ne contient pas
Authorization, la passerelle renverra 402 Payment Required et les exigences de paiement ; le SDK réessaiera automatiquement après signature.
Installation du SDK
Adresse du code source et du package :- Dépôt SDK : https://github.com/AceDataCloud/SDK
- Dépôt X402 Client : https://github.com/AceDataCloud/X402Client
- npm :
@acedatacloud/sdk,@acedatacloud/x402-client - PyPI :
acedatacloud,acedatacloud-x402
acedatacloud-x402.
Installation et vérification des imports dans un environnement temporaire propre :
- Les packages npm et PyPI sont des packages publiés réels, pas des noms de remplacement dans la documentation.
acedatacloud-x402[cli]installera le CLI, la sous-commandeapprove-permit2peut être utilisée pour l’autorisation Permit2 dans le scénarioupto.
La première requête renverra 402
Vous pouvez d’abord utilisercurl pour voir ce que renvoie une requête non payée. L’exemple ci-dessous ne générera pas de frais, car il ne contient pas PAYMENT-SIGNATURE :
accepts, la structure courante est la suivante :
PAYMENT-REQUIRED, permettant au client de lire les exigences de paiement sans analyser le corps.
Le résumé de la sortie du programme de requête API non payée en production est le suivant :
- La première requête n’a pas inclus
AuthorizationouPAYMENT-SIGNATURE, donc elle renvoie HTTP 402, sans frais. acceptsest la seule base de signature fiable pour cette requête, contenant les réseaux optionnels, le schéma, le montant maximum, l’adresse de paiement et l’adresse de l’actif.networkest l’identifiant CAIP-2, le client doit correspondre à la chaîne CAIP-2 lors du choix du réseau.- Le montant maximum pour cette requête de chat minimale
gpt-4o-miniest de95215USDC atomiques, soit0.095215USDC. - Chaque requête doit lire la réponse 402 actuelle, ne pas coder en dur le montant d’exemple dans le code métier.
Compléter le paiement avec le SDK
Voici un exemple TypeScript minimal. Il spécifienetwork: 'skale', le gestionnaire choisira l’exigence de paiement SKALE à partir de la réponse 402 actuelle ; le montant réel et l’adresse de paiement seront toujours déterminés par accepts.
content ADC_TS_SDK_X402_OKest une chaîne fixe renvoyée par le modèle selon le mot d’invite, indiquant que la demande a réellement été envoyée à l’API du modèle après une tentative de paiement.payerest l’adresse du portefeuille signé localement, la clé privée n’a pas été envoyée à Ace Data Cloud.- Le SDK a effectué l’analyse 402, la signature
PAYMENT-SIGNATUREet la nouvelle tentative de la demande d’origine ; le code métier est toujours écrit selon la méthode d’appel SDK ordinaire.
- Le SDK envoie une demande API ordinaire, sans
Authorization. - La passerelle renvoie
402 Payment Requiredetaccepts. createX402PaymentHandlerchoisit l’exigence de paiementnetwork = 'skale'et signePAYMENT-SIGNATURE.- Le SDK réessaie avec le même corps de demande, la passerelle appelle le Facilitateur pour vérifier et régler avant de libérer vers l’API cible.
Vérifier les capacités de soutien du Facilitateur
L’API X402 ne dépend pas d’un répertoire de ressources. Le client appelle directement l’API connue et utilise le402 Payment Required et accepts renvoyés en temps réel comme seule base de prix et de signature.
La déclaration des capacités du Facilitateur se trouve à :
/supported, /verify, /settle et les réseaux de paiement actuellement activés, sans lister les ressources API.
L’adresse du Facilitateur de production d’Ace Data Cloud est :
kinds retournés énuméreront les réseaux et schémas pris en charge par le Facilitateur. Lors de l’appel réel, il convient de se référer à accepts renvoyé par l’API.
Sortie de /supported du Facilitateur :
/supportedindique que le Facilitateur possède des capacités de vérification et de règlement pour ces réseaux et schémas.- Base, SKALE et Solana prennent tous en charge
exact;uptoest actuellement proposé uniquement sur Base. - La possibilité pour une API d’autoriser un certain réseau dépend toujours de
accepts402 de cette API.

