TON DocsTON Docs
OnboardingNodesApplicationsAPIsSmart contractsTolkTolk languageTVMTON Virtual MachineFoundationsBlockchain foundations

How to transfer Gram, Jettons, and NFTs using WalletKit on the Android platform

All methods require an existing wallet instance. Create or retrieve a wallet before accessing data.

Create transactions to send Gram, Jettons, and NFTs, or generate previews for users.

Creating a transaction

Before sending any transaction to the blockchain, initialize it for the appropriate asset: Gram, Jetton, or NFT.

Gram

val message = TONTransferParams(
    // TON wallet address
    toAddress = "<TON_WALLET_ADDRESS>",

    // 1 Gram in nanograms format
    amount = "1000000000"
)
val transaction = wallet.createTransferTonTransaction(message)

Jettons

val parameters = TONJettonTransferParams(
    // TON wallet address
    toAddress = "<TON_WALLET_ADDRESS>",

    // Address of a Jetton minter contract
    // E.g., EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs for USDT
    jettonAddress = "<JETTON_ADDRESS>",

    // 1 token in Jetton units
    amount = "1000000"
)
val transaction = wallet.createTransferJettonTransaction(parameters)

NFTs

val parameters = TONNFTTransferParamsHuman(
    // TON wallet address
    toAddress = "<TON_WALLET_ADDRESS>",

    // Address of an NFT item contract
    // E.g., EQDkT3BSIU3CTwnZG9ZIdyWYmcnuaAEwGr_dsS1RFYqBTanY
    nftAddress = "<NFT_ADDRESS>",
)
val transaction = wallet.createTransferNFTTransaction(parameters)

Transaction Preview

Once a transaction object is created, present a preview to the user before sending it.

val preview = wallet.getTransactionPreview(transaction)

Sending a transaction

wallet.sendTransaction(transaction)

Next steps

On this page