Swap TON Tokens
Swap tokens on TON via DEX aggregator. Two-step flow: get a quote, confirm with the user, then execute.
MCP Tools
| Tool | Required | Optional |
|---|---|---|
get_swap_quote |
fromToken, toToken, amount |
walletSelector |
emulate_transaction |
messages |
validUntil |
send_raw_transaction |
messages |
walletSelector |
get_known_jettons |
— | — |
Workflow
- If the user mentions a token by name (e.g., "USDT", "jUSDC"), call
get_known_jettonsto resolve the jetton address - Call
get_swap_quotewithfromToken,toToken, andamount- Use
"TON"for native GRAM (ex. TON), or the jetton master contract address for tokens - Amount is human-readable (e.g.,
"1.5"= 1.5 GRAM (ex. TON))
- Use
- Call
emulate_transactionwith the quote'stransaction.messagesto dry-run the swap — verify the expected money flow (GRAM (ex. TON)/jetton balance changes) before sending - Show the quote details and emulation results to the user and ask one short yes/no confirmation
- Call
send_raw_transactionwith the transaction params returned by the quote - Poll
get_transaction_statuswith the returnednormalizedHashuntil status iscompletedorfailed(seeton-balanceskill). User can ask to skip polling.
Notes
- Always confirm the swap with the user before executing; prefer the host client's structured confirmation UI when available, otherwise accept natural-language yes/no and do not require a fixed confirmation phrase
- The quote returns transaction messages ready for
send_raw_transaction - After execution, poll
get_transaction_statusby default. User can specify whether to check status. - If no wallet is configured, use the
ton-create-walletskill first