When I transfer SOL from my wallet to a PDA (~1000 Lamports). I get
Transaction simulation failed: Transaction results in an account (2) without insufficient funds for rent
Do I need to initialize my System Account PDA before sending the SOL?
Every account on Solana needs to have lamports equal to at least the minimum rent exemption i.e. 2 years worth of rent. Otherwise, the validators will drop the account.
Since System Account
doesn't hold any data, you can quickly check the rent exempt requirement using solana-cli:
solana rent 0
Rent per byte-year: 0.00000348 SOL
Rent per epoch: 0.000002439 SOL
Rent-exempt minimum: 0.00089088 SOL
So you need to send at least 890880
lamports to a System
account. Any amount below this doesn't fulfill the rent-exemption limit and the transaction won't go through.
Note: Once you transfer the ownership of the account to a PDA, it is no longer a System account. Your program becomes the owner of the account but the rent condition remains the same as long as the length of data is 0
.