Fees and rent
Signature fees, prioritization fees and rent-exempt accounts.
TestnetVerified Oct 15, 2026
On this page
Fee model#
- Every signature costs a fixed 5,000 lamports (testnet value, re-assessed before mainnet). A simple transfer carries one signature.
- 50% of each fee is burned; the rest goes to the validator.
- When blocks are busy, transactions can add prioritization fees (a compute-unit price times the units used) to be scheduled first. On an idle testnet the base fee alone lands immediately.
- There is no gas-price auction and no EIP-1559 base fee: the signature fee does not move with demand.
Recommended settings#
On Testnet, send transactions with default fees — they confirm without prioritization. Only set a compute-unit price if your transactions are being dropped under load.
import { ComputeBudgetProgram } from "@solana/web3.js";
// Optional: only needed under congestion.
const prioritize = ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 1 });Rent#
Every account must hold a minimum KYV balance to stay alive (rent-exempt); the minimum depends on the account's size. Query it per account instead of guessing:
const minBalance = await connection.getMinimumBalanceForRentExemption(accountSizeInBytes);Token accounts are accounts too: a new ATA needs its rent covered at creation. The faucet pays this for tKUSD claims; when your own app creates accounts for users, pay it the same way.
Typical costs#
Approximate, in KYV, which has no monetary value. 5,000 lamports = 0.000005 KYV.
| Operation | Signatures | Base cost |
|---|---|---|
| Native transfer | 1 | 0.000005 KYV |
| SPL transfer | 1 | 0.000005 KYV (plus one-time ATA rent for a new recipient) |
| Program deploy | Several | Base fee per signature, plus rent for the program-data account |
Something wrong or missing on this page? Send developer feedback.