Aluguel & Isenção de Aluguel
As contas Solana devem conter lamports suficientes para serem isentas de aluguel - um depósito único baseado no tamanho dos dados. Sem ele, as contas não podem persistir na rede.
Busque em todas as páginas da documentação
As contas Solana devem conter lamports suficientes para serem isentas de aluguel - um depósito único baseado no tamanho dos dados. Sem ele, as contas não podem persistir na rede.
solana rent 200const rent = await rpc.getMinimumBalanceForRentExemption(200n).send();Quando usar isso:
init em programas Anchoruse anchor_lang::prelude::*;
#[derive(Accounts)]
pub struct InitConfig<'info> {
#[account(
init,
payer = payer,
space = 8 + Config::INIT_SPACE,
)]
pub config: Account<'info, Config>,
#[account(mut)]
pub payer: Signer<'info>,
pub system_program: Program<'info, System>,
}
#[account]
#[derive(InitSpace)]
pub struct Config {
pub admin: Pubkey,
pub fee_bps: u16,
}import { createSolanaRpc } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const space = 8 + 32 + 2; // discriminador + campos
const minBalance = await rpc.getMinimumBalanceForRentExemption(BigInt(space)).send();
console.log("Mínimo isento de aluguel:", minBalance, "lamports");O que isso demonstra:
init de pelo menos o mínimo isento de aluguel do pagador para a nova conta| Tipo de Conta | Bytes | Aluguel Aprox. (lamports) |
|---|---|---|
| Carteira Vazia | 0 | ~890.880 |
| Conta Token SPL | 165 | ~2.039.280 |
| Estrutura pequena Anchor | 8 + 40 | ~1.500.000+ |
Valores exatos mudam com os parâmetros do cluster - sempre consulte a RPC.
space subdimensionado no Anchor - init falha ou trunca dados. Correção: use o derive InitSpace ou cálculo manual com comprimentos máximos de string/vetor.close.getMinimumBalanceForRentExemption nos clientes.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
CLI solana rent | Estimativas rápidas no terminal | Lógica de programa na rede |
| Consulta de aluguel RPC | Exibição dinâmica de custo na interface do cliente | Dentro do BPF (use sysvar ou buffer fixo) |
| Compressão de estado | Milhões de registros pequenos | Estado mutável ativo |
Financiar uma conta com lamports suficientes para cobrir aproximadamente 2 anos de aluguel de armazenamento adiantado. A conta então persiste sem cobranças de aluguel contínuas.
space = 8 + sizeof campos serializados (com comprimentos máximos para String/Vec). Consulte a RPC para lamports exatos.
Sim. Feche a conta e os lamports retornarão para um destino que você especificar.
O comportamento legado poderia coletar lixo; a prática moderna exige isenção de aluguel na criação. Inits sem fundos falham.
Sim. O aluguel escala linearmente com o tamanho dos dados em bytes.
O signatário payer em init - tipicamente o usuário ou o tesouro do protocolo.
Sim. Programas implantados mantêm lamports para o tamanho de sua conta de dados do programa.
O crescimento dos dados pode exigir lamports adicionais transferidos para manter a isenção de aluguel.
O sysvar Rent contém os parâmetros de cálculo. Raramente lido diretamente em programas modernos.
Padrão de UX comum para ATAs e PDAs. Orce o tesouro de acordo.
Mesma fórmula; os valores são idênticos para o mesmo tamanho de dados.
Não. Apenas o tamanho dos dados e os parâmetros de aluguel do cluster importam.
Versões da Stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026