Resumen
Una dirección de Solana devnet es una clave pública en el clúster de Solana devnet, una red de prueba que replica el comportamiento de la mainnet sin usar SOL real. Se utiliza para airdrop de SOL de prueba, desplegar programas y ejecutar transacciones antes de lanzar a mainnet. El formato de la dirección es idéntico al de mainnet, por lo que lo único que cambia es el endpoint RPC al que apunta tu herramienta.
Este artículo explica en qué se diferencian las direcciones de devnet de las de mainnet, cómo generar y financiar una, cómo configurar billeteras y clientes RPC, y cómo depurar los errores que aparecen cuando una dirección de devnet no tiene fondos o apunta al clúster incorrecto.
Una dirección de Solana devnet es una clave pública que existe en el clúster de Solana devnet en lugar de mainnet. Se ve exactamente como una dirección de mainnet — una cadena base58 como 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin — pero solo contiene SOL de prueba y solo se resuelve contra nodos RPC de devnet. Los desarrolladores usan direcciones de devnet para desplegar programas, simular transacciones y ejecutar pruebas de integración sin gastar fondos reales.
Si ya sabes cómo funcionan las direcciones de mainnet, el modelo mental es simple: mismo formato de clave, mismos métodos JSON-RPC, diferente clúster. La confusión suele comenzar cuando una billetera, CLI o SDK apunta silenciosamente a mainnet mientras esperas devnet, o cuando una dirección no tiene SOL de prueba y cada transacción falla. Esta página explica cómo generar una dirección, financiarla, integrarla en tus herramientas y corregir los errores que surgen.
Recomendación rápida: ¿qué configuración de devnet se adapta a tu flujo de trabajo?
Antes de copiar un endpoint, decide qué estás probando realmente. La configuración correcta de la dirección de devnet depende de si necesitas un par de claves desechable, una cuenta persistente con fondos o un entorno compartido para un equipo.
| Tu situación | Enfoque recomendado | Por qué |
|---|---|---|
| Script o tutorial único | Genera un par de claves nuevo en el código, haz airdrop de una cantidad pequeña, descártalo después | Sin sobrecarga de gestión de claves |
| Desarrollo de aplicación local | Archivo de par de claves persistente más un endpoint RPC de devnet en tu configuración | Saldo reutilizable, IDs de programa estables |
| CI o pruebas automatizadas | Par de claves efímero por ejecución, financiado mediante faucet o una cuenta prefinanciada | Reproducible, sin estado compartido |
| Entorno de staging del equipo | Endpoint RPC de devnet dedicado o compartido con una configuración documentada | Comportamiento consistente entre máquinas |
| Ensayo previo a mainnet | Dirección de devnet más configuraciones de commitment estilo mainnet | Más cercano a la semántica de producción |
Si estás pasando de un endpoint público a algo más estable para ejecuciones de prueba repetidas, Solana Devnet RPC de OnFinality es una opción, y puedes comparar planes en la página de precios de RPC.
En qué se diferencia una dirección de devnet de una dirección de mainnet
La dirección en sí no es diferente. Solana usa pares de claves Ed25519, y la clave pública es la dirección en todos los clústeres. Lo que cambia es el clúster con el que habla tu cliente y el estado que ese clúster mantiene.
- Identidad del clúster. Devnet es un libro mayor separado. Un programa desplegado en devnet no existe en mainnet, incluso si la dirección coincide.
- Valor del token. El SOL de devnet no tiene valor de mercado. Existe para que puedas pagar tarifas de transacción y rent durante las pruebas.
- Reinicios de estado. Devnet puede reiniciarse o experimentar inestabilidad. No trates el estado de devnet como almacenamiento permanente.
- Disponibilidad de programas. Algunos programas de mainnet no están desplegados en devnet, y algunos programas solo de devnet no están en mainnet.
Por eso una dirección de devnet que funciona perfectamente en un proyecto puede parecer "vacía" en otro: el segundo proyecto está consultando un clúster diferente.
Generar una dirección de Solana devnet
Puedes crear una dirección con la CLI de Solana, con JavaScript o dentro de una billetera. El par de claves es agnóstico al clúster; eliges devnet apuntando tu cliente a un endpoint de devnet.
Con la CLI de Solana
# Create a new keypair file
solana-keygen new --outfile ~/.config/solana/devnet.json
# Point the CLI at devnet
solana config set --url https://api.devnet.solana.com
# Show the address
solana-keygen pubkey ~/.config/solana/devnet.json
Con JavaScript
import { Keypair, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js";
const keypair = Keypair.generate();
const address = keypair.publicKey.toBase58();
console.log("Devnet address:", address);
// Point the connection at a devnet RPC endpoint
const connection = new Connection("https://api.devnet.solana.com", "confirmed");
const balance = await connection.getBalance(keypair.publicKey);
console.log("Balance in lamports:", balance);
Observa que el código nunca dice "devnet" más allá de la URL del endpoint. La dirección es solo una clave pública; el endpoint decide contra qué clúster se resuelve.
Financiar una dirección de devnet
Una nueva dirección de devnet tiene cero SOL, por lo que no puede pagar tarifas ni crear cuentas. La financias con un airdrop, que es el equivalente de devnet a un faucet.
# Request 2 SOL to your devnet address
solana airdrop 2
# Check the balance
solana balance
En JavaScript:
const signature = await connection.requestAirdrop(
keypair.publicKey,
2 * LAMPORTS_PER_SOL
);
await connection.confirmTransaction(signature, "confirmed");
Los límites de airdrop son aplicados por el clúster y pueden cambiar. Si una solicitud falla, espera y vuelve a intentarlo, o usa una billetera que ofrezca un faucet de devnet. Para pruebas más intensas o repetidas, un endpoint de devnet gestionado puede reducir la fricción de los límites de tasa públicos — consulta opciones de Solana Devnet RPC.
Configurar billeteras y clientes para devnet
La mayoría de los problemas de devnet son problemas de configuración. Revisa estos tres lugares siempre que una dirección se comporte de forma inesperada.
| Herramienta | Qué cambiar | Error común |
|---|---|---|
| CLI de Solana | solana config set --url <devnet endpoint> | Dejar la URL de mainnet predeterminada |
| web3.js / Anchor | Endpoint de Connection y clúster de AnchorProvider | Endpoint de mainnet codificado en una configuración compartida |
| Billetera del navegador | Selector de red configurado en Devnet | Billetera en Mainnet mientras la app espera devnet |
Archivos .env | Variables RPC_URL y CLUSTER | Endpoint obsoleto copiado de otro proyecto |
| Despliegue de programa | Bandera --url devnet | Desplegar en mainnet por accidente |
Un hábito útil es registrar el clúster al inicio. Obtener el hash de génesis y compararlo con el valor conocido de devnet te dice inmediatamente en qué clúster estás.
const genesisHash = await connection.getGenesisHash();
console.log("Cluster genesis hash:", genesisHash);
Depurar errores comunes de direcciones de devnet
Cuando una dirección de devnet "no funciona", el síntoma suele apuntar a una causa específica. Relaciona el mensaje con la solución.
| Síntoma | Causa probable | Solución |
|---|---|---|
Account not found | Dirección nunca financiada o clúster incorrecto | Airdrop de SOL de prueba; verifica el endpoint |
Insufficient funds for rent | Saldo demasiado bajo para crear una cuenta | Financia la dirección con más SOL |
Blockhash not found | Endpoint con retraso o discrepancia de clúster | Reintenta; confirma que estás en devnet |
429 Too Many Requests | Límite de tasa del endpoint público | Reduce la frecuencia, agrupa llamadas o usa un endpoint gestionado |
| La transacción funciona localmente, falla en CI | Endpoint RPC diferente o par de claves sin fondos | Estandariza el endpoint y prefinancia la clave de prueba |
| Program ID not found | Programa desplegado en un clúster diferente | Vuelve a desplegar en devnet |
Si ves errores de límite de tasa o conectividad repetidamente, el problema suele ser el endpoint en lugar de la dirección. Un servicio RPC dedicado o compartido puede darte un objetivo de devnet estable; las opciones de servicio API de OnFinality y nodo dedicado vale la pena revisarlas si tu suite de pruebas se ejecuta con frecuencia.
Devnet versus mainnet versus testnet
Solana tiene más de un clúster que no es de producción, y confundirlos es una fuente frecuente de confusión.
| Clúster | Propósito | Uso típico |
|---|---|---|
| Mainnet | Libro mayor de producción con SOL real | Aplicaciones en vivo |
| Devnet | Clúster de pruebas principal con faucet | Desarrollo de aplicaciones, despliegues de programas |
| Testnet | Clúster de pruebas separado, a menudo usado para pruebas de validadores y de red | Pruebas a nivel de protocolo |
Para la mayoría de los desarrolladores de aplicaciones, devnet es el valor predeterminado correcto. Testnet se usa más comúnmente cuando pruebas el comportamiento de validadores o cambios a nivel de red. Si necesitas endpoints estilo mainnet para comparar, consulta Solana RPC.
Lista de verificación operativa antes de lanzar a mainnet
Una dirección de devnet es un ensayo, no una garantía. Antes de pasar a mainnet, confirma lo siguiente:
- Los programas están desplegados en mainnet en las direcciones que tu app espera.
- La gestión de claves es de nivel de producción. Nunca reutilices un par de claves de devnet para fondos de mainnet.
- Los endpoints se controlan por entorno, no están codificados, para que puedas cambiar de clúster de forma segura.
- Los niveles de commitment coinciden con tu tolerancia al riesgo.
confirmedyfinalizedse comportan de manera diferente bajo carga. - El manejo de errores cubre límites de tasa y tiempos de espera, ya que los endpoints públicos pueden limitar la tasa.
- Hay monitoreo implementado para saldo, tasa de éxito de transacciones y latencia de RPC.
Si prefieres no ejecutar tus propios nodos de Solana para producción, OnFinality proporciona infraestructura de API RPC y nodos dedicados en muchas redes compatibles, incluidas Solana y Solana Devnet.
Puntos clave
- Una dirección de Solana devnet es una clave pública Ed25519 normal; el clúster se determina por el endpoint RPC, no por el formato de la dirección.
- Genera direcciones con la CLI de Solana o web3.js, luego finándolas con un airdrop de devnet antes de enviar transacciones.
- La mayoría de los problemas de "dirección rota" son en realidad discrepancias de clúster, cuentas sin fondos o límites de tasa de endpoints públicos.
- Registra el hash de génesis al inicio para confirmar qué clúster está usando tu cliente.
- Para pruebas repetidas o en equipo, un endpoint de devnet gestionado reduce la fricción de los límites de faucet y tasa públicos.
Preguntas frecuentes
¿Una dirección de Solana devnet es diferente de una dirección de mainnet?
No. El formato de la dirección es idéntico. Lo que difiere es el clúster al que se conecta tu cliente RPC y el estado que ese clúster mantiene. Una dirección de devnet contiene SOL de prueba y solo se resuelve contra nodos de devnet.
¿Cómo obtengo SOL de prueba para una dirección de devnet?
Usa solana airdrop de la CLI de Solana, el método requestAirdrop de web3.js, o una billetera que admita un faucet de devnet. Los límites de airdrop los establece el clúster y pueden cambiar con el tiempo.
¿Por qué mi dirección de devnet muestra un saldo cero?
O nunca ha sido financiada, o tu cliente apunta a un clúster diferente. Confirma el endpoint y verifica el hash de génesis, luego solicita un airdrop.
¿Puedo usar el mismo par de claves en devnet y mainnet?
Técnicamente sí, pero no deberías reutilizar un par de claves de devnet para fondos de mainnet. Trata las claves de devnet como desechables y usa claves separadas y gestionadas de forma segura para producción.
¿Qué endpoint RPC debo usar para devnet?
Puedes empezar con un endpoint público de devnet para pruebas ligeras. Para ejecuciones repetidas, CI o entornos de equipo, un servicio RPC de devnet gestionado como Solana Devnet RPC de OnFinality te da un objetivo más estable. Compara opciones en la página de precios de RPC.