Core RPC Methods
Os métodos de leitura essenciais que todo cliente Solana usa: informações de conta, saldos, scans de programa e buscas em lote.
Busque em todas as páginas da documentação
Os métodos de leitura essenciais que todo cliente Solana usa: informações de conta, saldos, scans de programa e buscas em lote.
Cartão de receita para referência rápida - pronto para copiar e colar.
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
await rpc.getAccountInfo(pubkey, { encoding: "base64" }).send();
await rpc.getBalance(pubkey).send();
await rpc.getMultipleAccounts([pk1, pk2]).send();
await rpc.getProgramAccounts(programId, { encoding: "base64" }).send();Quando usar:
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const SYSTEM_PROGRAM = address("11111111111111111111111111111111");
const wallet = address("YOUR_WALLET_PUBKEY");
const [balance, accountInfo, multi] = await Promise.all([
rpc.getBalance(wallet, { commitment: "confirmed" }).send(),
rpc.getAccountInfo(SYSTEM_PROGRAM, { encoding: "base64" }).send(),
rpc.getMultipleAccounts([wallet, SYSTEM_PROGRAM], {
commitment: "confirmed",
encoding: "base64",
}).send(),
]);
console.log({
lamports: balance.value,
systemExecutable: accountInfo.value?.executable,
multiCount: multi.value?.length,
});O que isso demonstra:
getBalance retorna lamports para carteiras system-owned.getAccountInfo retorna owner, lamports, dados, flag executable.getMultipleAccounts agrupa até limites do provedor em um round trip RPC.commitment e encoding.base64 é padrão para dados binários de programa; jsonParsed funciona para alguns programas SPL em nós que suportam.getProgramAccounts sem filtros escaneia todo o espaço do programa - caro na mainnet.value null significa que a conta não existe no commitment escolhido.| Método | Retorna | Custo |
|---|---|---|
getAccountInfo | Conta única | Baixo |
getBalance | Só lamports | Baixo |
getMultipleAccounts | Até N contas | Médio |
getProgramAccounts | Todas contas correspondentes | Alto sem filtros |
// Prefer address() helper for base58 pubkeys
import { address, assertIsAddress } from "@solana/kit";
const mint = address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
assertIsAddress(mint);value: null quebra parsers ingênuos. Correção: verifique null antes de decodificar.base64.getMultipleAccounts. Correção: divida em lotes de 100 ou conforme docs do provedor.confirmed. Correção: polling ou assinatura após transações.| Alternativa | Use quando | Não use quando |
|---|---|---|
DAS getAsset | Metadados NFT/comprimidos | Contas de programa customizadas |
| Geyser/Yellowstone | Streaming em escala de indexer | Saldo simples de carteira |
solana account CLI | Depuração pontual | Leituras de app em produção |
| APIs enhanced Helius | Saldos de token parseados | Lock-in de provedor inaceitável |
base64 para dados genéricos de programa; jsonParsed quando o provedor documenta suporte SPL para seu tipo de conta.
Depende do provedor - divida 50-100 pubkeys por chamada como padrão seguro.
Sim - lamports totais na conta; contas de token mantêm saldos separados por mint.
Escaneia todas as contas owned pelo programa - sempre adicione filtros na mainnet.
Sim - aponte URL RPC para http://127.0.0.1:8899.
Use clientes Anchor/codama ou layouts Borsh correspondentes às structs on-chain.
confirmed após transações do usuário; processed apenas para contadores ao vivo de baixo risco.
Sem garantias de cache server-side - trate como leitura ao vivo; adicione cache TTL próprio com cuidado.
getProgramAccounts escaneia por programa owner; getMultipleAccounts busca pubkeys explícitas que você já conhece.
Sim - passe encoding: "base64" em objetos params com checagem TypeScript completa.
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: 19 de jul. de 2026