RPC y Suscripciones
RPC JSON HTTP tipado y suscripciones WebSocket con @solana/kit 7.0.0.
Busca en todas las páginas de la documentación
RPC JSON HTTP tipado y suscripciones WebSocket con @solana/kit 7.0.0.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
import { createSolanaRpc, createSolanaRpcSubscriptions, address } from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const balance = await rpc.getBalance(address("PUBKEY")).send();
const ws = createSolanaRpcSubscriptions(process.env.RPC_WSS_URL!);Cuándo usar esto:
fetch sin tipar a JSON-RPC.import { createSolanaRpc, createSolanaRpcSubscriptions, address } from "@solana/kit";
const rpc = createSolanaRpc("https://api.devnet.solana.com");
const rpcSubscriptions = createSolanaRpcSubscriptions("wss://api.devnet.solana.com");
async function watchBalance(owner: string) {
const acct = address(owner);
const { value } = await rpc.getBalance(acct).send();
console.log("initial", value);
const abort = new AbortController();
const stream = await rpcSubscriptions
.accountNotifications(acct, { commitment: "confirmed" })
.subscribe({ abortSignal: abort.signal });
for await (const n of stream) {
console.log("update", n.value.lamports);
}
}Lo que esto demuestra:
.send().AbortController para limpieza.createSolanaRpc envuelve JSON-RPC 2.0 con métodos y respuestas tipados.createSolanaRpcSubscriptions abre un WebSocket y expone notificaciones como iterables asíncronos.commitment en las llamadas controla la latencia frente a la finalidad.| Método | Uso |
|---|---|
getBalance | Saldo de SOL |
getAccountInfo | Datos brutos de la cuenta |
getLatestBlockhash | Vida útil de la transacción |
simulateTransaction | Errores de pre-vuelo |
sendTransaction | Enviar tx firmada |
// Pasar commitment en lecturas que potencian la UI de tesorería
await rpc.getBalance(owner, { commitment: "finalized" }).send();wss:// de la documentación del proveedor.getAsset necesita hosts habilitados para DAS. Solución: matriz de capacidades por proveedor..send() - los constructores RPC son perezosos hasta que se envían. Solución: encadenar siempre .send().| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Yellowstone gRPC | Ingesta a escala de indexador | UI de billetera simple |
| Webhooks de Helius | Push de eventos del lado del servidor | Cliente de navegador puro |
| Sondeo HTTP | Actualizaciones raras | UI de saldo sub-segundo |
| Conexión web3.js | Mantenimiento heredado | Aplicaciones Greenfield |
Sí - apunta RPC y billetera al mismo cluster.
Evitar en un mismo módulo - migrar completamente por ruta.
Las billeteras proporcionan firmantes; kit construye mensajes.
Bloquear 7.0.0 en package.json y CI.
Instrucciones de presupuesto de cómputo antes de enviar.
Surfpool 0.12.0 o validador local con clones de devnet.
Siempre lamports bigint en el código de kit.
confirmed para UI; finalized para tesorería.
Lecturas en el servidor; firma en componentes cliente.
Simular, leer logs, verificar propietarios de cuentas.
Versiones de Stack: Esta página fue 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026