Cómo crear una wallet de Solana: una guía técnica
Autor: Usman Asim
En los últimos años, Solana se ha consolidado como una de las redes blockchain más activas, con un promedio de más de 1.2 millones de usuarios activos diarios y 60M+ transacciones (sin contar votos) por día. Esa actividad viene impulsada por DeFi, DePIN, instituciones, empresas y más, todo a gran velocidad y a fracciones de centavo por transacción.
Si buscas construir en Solana y aprovechar este ecosistema en crecimiento, empezar con una wallet es un buen punto de partida. Las wallets son la puerta de entrada para interactuar con cualquier chain: firman transacciones, guardan activos y hacen funcionar las apps.
En esta guía te mostramos cómo crear una wallet común de Solana usando los endpoints RPC confiables de Alchemy para conexiones estables a la red, y luego comparamos wallets comunes con smart wallets. Empecemos en devnet para que puedas probar todo sin gastar SOL real.
Wallets en Solana: lo básico
En Solana, las wallets no funcionan exactamente igual que en Ethereum. En lugar de una división estricta entre cuentas controladas por el usuario (EOAs) y contratos inteligentes, Solana trata todo como cuentas, que son unidades de almacenamiento de datos en la blockchain. Aquí, una "wallet" suele ser simplemente un par de claves (pública y privada) que te permite controlar una o más de estas cuentas. Las cuentas pueden contener tokens SOL, otros activos, o incluso código ejecutable de programs (la versión de Solana de los contratos inteligentes).
Este enfoque uniforme abre la puerta a funciones interesantes como las program derived addresses (PDAs), donde los programas pueden generar direcciones e incluso firmar transacciones en nombre de los usuarios sin necesitar sus claves privadas.
Es un modelo más flexible que el de Ethereum, donde las EOAs solo sirven para firmar y los contratos manejan la lógica por separado. Para más detalles sobre el modelo de cuentas de Solana, consulta la documentación oficial de Solana sobre cuentas y wallets.
Las wallets de Solana se dividen generalmente en dos categorías:
- Wallets comunes (basadas en keypairs): son los pares de claves criptográficas básicos para firmar transacciones y administrar cuentas. Son ideales para scripts o pruebas, pero manejas las claves y las fees manualmente.
- Smart wallets (con account abstraction): elevan la experiencia al ocultar los detalles técnicos de la gestión de claves. Las smart wallets soportan cosas como autenticación social (por ejemplo, iniciar sesión con email o passkeys en lugar de seed phrases), patrocinio de gas/rent (donde alguien más paga las fees de transacción), transacciones agrupadas (varias acciones en una sola), e incluso comportamientos automatizados mediante lógica programable. El diseño de Solana las hace especialmente potentes para las apps, yendo más allá del enfoque de ERC-4337 de Ethereum, centrado en mejoras de UX. Profundiza en la account abstraction de Solana en el Solana Cookbook sobre gestión de wallets y en el análisis a fondo de ERC-4337 en Solana.
En este tutorial, construiremos una wallet común usando los endpoints RPC de Alchemy, que te dan acceso confiable a la red Solana sin necesidad de levantar tu propio nodo. Para funciones de smart wallet como el login social, combina un proveedor de wallets con la infraestructura de Alchemy.
Requisitos previos: configurando tu entorno de Devnet
Antes de entrar al código, asegurémonos de que estés listo. Este tutorial asume que tienes conocimientos básicos de JavaScript, pero iremos explicando los conceptos en el camino para que todos puedan seguir el ritmo. Esto es lo que necesitas:
-
Node.js (v16 o superior) y npm/yarn: es tu entorno de ejecución para correr código JS fuera del navegador. Puedes descargarlo desde nodejs.org si aún no lo tienes.
-
Un editor de código como VS Code o Cursor: un lugar donde escribir y depurar tu código. VS Code es gratuito y tiene buenas extensiones para desarrollo blockchain. Puedes configurarlo aquí. Cursor es como una versión más moderna de VS Code, con IA integrada. Puedes revisarlo aquí.
-
Conocimientos básicos de JavaScript: los ejemplos usan Node.js y Solana web3.js.
-
Una cuenta de Alchemy: regístrate gratis en dashboard.alchemy.com. Crea una nueva app, selecciona Solana (devnet para pruebas, mainnet para producción), y obtén tu API key. Ya que estás ahí, habilita también una chain EVM como Sepolia si quieres soporte híbrido: es útil para apps cross-chain.
-
Para wallets comunes: instala la librería Solana web3.js, que se encarga de la generación de claves, las conexiones y las transacciones. Esta librería es la opción estándar para interactuar con programs de Solana.
npm install @solana/web3.js
Consejo: construye todo primero en devnet. Es el entorno de pruebas principal, que imita perfectamente el despliegue en mainnet y te permite probar tus contratos, recorrer tus flujos y asegurarte de que todo funcione. Una vez que estés seguro, hayas desplegado en testnet y probado todo a fondo, pasar a mainnet es tan simple como cambiar la URL del RPC. No se necesitan cambios de código: solo hay que hacer el cambio.
Entendiendo la estructura de wallets de Solana
Antes de generar una wallet, demos un paso atrás y demos algo de contexto rápido sobre cómo funcionan las wallets de Solana. Esto te ayudará a entender por qué los pasos que vamos a seguir tienen sentido, especialmente si vienes de Ethereum.
- Cuentas vs. wallets: en Solana, una wallet es esencialmente un keypair que posee cuentas. Las cuentas son como contenedores de datos: pueden almacenar tu saldo de SOL, tokens o código de programas. A diferencia de Ethereum, donde las EOAs (direcciones de usuario) son distintas de las direcciones de contratos, Solana difumina esa línea: todo es una cuenta. Esto significa que puedes crear cuentas sobre la marcha, financiarlas por separado, e incluso hacer que los programs las controlen mediante PDAs. No hay creación automática de cuenta al generar la clave; se financia para inicializarla. Para profundizar más, revisa los conceptos centrales de Solana.
- Rent en lugar de fees de gas dinámicas: Solana no usa gas al estilo Ethereum para cada unidad de cómputo: las transacciones tienen fees planas (muy bajas, alrededor de $0.00025 en promedio en 2025), pero las cuentas pagan "rent" para mantener sus datos almacenados en la chain si su saldo baja de cierto umbral (alrededor de 0.00089 SOL por KB). Es como un depósito de almacenamiento: pagas por adelantado o mantienes suficiente SOL para quedar exento. Esto mantiene la red liviana al eliminar cuentas inactivas. Las transacciones siguen teniendo fees, pero el rent es la particularidad de Solana para la persistencia de datos. Puedes compararlo con el gas de Ethereum, que se cobra por operación y puede dispararse durante la congestión. El modelo de Solana prioriza la velocidad. Lee más en la documentación de rent de Solana.
- PDAs y programabilidad: los programs pueden derivar "program derived addresses" que se ven como direcciones normales, pero están controladas por código, no por claves, lo que permite funciones de smart wallet como la firma automatizada. Esto está más integrado en la arquitectura central de Solana que en las contract wallets de Ethereum.
Entender estos conceptos te ayuda a ver por qué las wallets de Solana se sienten más "programables" desde el inicio. Todo se remonta a ese concepto de cuentas flexibles.
Cómo crear una wallet común de Solana: paso a paso
Las wallets comunes son tu configuración básica: un simple keypair para firmar transacciones. Son perfectas para scripts de backend, pruebas, o cuando quieres control total sin abstracciones. En este tutorial usaremos @solana/web3.js para generar un keypair.
Luego usaremos el RPC de Alchemy para conectarnos a la red; sin una conexión RPC, tu wallet no puede consultar saldos ni enviar transacciones.
Paso 1: generar un keypair
Generar una wallet en Solana significa crear un par de claves criptográficas nuevo, esencialmente un par de claves vinculadas matemáticamente que funcionan juntas. La clave pública se convierte en tu dirección de wallet en Solana, que puedes compartir libremente con cualquiera que necesite enviarte fondos o interactuar con tu cuenta. La clave privada (también llamada secret key) es lo que demuestra que eres dueño de esa dirección y te permite firmar transacciones.
Aquí hay una distinción importante respecto a Ethereum: en Ethereum, cuando generas una Externally Owned Account (EOA), queda "lista" de inmediato y existe en la blockchain. En Solana, generar un keypair solo crea las claves criptográficas; la cuenta real en la blockchain no existe hasta que alguien financia esa dirección. Esto es parte del modelo de cuentas de Solana, donde las cuentas necesitan un saldo de exención de rent para persistir onchain.
Crea un nuevo archivo JS (por ejemplo, regular-wallet.js) y ejecuta este fragmento:
import { Keypair } from '@solana/web3.js';
const wallet = Keypair.generate();
console.log('Public Key (Wallet Address):', wallet.publicKey.toString());
console.log('Secret Key:', wallet.secretKey); // Secure this immediately! Never log in production.Ejecuta este script con node.js y listo: ya tienes una wallet.
Esto es lo que deberías haber recibido:
- Clave pública (dirección de la wallet): es una cadena codificada en base58 que se ve algo así como
7xj9WkvP6Az8vG5nXJh4Fq3qY8kPqT9wXVZN2xMqGnD4. Esto es lo que compartirás con otros cuando quieras recibir fondos, y es lo que usarás al conectarte a apps o al consultar tu saldo. Piénsalo como el número de tu cuenta bancaria: es seguro compartirlo públicamente. - Secret key: se devuelve como un
Uint8Array(un array de 64 bytes). Esta es tu clave privada y es la prueba criptográfica de que controlas esta wallet. Cualquiera que tenga acceso a esta secret key puede firmar transacciones y mover fondos de tu wallet. Nunca, bajo ninguna circunstancia, la compartas ni la subas a un sistema de control de versiones.
Prácticas de seguridad críticas para la secret key:
- Nunca la registres en producción: el
console.logen nuestro ejemplo está bien para pruebas locales, pero elimínalo antes de desplegar cualquier aplicación real. - Usa variables de entorno: guárdala en un archivo
.envque esté agregado a tu.gitignore. Accede a ella conprocess.env.PRIVATE\_KEYen tu código. - Considera hardware wallets: para aplicaciones de producción que manejen valores significativos, integra hardware wallets como Ledger o Trezor, que mantienen las claves privadas aisladas en hardware seguro.
- Encripta si vas a almacenarla: si debes guardar la secret key en una base de datos o archivo, encríptala primero usando librerías de encriptación robustas.
Para buenas prácticas de seguridad, consulta la guía de seguridad de Solana.
Paso 2: conectar a la red mediante el RPC de Alchemy
Ahora, conecta tu wallet a devnet de Solana usando un endpoint RPC. Este objeto de "conexión" le permite a tu código comunicarse con la blockchain, consultar saldos, enviar transacciones, etc. El RPC de Alchemy funciona como un proxy potenciado hacia los nodos de Solana, manejando el balanceo de carga para que tu app se mantenga rápida.
Agrega esto a tu script (reemplaza <YOUR_API_KEY> con tu clave del dashboard de Alchemy):
import { Connection } from '@solana/web3.js';
const connection = new Connection(
'https://solana-devnet.g.alchemy.com/v2/<YOUR_API_KEY>', // Devnet for testing
'confirmed' // Commitment level: 'confirmed' for speed with some finality
);
async function checkBalance(publicKey) {
const balance = await connection.getBalance(publicKey);
console.log('Balance:', balance / 1e9, 'SOL'); // Convert lamports (1 SOL = 1e9 lamports)
}
await checkBalance(wallet.publicKey);Esta conexión te permite verificar si tu wallet está financiada e interactuar con apps. Ejecuta el script; si no está financiada, la respuesta mostrará 0 SOL. Para ver todos los métodos RPC, consulta la documentación de RPC de Solana o nuestra guía de RPC de Solana de Alchemy.
Paso 3: financiar e interactuar con tu wallet
Con la conexión activa, interactuemos onchain. Aquí es donde empieza lo interesante: financiar vía airdrop (solo en devnet), firmar transacciones, etc. Estos fundamentos te permiten transferir SOL, llamar programs o construir herramientas simples.
Solicitar un airdrop (financiamiento en devnet)
Devnet entrega SOL gratis para pruebas, permitiéndote financiar tu cuenta si está vacía, pero ten en cuenta que hay un límite de ~24 SOL/día por dirección IP.
Necesitarás financiar tu cuenta para las exenciones de rent en las fees. Este método también solo funciona en devnet. En producción, donde las fees se pagan en SOL real (y no en SOL de prueba), necesitarás comprar/financiar tu cuenta a través de un exchange como Coinbase. Consulta la Guía de Devnet SOL de Solana.
const airdropSignature = await connection.requestAirdrop(
wallet.publicKey,
1e9 // 1 SOL in lamports
);
await connection.confirmTransaction(airdropSignature);
console.log('Airdrop complete! Check balance again.');Esto es lo que está pasando:
- Solicitar el airdrop:
connection.requestAirdrop\(\)le pide a devnet SOL de prueba. Toma la clave pública de tu wallet y la cantidad en lamports (1e9= 1 SOL), y luego devuelve una firma de transacción, un identificador único para esta transacción. - Confirmar la transacción:
await connection.confirmTransaction\(\)espera a que la red procese tu airdrop. Esto es crucial: sin esperar la confirmación, tu saldo podría seguir mostrando 0 SOL aunque el airdrop ya se haya solicitado. Solana procesa las transacciones de forma asíncrona, así que hay que esperar. - Éxito: una vez confirmado, ejecuta
checkBalance\(\)de nuevo y deberías ver 1 SOL en tu wallet.
Firmar y enviar una transacción
Transfiramos 0.1 SOL a otra dirección. Este ejemplo demuestra la firma de transacciones, donde tu clave privada autoriza criptográficamente la transacción, demostrando que eres dueño de la wallet que envía. Construiremos una transacción, la firmaremos con tu keypair, y la transmitiremos a la red vía RPC. Las fees de transacción (alrededor de 0.000005 SOL) se descuentan automáticamente de tu saldo. Para operaciones más complejas, como transacciones con múltiples instrucciones o llamadas a programs, explora la documentación sobre fundamentos de transacciones de Solana.
Ejecuta este código para enviar SOL:
import { Transaction, SystemProgram, PublicKey, sendAndConfirmTransaction } from '@solana/web3.js';
const recipient = new PublicKey('recipient_address_here'); // Replace with a real address`
const tx = new Transaction().add(
SystemProgram.transfer({
fromPubkey: wallet.publicKey,
toPubkey: recipient,
lamports: 1e8 // 0.1 SOL
})
);
// Simplest approach - handles blockhash and confirmation automatically
const signature = await sendAndConfirmTransaction(
connection,
tx,
[wallet] // Signers
);
console.log('Transfer signature:', signature);Esto es lo que está pasando:
- Crear el destinatario:
new PublicKey\(\)convierte una cadena de dirección codificada en base58 en un objeto PublicKey con el que Solana puede trabajar. Reemplaza'recipient\_address\_here'con una dirección real de Solana (incluso podrías usar la clave pública de tu propia wallet para probar enviándote a ti mismo). - Construir la transacción:
new Transaction\(\).add\(\)crea una transacción y agrega una instrucción de transferencia. La llamadaSystemProgram.transfer\(\)especifica el remitente (fromPubkey), el destinatario (toPubkey), y el monto en lamports (1e8 = 0.1 SOL). - Enviar y confirmar:
sendAndConfirmTransaction\(\)es una función auxiliar que maneja tres pasos en uno: obtiene el blockhash más reciente (requerido para todas las transacciones de Solana), firma la transacción con el keypair de tu wallet, la envía a la red, y espera la confirmación. El array\[wallet\]contiene todos los firmantes, en este caso, solo tu wallet. - Firma de la transacción: la firma devuelta es tu prueba de ejecución, un identificador único para esta transacción específica en la blockchain.
- Consejo de seguridad: nunca hardcodees secret keys. En su lugar, usa
process.env.PRIVATE\_KEY. Para producción, integra hardware wallets para reducir otros puntos de ataque. Para más sobre gestión segura de claves, revisa nuestras buenas prácticas de gestión de claves y seguridad.
Y si todo salió bien, ¡deberías haber recibido una firma de transacción exitosa! Esa firma es tu prueba de que la transacción se procesó en la blockchain de Solana. Puedes buscarla en Solana Explorer para ver todos los detalles: remitente, destinatario, fee pagada y confirmación del bloque.
Eso es en esencia interactuar con una wallet de Solana simple en devnet: generar un keypair, conectarse vía RPC, financiarla y firmar transacciones. Estos elementos básicos: generación de keypair, conexión a la red, consulta de saldo y firma de transacciones, son la base de cualquier desarrollo en Solana.
Estas wallets comunes basadas en keypair con las que acabamos de interactuar son ideales para scripts de backend que necesitan control programático, para pruebas y desarrollo, para quienes prefieren gestionar directamente sus claves, y para casos de uso simples como transferencias básicas e interacciones con programs. Sin embargo, como puedes ver, también tienen sus propias contrapartidas: los usuarios deben administrar sus propias claves, pagar sus propias fees, y manejar la complejidad técnica de las interacciones con blockchain. Para apps orientadas al consumidor donde la UX importa, esta fricción puede ser determinante.
Ahí es donde entran las smart wallets. Abstraen la complejidad mientras te dan funciones potentes como login social, transacciones sin gas y session keys.
Wallets comunes vs. smart wallets: una comparación rápida
Para ayudarte a decidir qué necesitas según tu caso de uso, aquí tienes una tabla que desglosa las diferencias clave entre los tipos de wallet en Solana. Esto resalta cuándo usar cada una en tus proyectos.
Buenas prácticas: consejos a tener en cuenta al construir
A medida que construyes tu wallet de Solana, aquí hay algunas buenas prácticas y consejos para asegurar que sea segura, escalable y fácil de usar.
- La seguridad primero: para wallets comunes, usa siempre hardware wallets (como Ledger o Trezor) en mainnet para mantener las claves fuera de línea. Con las smart wallets, usa las passkeys o la autenticación multifactor de tu proveedor de wallet para reducir los riesgos de phishing al evitar las seed phrases. Nunca expongas secrets en el código; usa almacenamiento encriptado. Audita tu configuración con herramientas como la guía de seguridad de Solana.
- Prueba a fondo: empieza siempre en devnet o testnet para iterar sin costos. Usa el dashboard de Alchemy para monitorear el uso del RPC, las fallas de transacción y las métricas de rendimiento. Es como un depurador integrado para tus llamadas blockchain. Simula casos límite como congestión de red para asegurarte de que los reintentos funcionen.
- Manejo de errores y confiabilidad: envuelve las llamadas RPC en bloques try-catch y agrega reintentos con backoff exponencial (por ejemplo, mediante librerías como p-retry). La velocidad de Solana puede generar condiciones de carrera, así que confirma las transacciones con el commitment 'finalized' para máxima seguridad. Esto mantiene tu app robusta, especialmente para apps de alto volumen.
- Consideraciones de escalabilidad: la infraestructura de Alchemy escala automáticamente ante cargas altas, así que no tendrás cuellos de botella en el RPC. Para smart wallets, agrupa transacciones cuando sea posible para minimizarlas. Monitorea las exenciones de rent para evitar costos inesperados. Herramientas como el explorador Solscan ayudan a hacer este seguimiento.
- Recursos para profundizar: mantente al día con la documentación de Solana de Alchemy para cambios en el SDK, y explora los adaptadores oficiales de wallet de react de Solana para integraciones de UI.
Para cerrar: hora de construir en Solana
Ahí lo tienes: ahora sabes cómo levantar una wallet común de Solana con la ayuda de Alchemy, y cómo se comparan con las smart wallets. Ya sea que estés escribiendo scripts para transferencias simples o construyendo una dApp con logins sin gas, el ecosistema de Solana está listo para la innovación. Este es el momento de meterte y empezar a experimentar. Para más información, revisa nuestros recursos completos para desarrolladores de Solana y la documentación de Solana. ¡A construir! Si tienes dudas, visita el centro de soporte de Alchemy. ¡Hagamos algo de magia onchain!
Preguntas frecuentes
¿Qué es una wallet de Solana?
Una wallet de Solana es un keypair (clave pública y privada) que te permite controlar cuentas en la blockchain de Solana, las cuales pueden contener tokens SOL, otros activos o código ejecutable. A diferencia del modelo de EOA de Ethereum, Solana trata todo como cuentas, con una estructura más flexible y programable.
¿Tengo que pagar para crear una wallet de Solana?
No, generar un keypair es gratis, pero las cuentas en Solana requieren rent (alrededor de 0.00089 SOL por KB) para persistir onchain, y las fees de transacción promedian $0.00025. En devnet puedes obtener SOL de prueba gratis vía airdrop, pero en mainnet necesitas comprar SOL.
¿Cuál es la diferencia entre las wallets comunes y las smart wallets de Solana?
Las wallets comunes son keypairs básicos donde administras manualmente las claves y pagas las fees, ideales para scripts y pruebas. Las smart wallets usan account abstraction para ofrecer login social, patrocinio de gas, transacciones agrupadas y lógica programable, perfectas para apps orientadas al usuario.
¿Puedo usar login social en lugar de seed phrases?
Sí, muchos proveedores de smart wallet permiten que los usuarios se autentiquen vía email, Google o passkeys en lugar de administrar seed phrases. Esto elimina la fricción de la gestión tradicional de claves para los usuarios.
¿Cómo financio mi wallet de Solana en devnet?
Usa connection.requestAirdrop() para obtener SOL de prueba gratis en devnet (limitado a ~24 SOL/día por IP). Para mainnet, necesitarás comprar SOL a través de un exchange como Coinbase.
¿Qué es el rent en Solana?
El rent es un sistema de depósito de almacenamiento donde las cuentas deben mantener un saldo mínimo de SOL (alrededor de 0.00089 SOL por KB) para seguir activas onchain. Difiere de las fees de gas de Ethereum y ayuda a mantener la red eficiente al eliminar cuentas inactivas.
¿Pueden las smart wallets patrocinar las fees de transacción de los usuarios?
Sí, algunos proveedores de smart wallet soportan el patrocinio de gas y rent. Esto le permite a tu app pagar las fees de los usuarios, habilitando experiencias sin gas que mejoran las conversiones y simplifican el onboarding.
¿Necesito correr mi propio nodo de Solana?
No, nuestros endpoints RPC proveen acceso confiable a la red Solana sin necesidad de correr tu propio nodo. El servicio maneja el balanceo de carga, el escalado, y ofrece conexiones tanto HTTP como WebSocket para actualizaciones en tiempo real.
Boletín de Alchemy
Entérate primero de los lanzamientos
Suscríbete a nuestro boletín
Recibe las últimas actualizaciones de productos y recursos de Alchemy
Al ingresar tu correo electrónico, aceptas recibir nuestras comunicaciones de marketing y actualizaciones de productos. Reconoces que Alchemy procesa la información que recibimos de acuerdo con nuestro Aviso de Privacidad. Puedes cancelar tu suscripción en cualquier momento.
Artículos relacionados

Glamsterdam: la guía completa para desarrolladores de Ethereum
Glamsterdam ya está en Sepolia. La guía completa sobre lo que significa para los desarrolladores y cómo Alchemy se preparó para la actualización de la red.

Por qué los equipos de trading eligen Alchemy para RPC de baja latencia
Los equipos de trading eligen Alchemy por lecturas y escrituras de baja latencia cuando el mercado se mueve, y un registro confiable cuando el dinero se liquida, incluso en el volumen pico.

¿Con qué proveedor de RPC deberías construir en Tokio?
Comparamos cinco de los proveedores de RPC que sirven Tokio en cinco cadenas. Así se comparan, y dónde importan las diferencias para los equipos sensibles a la latencia.