System and SPL Token
System program and SPL Token essentials. Results appear in the same fence: same-line // comments when short, multiline // blocks below the sample when not.
Search across all documentation pages
System program and SPL Token essentials. Results appear in the same fence: same-line // comments when short, multiline // blocks below the sample when not.
Transfer lamports between system accounts.
// system_instruction::transfer(&from, &to, lamports)Allocate + assign owner + fund rent.
// system_instruction::create_account(&payer, &new, lamports, space, &owner)SPL mint account init.
// spl_token::instruction::initialize_mint(...)Associated token account address.
// get_associated_token_address(&owner, &mint)Transfer tokens between token accounts.
// spl_token::instruction::transfer(token_program, source, dest, authority, &[], amount)Mint tokens to a token account.
// spl_token::instruction::mint_to(...)Burn tokens from a token account.
// spl_token::instruction::burn(...)Delegate allowance.
// approve / revoke instructionsWrapped SOL sync.
// spl_token::instruction::sync_nativeToken Extensions program id differs from classic token.
// spl_token_2022::id()Mint decimals scale UI amounts.
// amount = ui * 10^decimalsM of N token authorities.
// initialize_multisigReclaim rent when balance zero.
// close_accountIdempotent ATA creation ix.
// create_associated_token_account_idempotentTransferChecked includes mint+decimals.
// transfer_checked(...)Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, Rust 1.91.1, and @solana/kit 7.0.0.
Reviewed by Chris St. John·Last updated Jul 18, 2026