Conceptos básicos de RPC
10 ejemplos para empezar con Solana JSON-RPC: 7 básicos y 3 intermedios.
Busca en todas las páginas de la documentación
10 ejemplos para empezar con Solana JSON-RPC: 7 básicos y 3 intermedios.
@solana/kit 7.0.0 para ejemplos de TypeScriptnpm install @solana/kit@7.0.0Los nodos de Solana utilizan JSON-RPC 2.0 sobre POST HTTP.
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 o error con código y mensaje.Lecturas seguras de tipos con @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 envuelve las llamadas JSON-RPC basadas en fetch..send() ejecuta la solicitud y devuelve resultados tipados.Relacionado: Métodos RPC principales - métodos comunes
processedLecturas más rápidas: pueden revertirse en bifurcaciones.
import { createSolanaRpc, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const slot = await rpc.getSlot({ commitment: "processed" }).send();
console.log("slot procesado:", slot);confirmedPredeterminado para la mayoría de las lecturas de aplicaciones.
const balance = await rpc
.getBalance(address("11111111111111111111111111111111"), {
commitment: "confirmed",
})
.send();
console.log("lamports:", balance.value);confirmed en los envíos antes de mostrar la UI de éxito.finalizedLecturas más seguras para tesorería y contabilidad.
const account = await rpc
.getAccountInfo(address("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"), {
commitment: "finalized",
encoding: "base64",
})
.send();
console.log(account.value?.lamports);finalized no se puede revertir en condiciones normales de red.Los proveedores devuelven HTTP 429 cuando se limitan.
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: Proveedores RPC - comparación de proveedores
Los comandos de terminal acceden al mismo JSON-RPC que su aplicación.
solana config set --url https://api.devnet.solana.com
solana slotsolana slot se mapea a getSlot.RPC_URL de la aplicación.Reduzca los viajes de ida y vuelta agrupando JSON-RPC en un solo cuerpo 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 en paralelo todavía usa múltiples solicitudes HTTP a menos que el proveedor admita matrices de lotes.getMultipleAccounts sobre N llamadas a getAccountInfo.Relacionado: Paginación y eficiencia - lecturas eficientes
Las suscripciones necesitan transporte WebSocket.
# HTTP para lecturas únicas
curl https://api.devnet.solana.com ...
# WS para accountSubscribe (kit o cliente ws)accountSubscribe, logsSubscribe requieren un socket persistente.Relacionado: Suscripciones WebSocket - actualizaciones en vivo
La API de Digital Asset Standard extiende las lecturas para NFTs y activos comprimidos.
// Los métodos DAS (por ejemplo, getAsset) residen en los endpoints habilitados para DAS del proveedor
// El getAccountInfo estándar todavía subyace a los bytes brutos de la cuentagetAccountInfo para cuentas de programas personalizadas.Relacionado: La API DAS - lecturas de activos
Versiones de la pila: Esta página se escribió 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 y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026