dupetheduck.com

How to Send Jettons on TON Without Losing Them to Wrong Addresses

Sending a Jetton on TON is not the same as sending TON itself. The difference trips up almost everyone who is new to the ecosystem. Understand the architecture first, and you will never lose tokens to a wrong or uninitialized address.

The Two-Step Architecture

Every Jetton exists through two smart contracts. One is the master contract. It defines the token's name, symbol, total supply, and metadata. The other is the individual Jetton wallet contract. Each address that holds a balance of that Jetton gets its own dedicated wallet contract. You cannot send Jettons directly to a user's main wallet address. You send them to that user's Jetton wallet for that specific token.

This design is deliberate. It prevents race conditions and allows the network to handle thousands of token types without a single point of failure. It also introduces a practical problem.

The uninitialized wallet problem

When you send a Jetton to an address that has never received or deployed a wallet for that token before, the recipient's Jetton wallet does not yet exist on-chain. Sending to it directly will fail. The transfer will simply not happen. Your Jettons are not lost; they remain in your wallet. But the transaction costs TON fees for the attempt.

To avoid this, you must always check that the recipient's Jetton wallet is deployed. You can do this on a block explorer like Tonviewer or Tonscan. Look for the token's contract address under the recipient's wallet and confirm it has a deployed state. If the wallet does not exist, the recipient must first receive a dust amount of that token or deploy the wallet themselves. Many exchanges and bots handle this automatically. Sending directly from a non-custodial wallet does not.

The one-time deployment fee

When a user receives a Jetton for the first time, a new Jetton wallet contract must be deployed. This costs a small fee in TON. The fee is paid by the sender, not the recipient. The amount varies by network load but is usually around 0.01 - 0.05 TON. If you send multiple Jettons to a new address in one transaction, you pay the deployment fee only once. The wallet contract is then reused for all future transfers of that token to the same address.

Transfer Notification Forwarding

When you send a Jetton, the master contract calls a method on the sender's Jetton wallet. That wallet then sends a transfer notification to the recipient's Jetton wallet. The notification includes the amount and optional payload data. If the recipient's Jetton wallet does not respond or is uninitialized, the transfer fails. This is why sending to a non-existent wallet simply bounces.

Some wallets and bots exploit this for spam. They send you bogus Jetton transfers with a notification that includes a URL. That is a dust attack. Do not interact with the notification. Do not click the link. The tokens themselves are worthless. Ignore them.

Spam jettons and dust attacks

The open nature of TON means anyone can create a Jetton and send it to thousands of addresses for pocket change. These spam tokens often carry a payload that displays a URL or a message in the user's wallet interface. The intent is to lure you to a phishing site that asks for your seed phrase or private keys.

Recognize them by two signs. First, you never initiated a swap or transfer to receive them. Second, the token name or symbol looks like a legitimate project but has extra characters or typos. Examples include "TONk" instead of "TON," or "NoT" instead of "NOT." Your wallet will show them as a balance, but they have no real value. Do not try to sell them. Do not approve any contract interaction with them. Just ignore the notification and hide the token from your wallet view if the option exists.

Practical steps to stay safe

Before sending Jettons, confirm the recipient's Jetton wallet exists. If it does not, ask them to deploy it or send them a minimal amount of TON first. Double-check the token's master contract address. Scammers create fake Jettons with identical names to trick you. Use a block explorer to verify the contract code and deployer history. If the contract was created minutes ago, it is likely a scam.

Never click links inside transaction comments or Jetton names. Wallets that display these links are dangerous. Use a wallet that filters out spam notifications. And always keep your seed phrase offline. No legitimate project will ever ask for it.

Sending Jettons on TON is not difficult once you understand the contracts. The mistakes come from treating them like simple token transfers. Know the architecture, verify the wallet, ignore the dust. That is all it takes.

Not financial advice. dupetheduck.com publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.

Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.

Back to ton