Firma y Envío
Firma mensajes de transacción y confirma el aterrizaje en Agave 4.1.1.
Busca en todas las páginas de la documentación
Firma mensajes de transacción y confirma el aterrizaje en Agave 4.1.1.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
import {
signTransactionMessageWithSigners,
getSignatureFromTransaction,
sendAndConfirmTransactionFactory,
createSolanaRpc,
createSolanaRpcSubscriptions,
} from "@solana/kit";
const signed = await signTransactionMessageWithSigners(message);
const sendAndConfirm = sendAndConfirmTransactionFactory({ rpc, rpcSubscriptions });
await sendAndConfirm(signed, { commitment: "confirmed" });Cuándo usar esto:
import {
createSolanaRpc,
createSolanaRpcSubscriptions,
signTransactionMessageWithSigners,
getSignatureFromTransaction,
sendAndConfirmTransactionFactory,
getBase64EncodedWireTransaction,
} from "@solana/kit";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const rpcSubscriptions = createSolanaRpcSubscriptions(process.env.RPC_WSS_URL!);
const signed = await signTransactionMessageWithSigners(message);
const signature = getSignatureFromTransaction(signed);
const simulation = await rpc
.simulateTransaction(getBase64EncodedWireTransaction(signed), { sigVerify: true })
.send();
if (simulation.value.err) throw new Error(JSON.stringify(simulation.value.err));
const sendAndConfirm = sendAndConfirmTransactionFactory({ rpc, rpcSubscriptions });
await sendAndConfirm(signed, { commitment: "confirmed" });
console.log("https://explorer.solana.com/tx/" + signature + "?cluster=devnet");Lo que esto demuestra:
sendAndConfirmTransactionFactory empareja el envío HTTP con la suscripción de firma.sendTransaction transmite al clúster.| Estrategia | Compromiso |
|---|---|
sendAndConfirm | Simple; necesita WSS |
Encuesta getSignatureStatuses | Funciona solo con HTTP |
signatureNotifications | Estado de UI detallado |
rpcSubscriptions.processed tratado como final - posible reversión de la UI. Solución: confirmar en confirmed o superior.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Paquetes Jito | Prioridad de aterrizaje | Pruebas de humo en Devnet |
Solo sendTransaction | Analíticas de "disparar y olvidar" | Transferencias visibles para el usuario |
| Envío patrocinado por el servidor | Experiencia de usuario sin gas | Solo autocustodia sin confianza |
Sí - apunta RPC y billetera al mismo clúster.
Evitar en un 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 del envío.
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.
Lectura en el servidor; firma en componentes cliente.
Simular, leer registros, 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