Firmar Transacciones y Mensajes
Firma mensajes de transacción y cargas útiles de autenticación fuera de la cadena con billeteras conectadas.
Busca en todas las páginas de la documentación
Firma mensajes de transacción y cargas útiles de autenticación fuera de la cadena con billeteras conectadas.
import { signTransactionMessageWithSigners } from "@solana/kit";
// el adaptador de billetera proporciona un adaptador compatible con TransactionSendingSignerCuándo usar esto:
"use client";
import { useWallet } from "@solana/wallet-adapter-react";
import {
createTransactionMessage,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstruction,
signTransactionMessageWithSigners,
createSolanaRpc,
} from "@solana/kit";
import { getTransferSolInstruction } from "@solana-program/system";
export function useSendSol() {
const { publicKey, signTransaction } = useWallet();
const rpc = createSolanaRpc(process.env.NEXT_PUBLIC_RPC_URL!);
return async function send(recipient: string, lamports: bigint) {
if (!publicKey || !signTransaction) throw new Error("Wallet not connected");
const { value: bh } = await rpc.getLatestBlockhash().send();
// Utiliza el ayudante de signer de la billetera de tu adaptador
let msg = createTransactionMessage({ version: 0 });
// ... adjuntar instrucción de transferencia, firmar con la billetera, enviar a través de rpc
};
}Lo que esto demuestra:
kit; la billetera proporciona la capacidad de firma.signMessage devuelve una firma ed25519 sobre bytes arbitrarios.TransactionSendingSigner une el adaptador al pipeline de kit.signTransaction devuelve una tx confirmada - solo firma; todavía tienes que enviar.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Tx patrocinada por el servidor | Onboarding sin gas | Autocustodia sin confianza |
| Adaptador de billetera móvil | React Native | Solo extensión de escritorio |
Coincide la URL de RPC, la red de la billetera y los IDs de programa con un clúster.
Usa @solana/kit 7.0.0 para código nuevo de frontend.
Surfpool 0.12.0 o devnet con faucet SOL.
confirmed para UX; finalized para lecturas de alto valor.
Proveedores en el layout del cliente; las lecturas pueden ser del lado del servidor.
Muestra reintentar; nunca asumas aprobación.
Instrucciones de presupuesto de cómputo en mainnet congestionada.
Usa Mobile Wallet Adapter para aplicaciones React Native.
Nunca expongas keypairs del servidor al navegador.
Regenera clientes tipados en CI.
kitVersiones 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