Suscripciones WebSocket
Suscríbete a cambios de cuenta, registros de transacciones y confirmación de firmas a través de JSON-RPC de Solana WebSocket.
Busca en todas las páginas de la documentación
Suscríbete a cambios de cuenta, registros de transacciones y confirmación de firmas a través de JSON-RPC de Solana WebSocket.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
import { createSolanaRpcSubscriptions, address } from "@solana/kit";
const rpcSubscriptions = createSolanaRpcSubscriptions(
"wss://api.devnet.solana.com"
);
const abort = new AbortController();
const accountNotifications = await rpcSubscriptions
.accountNotifications(address("YOUR_ACCOUNT"), { commitment: "confirmed" })
.subscribe({ abortSignal: abort.signal });
for await (const notification of accountNotifications) {
console.log(notification.value.lamports);
}Cuándo usar esto:
import {
createSolanaRpcSubscriptions,
address,
} from "@solana/kit";
const rpcSubscriptions = createSolanaRpcSubscriptions(
"wss://api.devnet.solana.com"
);
async function watchSignature(signature: string) {
const abort = new AbortController();
const sigNotifications = await rpcSubscriptions
.signatureNotifications(signature, { commitment: "confirmed" })
.subscribe({ abortSignal: abort.signal });
for await (const n of sigNotifications) {
if (n.value.err) {
console.error("falló", n.value.err);
} else {
console.log("confirmado");
}
abort.abort();
break;
}
}
watchSignature("YOUR_TX_SIGNATURE");Lo que esto demuestra:
signatureNotifications se resuelve cuando la transacción alcanza el compromiso.accountNotifications envía el nuevo estado de la cuenta al escribir.AbortController limpia las suscripciones al desmontar.*Subscribe, recibe mensajes push *Notification.*Unsubscribe.| Método | Se dispara cuando |
|---|---|
accountSubscribe | Cambian los lamports/datos de la cuenta |
logsSubscribe | La transacción menciona un programa/cuenta |
signatureSubscribe | La transacción alcanza el compromiso |
slotSubscribe | Se procesa una nueva ranura |
// Suscripción de logs con filtro de menciones (el soporte del proveedor varía)
// Usa rpcSubscriptions.logsNotifications({ mentions: [programId] })wss:// de la documentación del proveedor.confirmed o finalized.| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Sondeo HTTP | Actualizaciones raras, sin servidor | Reactividad de UI sub-segundo |
| Yellowstone gRPC | Rendimiento del indexador | Aplicación de billetera simple |
| Webhooks (Helius) | Ingesta del lado del servidor | Cliente de navegador puro |
solana logs CLI | Depuración del desarrollador | Funciones de usuario de producción |
A menudo wss://api.devnet.solana.com - confirma con tu proveedor; puede diferir del host HTTPS.
Específico del proveedor - agrupa cuentas relacionadas o usa un indexador del lado del servidor para cientos.
Usa las API de notificación de logs de createSolanaRpcSubscriptions - consulta la documentación del kit para conocer los nombres exactos de los métodos en tu versión fijada.
Sí - ws://127.0.0.1:8900 o el puerto WS local documentado por el proveedor mientras se ejecuta el validador de prueba.
Aborta el iterador asíncrono o llama a unsubscribe RPC con el id de suscripción de los internos del kit.
La cuenta puede cambiar varias veces por ranura - deduplica por ranura o igualdad de lamports en la UI.
Subscribe tiene menor latencia y menos carga RPC que los bucles de sondeo ajustados.
Mal ajuste - las conexiones son de larga duración; usa webhooks o sondeo en entornos sin servidor.
Filtra a transacciones que referencian una clave pública de programa o cuenta - reduce el ruido.
Útil para relojes de UI impulsados por ranuras y para coordinar lecturas en los límites de las ranuras.
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