WebSocket Subscriptions
Assine mudanças de conta, logs de transação e confirmação de assinatura via Solana WebSocket JSON-RPC.
Busque em todas as páginas da documentação
Assine mudanças de conta, logs de transação e confirmação de assinatura via Solana WebSocket JSON-RPC.
Cartão de receita para referência rápida - pronto para copiar e colar.
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);
}Quando usar:
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("failed", n.value.err);
} else {
console.log("confirmed");
}
abort.abort();
break;
}
}
watchSignature("YOUR_TX_SIGNATURE");O que isso demonstra:
signatureNotifications resolve quando transação atinge commitment.accountNotifications envia novo estado de conta em escritas.AbortController limpa assinaturas no unmount.*Subscribe, recebe mensagens push *Notification.*Unsubscribe.| Método | Dispara quando |
|---|---|
accountSubscribe | Lamports/dados da conta mudam |
logsSubscribe | Transação menciona programa/conta |
signatureSubscribe | Transação atinge commitment |
slotSubscribe | Novo slot processado |
// Logs subscription with mentions filter (provider support varies)
// Use rpcSubscriptions.logsNotifications({ mentions: [programId] })wss:// das docs do provedor.confirmed ou finalized.| Alternativa | Use quando | Não use quando |
|---|---|---|
| Polling HTTP | Atualizações raras, serverless | Reatividade de UI sub-segundo |
| Yellowstone gRPC | Throughput de indexer | App de carteira simples |
| Webhooks (Helius) | Ingestão server-side | Cliente puro no browser |
solana logs CLI | Depuração de desenvolvedor | Features de usuário em produção |
Frequentemente wss://api.devnet.solana.com - confirme com seu provedor; pode diferir do host HTTPS.
Específico do provedor - agrupe contas relacionadas ou use indexer server-side para centenas.
Use APIs de notificação de log de createSolanaRpcSubscriptions - veja docs kit para nomes exatos na sua versão fixada.
Sim - ws://127.0.0.1:8900 ou porta WS local documentada pelo provedor enquanto test-validator roda.
Abort o async iterator ou chame RPC unsubscribe com id de assinatura dos internals do kit.
Conta pode mudar várias vezes por slot - deduplique por slot ou igualdade de lamports na UI.
Assinatura tem menor latência e menos carga RPC que loops de polling apertado.
Combinação ruim - conexões são long-lived; use webhooks ou polling em serverless.
Filtra transações referenciando programa ou pubkey de conta - reduz ruído.
Útil para relógios de UI orientados por slot e coordenar leituras em limites de slot.
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