Send GRAM (ex. TON) & Tokens
Transfer GRAM (ex. TON) or jettons to any address. Supports TON DNS resolution for .ton and .t.me domains.
MCP Tools
| Tool | Required | Optional |
|---|---|---|
build_ton_transfer |
toAddress, amount |
comment, walletSelector |
build_jetton_transfer |
toAddress, jettonAddress, amount |
comment, walletSelector |
emulate_transaction |
messages |
validUntil |
send_raw_transaction |
messages |
validUntil, fromAddress, walletSelector |
resolve_dns |
domain |
— |
back_resolve_dns |
address |
— |
build_ton_transfer and build_jetton_transfer do NOT broadcast — they return ready-to-send transaction.messages plus transaction.fromAddress. Preview with emulate_transaction, then broadcast with send_raw_transaction.
Workflows
Send GRAM (ex. TON)
- If the user provides a DNS name (e.g.,
foundation.ton,user.t.me) instead of a raw address, callresolve_dnsfirst - Call
build_ton_transferwith address and amount to build the transaction (it is NOT sent) - Preview it with
emulate_transactionusing the returnedtransaction.messages(recommended before broadcasting) - Ask one short yes/no confirmation that restates the amount and recipient
- Broadcast with
send_raw_transactionpassing thetransaction.messagesandtransaction.fromAddress - Poll
get_transaction_statuswith the returnednormalizedHashuntil status iscompletedorfailed(seeton-balanceskill). User can ask to skip polling.
Send Jetton (Token)
- If user mentions a token by name, call
get_known_jettons(seeton-balanceskill) to find thejettonAddress - Call
get_jetton_balanceto verify sufficient balance - Call
build_jetton_transferwith thejettonAddress,toAddress, andamountto build the transaction (it is NOT sent) - Preview it with
emulate_transactionusing the returnedtransaction.messages(recommended before broadcasting) - Ask one short yes/no confirmation before sending
- Broadcast with
send_raw_transactionpassing thetransaction.messagesandtransaction.fromAddress(jetton messages target the sender's jetton wallet) - Poll
get_transaction_statusuntil completed or failed
Notes
- Amounts are human-readable (e.g.,
"1.5"= 1.5 GRAM (ex. TON),"100"= 100 tokens) build_ton_transfer/build_jetton_transferbuild the transaction only;send_raw_transactionis the tool that actually signs and broadcasts- Use
emulate_transactionto preview expected balance changes before broadcasting (fake signature) - Always confirm with the user before broadcasting a transfer; prefer the host client's structured confirmation UI when available, otherwise accept natural-language yes/no and do not require a fixed confirmation phrase
- After broadcasting, poll
get_transaction_statusby default. User can specify whether to check status. - If no wallet is configured, use the
ton-create-walletskill first