Use this file to discover all available pages before exploring further.
Jettons are fungible tokens on TON, similar to ERC-20 tokens on Ethereum. Unlike Toncoin, which is the native TON currency used in all transfers, each jetton has a separate master (minter) contract and an individual wallet contract for each holder.For example, USDT on TON is implemented as a jetton, and its minter contract address is EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs. By providing this address and the recipient’s TON wallet contract address, AppKit knows which tokens to send and to whom.
Similar to Toncoin balance checks, discrete one-off checks have limited value on their own and continuous monitoring should be used for UI display.Unlike Toncoin, the balance units and decimal places vary between jettons — use the decimals field from the jetton’s metadata to interpret raw amounts correctly.USDT has a decimal precision of 6, meaning that the fractional balance string '0.1' represents a balance of 0.1 USDT, or 100000 micro USDT (raw units).
Obtain real-time jetton balance updates with a streaming API provider and fallback to polling at regular intervals to keep the displayed value up to date. For polling, use an appropriate interval based on UX requirements — shorter intervals provide fresher data but increase API usage.
Before making a transfer, make sure there is enough Toncoin in the balance to cover the fees.Modify the following examples according to the application logic:
// Pre-built UI component for sending jetton transactions by clicking a button.// It handles success and error states while being customizable.import { SendJettonButton } from '@ton/appkit-react';export const SendJetton = () => { // For example: 'UQ...' const recipientAddress = '<TON_WALLET_ADDRESS>'; // For example, '0.1' or '1' jetton const jettonAmount = '<FRACTIONAL_JETTON_AMOUNT>'; // For example, 'EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs' const jettonAddress = '<JETTON_MINTER_ADDRESS>'; return ( <SendJettonButton // New owner of the sent jettons recipientAddress={recipientAddress} // Jetton amount in fractional units amount={jettonAmount} // What kind of jettons to send jetton={{ // Jetton master (minter) contract address address: jettonAddress, // Short ticker name symbol: 'USDT', // Jetton decimals to calculate raw unit amounts // For example, USDT defaults to 6, while Toncoin to 9: decimals: 6, }} // (optional) Comment comment="Hello from AppKit!" // (optional) Add custom button title text="Send some jetton" // (optional) Handle successes onSuccess={(result) => console.log('Transaction sent:', result)} // (optional) Handle errors onError={(error) => console.error('Transaction failed:', error)} // (optional) Add custom CSS classes className='' // (optional) When set to `true`, the button is disabled disabled={false} /> );};