Una transacción solo se ejecuta si lleva una
firma válida de cada
firmante requerido. Durante el desarrollo local, normalmente se utiliza esa clave como un
Keypair y se firma directamente. En
producción, la pregunta importante es diferente: ¿dónde reside la clave privada
y quién está autorizado a firmar con ella?
Nunca incorpores claves privadas en código del lado del cliente, las incluyas en un frontend ni las confirmes en el control de versiones. Cualquiera que obtenga una clave tendrá control total de los fondos de esa cuenta.
Enfoques de firma
| Enfoque | Dónde reside la clave | Quién firma | Ideal para |
|---|---|---|---|
| keypair local | Un archivo o variable de entorno en la máquina | Tu código, directamente | Desarrollo local, pruebas, CI |
| Billetera de navegador | La billetera del usuario final (p. ej., Phantom, Solflare) | El usuario final, por transacción | dApps frontend donde los usuarios firman sus propias transacciones |
| KMS / HSM en la nube | Un servicio de claves respaldado por hardware (AWS KMS, GCP KMS, Vault) | Tu backend solicita una firma al servicio | Servicios backend, operaciones de tesorería, entornos regulados |
| Billeteras gestionadas / MPC | Dividida o en custodia en la infraestructura de un proveedor | El proveedor co-firma según tu política | Billeteras integradas, flujos de aprobación, custodia institucional |
El keypair local es el único enfoque que coloca el material de clave sin procesar dentro de tu aplicación. Cada enfoque de producción mantiene la clave en una infraestructura dedicada y solicita a dicha infraestructura que firme en tu nombre.
Firma en el backend
Cuando un servidor necesita firmar (pagar comisiones, enviar transacciones de programas u
operar una tesorería), utiliza un backend de gestión de claves dedicado en lugar de un
keypair sin protección. La Solana Foundation mantiene Keychain, una
biblioteca de firma unificada (Rust, TypeScript, Python y Go) que expone una única
interfaz SolanaSigner en todos los backends de la tabla anterior: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila y Fordefi.
Como la interfaz es común a todos los backends, puedes desarrollar en local con una
clave en memoria y cambiar a un backend de producción mediante configuración, sin
reescribir el código de la aplicación (los backends que difunden la transacción por ti, como Crossmint,
se invocan en su lugar mediante un flujo de firma y envío). Keychain es compatible con
@solana/kit, el
SDK de Rust, solders (Python) y solana-go v2
(Go).
Keychain
Firma unificada para claves locales, KMS, HSM y backends de billetera gestionada.
Elegir un backend
Compara modelos de custodia y elige el backend de firma adecuado para tu aplicación.
Para la lista de verificación completa de producción — gestión de claves, seguridad de RPC y monitoreo — consulta Preparación para Producción.
Is this page helpful?