name: trails description: Trails — Swap multi-chaînes, bridge et orchestration DeFi via Sequence. À utiliser quand un agent veut échanger des tokens entre chaînes, faire un bridge d'actifs, financer un portefeuille Bankr depuis n'importe quelle chaîne, déposer dans des coffres de rendement (Aave, Morpho), obtenir les prix des tokens, découvrir des pools de rendement, ou avoir un devis de routes multi-chaînes. S'intègre avec Bankr submit() pour l'exécution on-chain. À utiliser aussi quand on parle de Trails, Sequence swaps, bridging multi-chaînes, ou dépôts de rendement DeFi.
Trails
Swap multi-chaînes, bridge et orchestration DeFi alimentés par Sequence. Les agents spécifient l'action — Trails détermine automatiquement le chemin optimal multi-étapes entre les chaînes.
API Base: https://trails-api.sequence.app/rpc/Trails/<MethodName>
Auth Header: X-Access-Key: $TRAILS_API
Widget: https://demo.trails.build/
Intégration Bankr: submit() depuis @bankr/cli diffuse les transactions on-chain
Variables d'environnement
export TRAILS_API=<your-sequence-project-access-key> # from https://sequence.build
export BANKR_API_KEY=<your-bankr-key> # from bankr.bot/api
Démarrage rapide
Obtenir un devis de swap (USDC sur Polygon → ETH sur Base)
BANKR_WALLET=$(curl -s https://api.bankr.bot/agent/me \
-H "X-API-Key: $BANKR_API_KEY" \
| jq -r '.wallets[] | select(.chain == "evm") | .address')
curl -s https://trails-api.sequence.app/rpc/Trails/QuoteIntent \
-H "Content-Type: application/json" \
-H "X-Access-Key: $TRAILS_API" \
-d "{
\"ownerAddress\": \"$BANKR_WALLET\",
\"originChainId\": 137,
\"originTokenAddress\": \"0x3c499c542cef5e3811e1192ce70d8cC03d5c3359\",
\"originTokenAmount\": \"10000000\",
\"destinationChainId\": 8453,
\"destinationTokenAddress\": \"0x0000000000000000000000000000000000000000\",
\"destinationTokenAmount\": \"0\",
\"tradeType\": \"EXACT_INPUT\",
\"options\": { \"slippageTolerance\": 0.005 }
}" | jq '.intent.quote'
Découvrir les pools de rendement
curl -s https://trails-api.sequence.app/rpc/Trails/GetEarnPools \
-H "Content-Type: application/json" \
-H "X-Access-Key: $TRAILS_API" \
-d '{"chainIds": [137]}' \
| jq '[.pools[] | select(.isActive and .token.symbol == "USDC")] | sort_by(-.tvl) | .[0]'
Guide des tâches
Quand l'utilisateur veut financer un portefeuille Bankr
Utilisez l'URL du widget Trails avec l'adresse du portefeuille Bankr en tant que toAddress. Voir references/trails.md Recette 1.
Quand l'utilisateur veut échanger des tokens (même chaîne ou multi-chaînes)
- Obtenir l'adresse du portefeuille Bankr
- QuoteIntent → CommitIntent → soumettre depositTransaction via Bankr → ExecuteIntent → WaitIntentReceipt
Voir references/trails.md Recette 2.
Quand l'utilisateur veut déposer dans un coffre de rendement
- GetEarnPools pour découvrir les adresses des pools et les APY
- Approuver le contrat du pool via Bankr submit()
- Déposer via Bankr submit()
Voir references/trails.md Recette 3.
Quand l'utilisateur pose des questions sur les tokens ou chaînes supportés
Utilisez GetTokenList (body: {"chainIds": [137]}) ou GetChains.
Quand l'utilisateur pose des questions sur les prix des tokens
Utilisez GetTokenPrices.
Méthodes API
| Groupe | Méthode | Description |
|---|---|---|
| Cycle de vie intent | QuoteIntent |
Obtenir un devis + depositTransaction pour un swap/bridge |
CommitIntent |
Verrouiller l'intent, recevoir intentId | |
ExecuteIntent |
Notifier Trails que le tx de dépôt est miné | |
WaitIntentReceipt |
Interroger jusqu'à ce que l'intent soit complet | |
| Gestion d'intent | GetIntent |
Chercher un intent par ID |
GetIntentReceipt |
Obtenir le reçu final | |
SearchIntents |
Lister les intents par propriétaire/statut | |
GetIntentHistory |
Historique paginé | |
AbortIntent |
Annuler un intent en attente | |
| Découverte | GetEarnPools |
Pools de rendement actifs avec APY, TVL, depositAddress |
GetChains |
Chaînes supportées | |
GetTokenList |
Tokens par chaîne | |
GetTokenPrices |
Prix en USD | |
GetExactInputRoutes |
Aperçu des routes pour exact-in | |
GetExactOutputRoutes |
Aperçu des routes pour exact-out | |
| Référence | GetExchangeRate |
Conversion en devises fiat |
GetTrailsContracts |
Adresses de contrats par chaîne | |
| Utilitaire | Ping / RuntimeStatus / Clock |
Santé + heure du serveur |
Points clés
originTokenAmountest en unités de base (ex.10000000= 10 USDC avec 6 décimales)- Utilisez
"0x000...000"pour les adresses de tokens natifs submitdoit être importé depuis@bankr/cli/dist/lib/api.js(non ré-exporté depuis l'entrée principale)- Ajoutez
"destinationToAddress"à QuoteIntent pour envoyer la sortie vers un portefeuille différent du payeur