How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/ton-org/kit --skill ton-sendBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
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



