Vérification de Parité de Prix Agent
Les API payantes dérivent : la doc indique 0,005 $, le mur facture 0,01 $, le manifeste de découverte cache 0,001 $ du mois dernier. Les acheteurs contestent, les répertoires signalent "malhonnêteté de prix", les revenus fuient. C'est la vérification en 5 minutes qui attrape cela — distillée de l'exploitation d'un périmètre payant de plus de 400 routes où TOUS les trois se sont produits.
Les trois prix qui doivent concorder
- Annoncé —
openapi.jsonx-payment-info.price(+ page de tarification) - Défié — le
accepts[].amountdu 402 live (unités atomiques) etmaxAmountRequired - Réglé — ce que le facilitateur a réellement déplacé (valeur du reçu/tx)
Procédure
- Récupérer le défi :
curl -s -i -X POST <url> -H 'content-type: application/json' -d '{}'→ analyser lePAYMENT-REQUIRED(JSON en base64) →accepts[0].amount(atomique ; USDC = 6 décimales, donc10000= 0,01 $). - Récupérer l'annonce :
openapi.json→ par routex-payment-info.price.amount. - Diff : montant annoncé vs défié par route. Une discordance = constat avec direction (surtarification = atteinte à la confiance + exposition au remboursement ; sous-tarification = fuite de revenus).
- Vérification du manifeste : si vous publiez
/.well-known/x402, vérifiez que ses montants correspondent au défi live — les répertoires mettent en cache des montants obsolètes et affichent vos ANCIENS prix. - Règle de correction en une ligne : le défi est généré à partir de la tarification runtime — corrigez d'ABORD la source runtime, puis régénérez la doc et le manifeste dans le même commit. Les corrections uniquement dans la doc pourrissent immédiatement.
Schéma des constatations
{"routes_checked": N, "parity_ok": N, "overcharge": [{"path": "...", "advertised": "0.005", "charged": "0.01"}], "undercharge": [...], "stale_manifest": [...], "verdict": "PARITY|DRIFT"}
Règles
- Vérifiez à l'ORIGINE publique, pas sur localhost — les proxys/WAF peuvent réécrire.
- Calcul en unités atomiques : 6 décimales pour USDC ;
50000correspond à 0,05 $, pas 50 000 $. - Exécutez AVANT ET APRÈS tout changement de prix ; conservez le diff avant comme enregistrement.
Pas pour
- Les calculs de majorations de taxe/TVA/frais (coût de règlement, pas prix catalogue).
- La facturation non par appel (abonnements, facturation au jeton).
Exemple
Question : "Nous avons augmenté deep-audit à 0,05 $ — le monde est-il cohérent ?"
Avant : pricing.json indique 0,05, openapi indique 0,01, manifeste indique 0,01, le mur défie à 0,01. Personne ne l'a remarqué pendant des semaines.
Après : {"overcharge": [], "undercharge": [{"path": "/v1/security-audit/deep", "advertised": "0.01", "charged": "0.05"}], "verdict": "DRIFT"} — un commit corrige les trois surfaces ; le cache du répertoire se rafraîchit au prochain règlement.
Version
1.0.0 — Série de démarrage DDG.