Creación de Mensajes de Transacción
Compón mensajes de transacción versionados con pagador de tarifas, tiempo de vida e instrucciones.
Busca en todas las páginas de la documentación
Compón mensajes de transacción versionados con pagador de tarifas, tiempo de vida e instrucciones.
Tarjeta de receta de referencia rápida, lista para copiar y pegar.
import {
createTransactionMessage,
pipe,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstruction,
} from "@solana/kit";Cuándo usar esto:
import {
createSolanaRpc,
createTransactionMessage,
pipe,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstructions,
address,
} from "@solana/kit";
import {
getSetComputeUnitLimitInstruction,
getSetComputeUnitPriceInstruction,
} from "@solana-program/compute-budget";
const rpc = createSolanaRpc(process.env.RPC_URL!);
const { value: blockhash } = await rpc.getLatestBlockhash().send();
const budgetIxs = [
getSetComputeUnitLimitInstruction({ units: 200_000 }),
getSetComputeUnitPriceInstruction({ microLamports: 5_000n }),
];
const message = pipe(
createTransactionMessage({ version: 0 }),
(m) => setTransactionMessageFeePayerSigner(walletSigner, m),
(m) => setTransactionMessageLifetimeUsingBlockhash(blockhash, m),
(m) => appendTransactionMessageInstructions(budgetIxs, m),
(m) => appendTransactionMessageInstructions(programIxs, m)
);Lo que esto demuestra:
pipe mantiene las transformaciones legibles e inmutables.| Paso | API |
|---|---|
| Versión | createTransactionMessage({ version: 0 }) |
| Pagador de tarifas | setTransactionMessageFeePayerSigner |
| Tiempo de vida | setTransactionMessageLifetimeUsingBlockhash |
| Instrucciones | appendTransactionMessageInstruction(s) |
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Constructores Codama | Instrucciones de programa tipadas | Transferencia de sistema única |
| Ayudantes gill | Arranque más rápido | Metadatos de cuenta personalizados |
CLI solana transfer | Envío manual de SOL | Integración de aplicaciones |
Sí, apunta el RPC y la billetera al mismo clúster.
Evita hacerlo en un módulo; migra completamente por ruta.
Las billeteras proporcionan firmantes; kit construye mensajes.
Bloquea 7.0.0 en package.json y CI.
Instrucciones del presupuesto de cómputo antes del envío.
Surfpool 0.12.0 o un validador local con clones de devnet.
Siempre bigint lamports en el código de kit.
confirmed para UI; finalized para tesorería.
Lectura en el servidor; firma en componentes del 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: 19 jul 2026