ton-send
Send GRAM (ex. TON) or jettons (tokens) to an address or TON DNS domain. Use when the user wants to send GRAM (ex. TON), transfer tokens, send jettons, pay someone, send funds to a .ton or .t.me domain, or transfer assets on the TON blockchain.
How do I install this agent skill?
npx skills add https://github.com/ton-connect/kit --skill ton-sendIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill allows users to send TON and tokens (jettons) on the TON blockchain. It implements a secure workflow that includes address resolution, transaction emulation for preview, and a mandatory requirement for human-in-the-loop confirmation before any funds are moved.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 2 issues
- Runlayerpass
1 file scanned · No issues
What does this agent skill do?
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
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/ton-connect/kit/ton-send">View ton-send on skillZs</a>