Authentification et Scopes

Émettre, utiliser et révoquer des Bearer-Tokens appartenant à un wallet.

Dernière mise à jour: 30 sept. 2026

Demander un challenge

L’authentification machine utilise un challenge SIWE EIP-4361 sur Flare, chaîne 14. Signez exactement le message renvoyé avec votre wallet (EIP-191 personal_sign). Le Nonce est à usage unique, lié au wallet et expire après cinq minutes. Ne demandez que les permissions dont votre client a besoin. L’exemple demande write et spend parce que les exemples de rechargement et d’abonnement qui suivent utilisent les deux ; read est toujours inclus.

curl -X POST 'https://ftso.app/api/x402/auth/challenge' \
  -H 'content-type: application/json' \
  -d '{"wallet":"0xYOUR_WALLET","scopes":["write","spend"],"label":"My agent"}'

La réponse contient wallet, nonce, issuedAt et message. Conservez message exactement, espaces compris. Avec viem, utilisez account.signMessage({ message }). Les Scopes font partie du consentement signé ; un label est une métadonnée cosmétique de 40 caractères au plus. Ne reconstruisez pas le message à partir du Nonce.

Échanger la signature

curl -X POST 'https://ftso.app/api/x402/auth/token' \
  -H 'content-type: application/json' \
  -d '{"message":"EXACT_RETURNED_SIWE_MESSAGE","signature":"0xSIGNATURE"}'
# Response: { token: "fbx_...", wallet, scopes, expiresAt }

Stockez token de manière sécurisée et envoyez Authorization: Bearer fbx_… lors des appels suivants. Ne le placez pas dans une chaîne de requête, des journaux partagés ou des exemples. L’échange de token est en no-store. Les signatures EOA sont vérifiées localement ; la vérification des contract-wallets dépend du RPC serveur configuré et rejette l’authentification en cas d’échec de vérification.

Modèle de permissions

  • read : lectures et aperçus de messages ; inclut l’accès aux données payantes si l’enforcement est activé.
  • write : modifications, tests de destinataires, brouillons et confirmations de rechargement, acceptation des conditions, essais et désactivation d’Auto-Renew.
  • spend : achat de capacité d’abonnement et activation d’Auto-Renew.
  • read est toujours accordé, y compris avec write ou spend. Un token write peut révoquer n’importe quel token du même wallet.

Lister et révoquer des tokens

curl 'https://ftso.app/api/x402/auth/tokens' -H 'authorization: Bearer fbx_TOKEN'
curl -X DELETE 'https://ftso.app/api/x402/auth/tokens/42' \
  -H 'authorization: Bearer fbx_WRITE_TOKEN'

Un wallet peut avoir au plus dix tokens actifs. La liste renvoie jusqu’à 50 entrées de métadonnées, les actifs en premier ; elle ne renvoie jamais de secrets ni de hachages. La révocation prend effet à la prochaine requête authentifiée. Les ID étrangers renvoient 404. Le navigateur peut gérer les tokens dans Wallet-Center Settings → Security. MCP utilise son propre flux OAuth ; un Bearer-Token x402 n’est pas un access token MCP.

Durée de vie du Bearer-Token en secondes

  • Durée de vie du Bearer-Token en secondes: 86400
  • Appels anonymes gratuits par jour (enforce uniquement): 50