About ton-swap
ton-swap is a skill for exchanging tokens on TON through a DEX aggregator. It guides users through quotes, transaction simulation, confirmation, and status checks.
Key features
- 01Request quotes using token addresses
- 02Enter amounts in human-readable form
- 03Simulate swaps and inspect fund flows
- 04Execute after confirmation and poll status
Use cases
- 01Swap native TON and jettons
- 02Resolve a known jetton's address
- 03Review a simulation before sending a swap
MCP support
The skill uses TON MCP tools to request quotes, simulate and send transactions, and check status; get_known_jettons can resolve token addresses.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ ton-org/ skills --skill ton-swapAfter installing, type/ton-swapin Claude Code to confirm it loaded.
Details
From the project READMESwap 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 TON, or the jetton master contract address for tokens - Amount is human-readable (e.g.,
"1.5"= 1.5 TON)
- Use
- Call
emulate_transactionwith the quote'stransaction.messagesto dry-run the swap — verify the expected money flow (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
Comments
Markdown supported