| name | ton-nfts |
| description | View and transfer NFTs on the TON blockchain. Use when the user wants to see their NFTs, list collectibles, check NFT details, send an NFT, or transfer an NFT to someone. |
| user-invocable | true |
| disable-model-invocation | false |
TON NFT Operations
View and transfer NFTs on the TON blockchain.
MCP Tools
| Tool | Required | Optional |
|---|
get_nfts | โ | limit, offset, walletSelector |
get_nfts_by_address | address | limit, offset |
get_nft | nftAddress | โ |
build_nft_transfer | nftAddress, toAddress | comment, walletSelector |
emulate_transaction | messages | validUntil |
send_raw_transaction | messages | validUntil, fromAddress, walletSelector |
build_nft_transfer does NOT broadcast โ it returns ready-to-send transaction.messages plus transaction.fromAddress. Preview with emulate_transaction, then broadcast with send_raw_transaction.
Workflows
List My NFTs
- Call
get_nfts to list NFTs in the active wallet
- Use
limit and offset for pagination
View NFT Details
- Call
get_nft with the nftAddress
Send an NFT
- Call
get_nfts to find the NFT address if the user doesn't have it
- Call
build_nft_transfer with nftAddress and toAddress to build the transaction (it is NOT sent)
- Preview it with
emulate_transaction using the returned transaction.messages (recommended before broadcasting)
- Ask one short yes/no confirmation before transferring the NFT
- Broadcast with
send_raw_transaction passing the transaction.messages and transaction.fromAddress (the NFT transfer is bound to the wallet it was built for)
- Poll
get_transaction_status with the returned normalizedHash until status is completed or failed (see ton-balance skill)
Notes
build_nft_transfer builds the transaction only; send_raw_transaction is the tool that signs and broadcasts it
- Use
emulate_transaction to preview expected balance changes before broadcasting (fake signature)
- Always confirm with the user before transferring an NFT; prefer the host client's structured confirmation UI when available, otherwise accept natural-language yes/no and do not require a fixed confirmation phrase
- If no wallet is configured, use the
ton-create-wallet skill first