in-solana by Supanode

InvalidRentPayingAccount

A new account was created with a lamport balance below the minimum required for rent exemption.

Why this happens

Since the rent-exempt minimum was enforced (Solana 1.15+), all new accounts must be created with enough lamports to be rent-exempt. Accounts below this threshold are rejected at the transaction level.

The minimum balance depends on the account’s data size:

Data sizeMinimum balance
0 bytes (wallet)0.00089088 SOL
165 bytes (token account)0.00203928 SOL
82 bytes (mint)0.00144768 SOL

How to fix

  1. Calculate the minimum. Use getMinimumBalanceForRentExemption with your account’s data size:
const minBalance = await connection.getMinimumBalanceForRentExemption(dataSize);
  1. Fund the account sufficiently. Pass at least the minimum balance when creating the account via SystemProgram.createAccount.
  2. For token accounts: use getMinimumBalanceForRentExemption(165) (SPL Token account size is 165 bytes).

FAQ

Can I create an account below the rent-exempt minimum? No. Since Solana 1.15, all newly created accounts must be rent-exempt. The runtime rejects transactions that would create sub-minimum accounts.

What about existing accounts below the minimum? Accounts created before the rent requirement was enforced are grandfathered in but still have rent deducted each epoch. They will eventually reach zero and be purged.

Is the rent-exempt minimum the same on devnet and mainnet? Yes. The calculation is the same — it depends on the data size and the rent rate, which is the same across clusters.

Error text variants

  • InvalidRentPayingAccount
  • invalid rent paying account
  • account not rent exempt

Updated: