Skip to content

Solana Transactions

Andrei Montchik edited this page Apr 15, 2026 · 1 revision

Info

  • The maximum size of a transaction is 1232 bytes.
  • A transaction signature size is 64 bytes. Max number of signatures is 19.
  • An account size is 32 bytes. Max number of accounts is 35.
  • Max age of a transaction is 150 blocks.

Calculate Transaction Fees and Compute Units

  • The static Transaction Fee is 5_000 lamports (0.000_005 SOL) per a signature. That would be the only fee paid in case if the Prioritization Fee is not set.
  • The Transaction Prioritization Fee is measured in Compute Units per instruction.
    • The CU limit is set for a transaction. If not set, the Default CU limit is 200_000 per instruction.
    • Set CU limit, not actual number of consumed CUs, will be used to calculate Prioritization Fee.
    • CUs price is measured in micro-lamports (0.000_001 lamports).
  • Setting CU price enables the Prioritization fee calculation, which is a product of CU limit and CU price.
  • The simulateTransaction RPC call return number of required CUs.
  • The getSimulationComputeUnits does pretty much the same. It requires intalling the solana-developers/helpers NodeJS module though.
  • The getFeeForMessage PRC method returns the message fees in lamports.
  • Formula: FEE_SOL=<CU_LIMIT> * <CU_PRICE> / 1_000_000_000_000_000 + 5_000 / 1_000_000_000

CLI

  • Transfer Tokens: solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> <AMOUNT> --fee-payer <KEYPAIR>
  • Check the transaction status: solana confirm <TRANSACTION_SIGNATURE>
  • Check out the latest prioritization fees:
    curl https://api.mainnet-beta.solana.com -X POST -H "Content-Type: application/json" -d '
      {
        "jsonrpc":"2.0", "id":1,
        "method": "getRecentPrioritizationFees"
      }
    '
    
  • Helius CLI

Clone this wiki locally