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 size | Minimum balance |
|---|---|
| 0 bytes (wallet) | 0.00089088 SOL |
| 165 bytes (token account) | 0.00203928 SOL |
| 82 bytes (mint) | 0.00144768 SOL |
How to fix
- Calculate the minimum. Use getMinimumBalanceForRentExemption with your account’s data size:
const minBalance = await connection.getMinimumBalanceForRentExemption(dataSize);
- Fund the account sufficiently. Pass at least the minimum balance when creating the account via
SystemProgram.createAccount. - 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: