trails/SKILL.md
--- name: trails description: Trails — Cross-chain swap, bridge, and DeFi orchestration via Sequence. Use when an agent wants to swap tokens across chains, bridge assets, fund a Bankr wallet from any chain, deposit into yield vaults (Aave, Morpho), get token prices, discover earn pools, or quote cross-chain routes. Integrates with Bankr submit() for on-chain execution. Also use when asked about Trails, Sequence swaps, cross-chain bridging, or DeFi yield deposits. # Trails Cross-chain swap, br
npx skillsauth add bankrbot/skills trailsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
name: trails description: Trails — Cross-chain swap, bridge, and DeFi orchestration via Sequence. Use when an agent wants to swap tokens across chains, bridge assets, fund a Bankr wallet from any chain, deposit into yield vaults (Aave, Morpho), get token prices, discover earn pools, or quote cross-chain routes. Integrates with Bankr submit() for on-chain execution. Also use when asked about Trails, Sequence swaps, cross-chain bridging, or DeFi yield deposits.
Cross-chain swap, bridge, and DeFi orchestration powered by Sequence. Agents specify the action — Trails automatically determines the optimal multi-step path across chains.
API Base: https://trails-api.sequence.app/rpc/Trails/<MethodName>
Auth Header: X-Access-Key: $TRAILS_API
Widget: https://demo.trails.build/
Bankr Integration: submit() from @bankr/cli broadcasts on-chain transactions
export TRAILS_API=<your-sequence-project-access-key> # from https://sequence.build
export BANKR_API_KEY=<your-bankr-key> # from bankr.bot/api-keys
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'
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]'
Use the Trails widget URL with the Bankr wallet address as toAddress. See references/trails.md Recipe 1.
See references/trails.md Recipe 2.
See references/trails.md Recipe 3.
Use GetTokenList (body: {"chainIds": [137]}) or GetChains.
Use GetTokenPrices.
| Group | Method | Description |
| --------------------- | ---------------------------------- | ------------------------------------------------ |
| Intent lifecycle | QuoteIntent | Get quote + depositTransaction for a swap/bridge |
| | CommitIntent | Lock the intent, receive intentId |
| | ExecuteIntent | Notify Trails the deposit tx is mined |
| | WaitIntentReceipt | Poll until intent is complete |
| Intent management | GetIntent | Look up intent by ID |
| | GetIntentReceipt | Get final receipt |
| | SearchIntents | List intents by owner/status |
| | GetIntentHistory | Paginated history |
| | AbortIntent | Cancel a pending intent |
| Discovery | GetEarnPools | Active yield pools with APY, TVL, depositAddress |
| | GetChains | Supported chains |
| | GetTokenList | Tokens per chain |
| | GetTokenPrices | USD prices |
| | GetExactInputRoutes | Preview routes for exact-in |
| | GetExactOutputRoutes | Preview routes for exact-out |
| Reference | GetExchangeRate | Fiat conversion |
| | GetTrailsContracts | Contract addresses per chain |
| Utility | Ping / RuntimeStatus / Clock | Health + server time |
originTokenAmount is in base units (e.g. 10000000 = 10 USDC with 6 decimals)"0x000...000" for native token addressessubmit must be imported from @bankr/cli/dist/lib/api.js (not re-exported from main entry)"destinationToAddress" to QuoteIntent to send output to a different wallet than the payerdata-ai
Discover, bet on, track, and settle Hunch prediction markets in natural language. Trigger when a user wants to bet, take a position, or get odds on a crypto outcome — token market-cap milestones and flips, launchpad races (Bankr vs pump.fun volume / #1-days / launches over a cap), token head-to-head outperformance, mcap strike-ladders, and up/down price rounds. Also trigger on "what can I bet on about $TOKEN", "odds on …", "take YES/NO on …", "show my Hunch bets", "did my market resolve". Settles in USDC on Base via x402 (≤ $10 / bet); every bet returns an on-chain proof.
tools
HSM-backed secret management for AI agents. Store API keys (including Bankr `bk_` keys), passwords, and credentials in an encrypted vault; retrieve them at runtime via MCP without keeping secrets in chat context. Bankr Dynamic Key Vending issues short-lived scoped `bk_usr_` keys from a partner key (`bk_ptr_`) without manual rotation. Policy-based access control, secret rotation, sharing, EVM transaction intents (sign/simulate/broadcast), multi-chain signing keys, treasury multisig proposals, OIDC federation for external service auth, built-in prompt injection detection, and optional Shroud TEE LLM proxy. Use when the agent needs secure credential storage, just-in-time secret access, guarded on-chain signing, or security scanning — not for Bankr trading prompts, portfolio checks, or x402 calls (use the bankr skill instead).
testing
Stake $GEM tokens on Gem Miner (gemminer.app) to earn yield and unlock the in-game earn/cashout system. Use when the user wants to stake GEM, check their staking balance or rewards, unstake, claim rewards, or check whether they meet the 25M GEM gate. Base mainnet only.
development
CodeGrid is a native macOS canvas where multiple coding agents (Claude, Codex, Gemini, Cursor, Grok, shells) run side by side in panes and collaborate via a local agent bus — no tmux, no cloud, no account, no stored API keys. Install this skill when an agent should know how to operate inside a CodeGrid pane, drive the workspace from outside (control socket or codegrid:// deep links), spawn or message sibling agents, or coordinate multi-agent work (delegate, review, pipeline, parallel fan-out, monitor, debate). The differentiator: multiple coding agents collaborating on one canvas, addressable by stable session_id, with a read → message → read protocol built for orchestration.