RPC Basics
10 exemplos para você começar com Solana JSON-RPC - 7 básicos e 3 intermediários.
Busque em todas as páginas da documentação
10 exemplos para você começar com Solana JSON-RPC - 7 básicos e 3 intermediários.
@solana/kit 7.0.0 para exemplos TypeScriptnpm install @solana/kit@7.0.0Nós Solana falam JSON-RPC 2.0 via HTTP POST.
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getHealth"
}'camelCase como getBalance, getSlot.result ou error com código e mensagem.Leituras type-safe com @solana/kit 7.0.0.
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const health = await rpc.getHealth().send();
console.log(health);createSolanaRpc encapsula chamadas JSON-RPC baseadas em fetch..send() executa a requisição e retorna resultados tipados.Relacionado: Core RPC Methods - métodos comuns
Leituras mais rápidas - podem reverter em forks.
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot({ commitment: "processed" }).send();
console.log("processed slot:", slot);Padrão para a maioria das leituras de aplicativo.
const balance = await rpc
.getBalance(address("11111111111111111111111111111111"), {
commitment: "confirmed",
})
.send();
console.log("lamports:", balance.value);confirmed em envios antes de mostrar UI de sucesso.Leituras mais seguras para tesouraria e contabilidade.
const account = await rpc
.getAccountInfo(address("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"), {
commitment: "finalized",
encoding: "base64",
})
.send();
console.log(account.value?.lamports);Provedores retornam HTTP 429 quando limitados.
curl -i https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1,"method":"getSlot"}' | head -20Relacionado: RPC Providers - comparação de provedores
Comandos de terminal atingem o mesmo JSON-RPC do seu app.
solana config set --url https://api.devnet.solana.com
solana slotsolana slot mapeia para getSlot.RPC_URL do app.Reduza round trips agrupando JSON-RPC em um corpo HTTP.
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const [slot, blockHeight] = await Promise.all([
rpc.getSlot().send(),
rpc.getBlockHeight().send(),
]);
console.log({ slot, blockHeight });Promise.all paralelo ainda usa múltiplas requisições HTTP a menos que o provedor suporte arrays em lote.getMultipleAccounts em vez de N chamadas getAccountInfo.Relacionado: Pagination & Efficiency - leituras eficientes
Assinaturas precisam de transporte WebSocket.
# HTTP for one-shot reads
curl https://api.devnet.solana.com ...
# WS for accountSubscribe (kit or ws client)accountSubscribe, logsSubscribe exigem socket persistente.Relacionado: WebSocket Subscriptions - atualizações ao vivo
Digital Asset Standard API estende leituras para NFTs e ativos comprimidos.
// DAS methods (e.g. getAsset) live on provider DAS-enabled endpoints
// Standard getAccountInfo still underlies raw account bytesgetAccountInfo para contas de programa customizadas.Relacionado: The DAS API - leituras de ativos
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