trails

Par bankrbot · skills

npx skills add https://github.com/bankrbot/skills --skill trails

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)

  1. Obtenir l'adresse du portefeuille Bankr
  2. 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

  1. GetEarnPools pour découvrir les adresses des pools et les APY
  2. Approuver le contrat du pool via Bankr submit()
  3. 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

  • originTokenAmount est en unités de base (ex. 10000000 = 10 USDC avec 6 décimales)
  • Utilisez "0x000...000" pour les adresses de tokens natifs
  • submit doit ê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

Skills similaires