Construindo mensagens de transação
Componha mensagens de transação versionadas com fee payer, lifetime e instruções.
Busque em todas as páginas da documentação
Componha mensagens de transação versionadas com fee payer, lifetime e instruções.
Cartão de receita de referência rápida - pronto para copiar e colar.
import {
createTransactionMessage,
pipe,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstruction,
} from "@solana/kit";Quando usar:
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)
);O que isso demonstra:
pipe mantém transformações legíveis e imutáveis.| Etapa | API |
|---|---|
| Versão | createTransactionMessage({ version: 0 }) |
| Fee payer | setTransactionMessageFeePayerSigner |
| Lifetime | setTransactionMessageLifetimeUsingBlockhash |
| Instruções | appendTransactionMessageInstruction(s) |
| Alternativa | Use quando | Não use quando |
|---|---|---|
| Builders Codama | Ixs de programa tipadas | Transferência system one-off |
| Helpers gill | Bootstrap mais rápido | Metas de conta customizadas |
CLI solana transfer | Envio manual de SOL | Integração em app |
Sim - aponte RPC e carteira para o mesmo cluster.
Evite em um módulo - migre por rota inteira.
Carteiras fornecem signers; kit constrói mensagens.
Trave 7.0.0 no package.json e CI.
Instruções compute budget antes do envio.
Surfpool 0.12.0 ou validador local com clones devnet.
Sempre lamports bigint no código kit.
confirmed para UI; finalized para tesouraria.
Leituras no servidor; assinatura em client components.
Simule, leia logs, verifique owners de conta.
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: 19 de jul. de 2026