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).
Poll the balance at regular intervals to keep the displayed value up to date. Use an appropriate interval based on UX requirements — shorter intervals provide fresher data but increase API usage.Modify the following example according to the application logic:
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} /> );};