multi-swap
Multi-Swap
Execute 2-3 independent token swaps in a single Starknet transaction via Fibrous (default). Other providers can be selected with --provider, or use --provider auto to race all providers per pair. All swaps are bundled into one multicall, saving gas compared to executing them individually.
Prerequisites
- Active session required.
- Sufficient balance for ALL source tokens + gas fees.
Rules
- BEFORE any multi-swap, you MUST run
npx starkfi@latest statusandnpx starkfi@latest balanceto verify connectivity and source token balances for ALL pairs. - Minimum 2 and maximum 3 swap pairs per multi-swap. Single swaps should use the
tradeskill instead. - The pairs string MUST be wrapped in double quotes and each pair separated by a comma.
- Each pair follows the format:
<amount> <FROM>><TO>(no spaces around>). - Default slippage is 1%. To change, use
--slippage <percent>. - Suggest using
--simulatefirst so the user can confirm gas cost. - AFTER a successful multi-swap, you MUST verify using
npx starkfi@latest tx-status <hash>.
Commands
npx starkfi@latest multi-swap "<pairs>" [--provider <fibrous|avnu|ekubo|auto>] [--slippage <percent>] [--simulate] [--json]
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
pairs |
string | Swap pairs: "100 USDC>ETH, 50 USDT>STRK" (2-3 pairs) |
Yes |
--provider |
string | Provider: fibrous (default), avnu, ekubo, auto (race all) |
No |
--slippage |
number | Slippage tolerance in % (default: 1) |
No |
--simulate |
flag | Estimate fees without broadcasting | No |
--json |
flag | Output as JSON | No |
Pair Format
"<amount> <FROM>><TO>, <amount> <FROM>><TO>"
Examples:
"100 USDC>ETH, 200 USDT>STRK"— two pairs"50 DAI>ETH, 100 USDC>STRK, 0.1 ETH>USDT"— three pairs (maximum)
Examples
User: "Swap 100 USDC to ETH and 200 USDT to STRK in one transaction"
npx starkfi@latest status
npx starkfi@latest balance
npx starkfi@latest multi-swap "100 USDC>ETH, 200 USDT>STRK"
npx starkfi@latest tx-status <hash>
User: "Simulate swapping 50 DAI, 100 USDC, and 0.1 ETH"
npx starkfi@latest multi-swap "50 DAI>ETH, 100 USDC>STRK, 0.1 ETH>USDT" --simulate
Error Handling
| Error | Action |
|---|---|
Too few pairs |
Multi-swap requires at least 2 pairs. Use trade for singles. |
Too many pairs |
Maximum 3 pairs. Split into multiple calls. |
No route found |
One or more pairs lack liquidity. |
Insufficient balance |
Check balance — user may lack one of the source tokens. |
Provider unavailable |
Specified provider is invalid. Valid: fibrous, avnu, ekubo. |
All providers failed |
All providers timed out or errored. Retry later. |
Simulation failed |
One of the routes is invalid or would revert. |
Not authenticated |
Run authenticate-wallet skill first. |
Related Skills
- Use
tradefor a single swap (simpler syntax). - Use
batchfor combining swaps with other operations (stake, supply, send). - Use
balanceto verify you have enough of all source tokens.
More from ahmetenesdur/starkfi
send
Send STRK, ETH, or any ERC-20 token to a Starknet address. Supports simulation (dry-run) before execution. Use this skill when the user wants to send, transfer, pay, tip, or move tokens to another wallet address on Starknet. Also trigger when the user mentions sending funds to someone, making a payment, transferring assets, or moving crypto to a specific address — even if they just say "pay 10 STRK to 0x...".
10trade
Swap tokens on Starknet via Fibrous DEX aggregator. Supports per-provider selection (avnu, ekubo, or auto to race all). Use this skill when the user wants to swap, exchange, trade, convert, buy, or sell one token for another on Starknet. Also use when the user asks about token prices, exchange rates, DEX routing, best swap route, or wants to check how much they would receive for a given amount — even if they don't explicitly say "swap".
10balance
Check Starknet wallet token balances — STRK, ETH, and all ERC-20 tokens. Use this skill when the user asks about their balance, holdings, funds, tokens, wallet contents, or wants to know how much of something they have. Also use before any transaction to verify sufficient funds. Trigger whenever the user says "check my balance", "how much ETH do I have", "what's in my wallet", "do I have enough", "show my tokens", or any variation about checking available assets — even if they don't use the word "balance".
9staking
Stake, unstake, claim, and compound rewards for STRK, WBTC, tBTC, SolvBTC, and LBTC on Starknet. View validators, pools, and staking positions. Use this skill when the user mentions staking, delegating, validators, staking pools, rewards, compounding, unstaking, earning yield, passive income on crypto, or wants to earn on their STRK or BTC tokens — even if they don't say "stake" explicitly.
9config
View and modify StarkFi CLI configuration — set custom RPC URLs, switch networks, manage gas settings, and check transaction status. Use this skill when the user mentions RPC, rate limits, network settings, gas mode, gas token, configuration, settings, preferences, or wants to check a transaction hash. Also trigger when the user wants to customize their setup, troubleshoot connection issues, fix errors, switch between mainnet and testnet, change how gas is paid, enable free gas, "gas fees too high", "not working", verify whether a transaction succeeded, or check tx status — even if they don't say "config".
9portfolio
View a comprehensive DeFi portfolio dashboard and optimize portfolio allocation via automated rebalancing. Use this skill when the user wants an overview, summary, dashboard, total value, net worth, portfolio rebalancing, target allocation, or wants to see all their DeFi positions across Starknet at once. Also trigger when the user asks "what do I have", "show me everything", "how much am I worth", "my positions", "my investments", "rebalance my portfolio", "I want 50% ETH", "optimize my holdings", or any request for a holistic view of their Starknet holdings — even if they don't explicitly say "portfolio".
9