Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
OnFinality Learn
Guías de Red y Protocolo11 min de lectura

Cripto en Testnet: Cómo funcionan las redes de prueba, los faucets y los endpoints RPC

Una guía práctica sobre cripto en testnet: qué son las testnets, cómo funcionan las monedas de prueba y los faucets, cómo configurar un endpoint RPC de testnet y cómo verificar tu configuración antes de tocar la mainnet.

TL;DR

Una testnet es una red blockchain separada que replica el entorno de ejecución de una mainnet para que los desarrolladores puedan desplegar contratos, mover monedas de prueba y ensayar actualizaciones sin arriesgar activos reales. La cripto en testnet no tiene valor monetario: las monedas de prueba provienen de faucets o de la minería/validación en la cadena de prueba, y existen solo para pagar el gas de la testnet. El trabajo práctico consiste en configurar una billetera y un cliente RPC con el ID de cadena de testnet correcto, obtener tokens de prueba y verificar que las transacciones se confirmen según lo esperado. Esta guía explica el modelo mental, proporciona código de configuración y diagnóstico ejecutable, y muestra cómo interpretar los resultados antes de promover cualquier cosa a producción.

Qué significa la cripto en testnet en la práctica

En cripto, una testnet es una blockchain paralela que ejecuta el mismo software cliente, máquina virtual y formato de transacción que una red de producción (la mainnet), pero utiliza un ID de cadena distinto, un estado génesis separado y su propio conjunto de validadores o secuenciadores. Dado que el entorno de ejecución está replicado, un contrato inteligente que se comporta de una manera en una testnet debería comportarse igual en la mainnet, asumiendo el mismo bytecode, dependencias y entradas de estado.

La frase "cripto en testnet" generalmente se refiere a las monedas de prueba y redes de prueba que los desarrolladores usan para este ensayo: ETH de Sepolia, tBNB en BNB Smart Chain Testnet, AVAX de prueba en Avalanche Fuji y activos similares en otras cadenas. Estos tokens son deliberadamente sin valor. Existen para que puedas pagar gas mientras pruebas, y los faucets los distribuyen gratis porque no hay mercado para ellos.

La distinción clave con una red de producción no es la ruta del código sino las garantías. Las testnets típicamente tienen menos validadores, seguridad económica más débil y no se espera una disponibilidad o finalidad comparable a la mainnet. Trata cada resultado de una testnet como evidencia sobre el comportamiento, no como una garantía sobre el rendimiento o la seguridad en producción.

  • Testnet: ID de cadena separado, estado separado, tokens de prueba gratuitos, supuestos de seguridad más débiles.
  • Mainnet: valor económico real, presupuesto de seguridad de producción, transacciones irreversibles.
  • Devnet: a menudo una cadena local o de un solo operador utilizada para iteración a nivel de unidad antes de una testnet compartida.

Supuestos y requisitos previos

Esta guía asume que ya tienes una billetera que puede agregar redes personalizadas (por ejemplo, MetaMask o una biblioteca de billetera programática), conocimiento práctico de cómo enviar una transacción y acceso a un endpoint RPC para la testnet que deseas usar. No asume que ya tengas monedas de prueba; obtenerlas se cubre a continuación.

Necesitarás el ID de cadena de la testnet, el símbolo de su token nativo de prueba y una URL RPC. Los ID de cadena se publican en la documentación de cada red y en listas públicas de cadenas; siempre confirma el ID de cadena desde la documentación propia de la red en lugar de un blog de terceros, porque un ID de cadena incorrecto hará que tu cliente rechace o enrute mal las transacciones.

Para los ejemplos de código, reemplaza RPC_URL con un endpoint de testnet que controles o que te hayan proporcionado, y PRIVATE_KEY con una clave de prueba desechable. Nunca uses una clave que contenga fondos de mainnet en una testnet, aunque las redes sean separadas, porque los hábitos de higiene de claves son lo que te mantiene seguro.

Cómo las redes de prueba replican la ejecución de la mainnet

Una testnet ejecuta la misma EVM (o el mismo runtime no-EVM) que su contraparte mainnet. Las direcciones de contratos, la codificación ABI, la contabilidad de gas y los registros de eventos siguen las mismas reglas. Lo que cambia es el ID de cadena, el calendario de producción de bloques, el conjunto de validadores y el estado de cada cuenta. Es por eso que un contrato desplegado en Sepolia puede redesplegarse en la mainnet de Ethereum con el mismo bytecode y los mismos argumentos del constructor, y por eso una transacción que se revierte en testnet generalmente se revertirá en mainnet por la misma razón.

El espejo no es perfecto. Las testnets a veces van por delante de la mainnet con próximas bifurcaciones duras, o se quedan atrás mientras se prepara una actualización. Pueden tener diferentes límites de gas, diferentes precompilados habilitados o diferente disponibilidad de oráculos y puentes. Una testnet que acaba de ser reiniciada o deprecada no reflejará el estado que esperas. Por eso importa el paso de verificación más adelante en esta guía: estás comprobando que la testnet específica que elegiste está activa y se comporta como la mainnet a la que pretendes apuntar.

Para equipos que ejecutan su propia infraestructura, el mismo software de nodo que sirve a la mainnet puede servir a una testnet, pero el directorio de datos, el archivo génesis y el descubrimiento de pares deben configurarse para la red de prueba. Ejecutar un nodo dedicado de testnet es una forma común de obtener acceso estable y sin límites de velocidad durante las campañas de prueba; consulta las opciones de nodo dedicado para saber cómo se aprovisiona.

Monedas de prueba, faucets y por qué no tienen valor

Las monedas de prueba son acuñadas o distribuidas por la propia testnet. En cadenas de prueba de prueba de trabajo se pueden minar; en cadenas de prueba de prueba de participación generalmente se distribuyen a través de faucets operados por el equipo de la red, proveedores de infraestructura o proyectos del ecosistema. Un faucet es simplemente un servicio que envía una pequeña cantidad de tokens de prueba a una dirección, a menudo protegido por un captcha, una cuenta social o un saldo mínimo en mainnet para prevenir abusos.

Debido a que cualquiera puede obtener monedas de prueba gratis, no tienen valor monetario y nunca deben tratarse como una inversión. Ocasionalmente las estafas ofrecen "vender" tokens de testnet o afirman que un airdrop de testnet tiene valor; ninguno es legítimo. Si un faucet solicita una clave privada o una frase semilla, es malicioso. Un faucet solo necesita una dirección pública.

Los límites de los faucets son una restricción práctica. Si estás ejecutando una prueba de carga o un despliegue de múltiples contratos, puedes agotar la asignación diaria de un faucet. En ese caso, solicita a múltiples faucets legítimos para la misma red, o pide al canal de relaciones con desarrolladores de la red una asignación mayor. No intentes eludir los límites de velocidad con cuentas sybil; degrada el recurso compartido para todos.

  • Los faucets solo necesitan tu dirección pública, nunca una clave privada.
  • Los tokens de prueba son gratuitos y sin valor; trata cualquier oferta de pago como una estafa.
  • Planifica las solicitudes de faucet en torno a los presupuestos de despliegue y pruebas de carga.

Configurar una billetera y un cliente RPC para una testnet

El primer paso ejecutable es apuntar un cliente a la testnet. El siguiente ejemplo usa curl contra un endpoint JSON-RPC para confirmar el ID de cadena y el número de bloque actual. Reemplaza RPC_URL con tu endpoint de testnet. El resultado esperado es un ID de cadena que coincida con el valor documentado de la red y un número de bloque que avance con el tiempo.

curl -s -X POST "$RPC_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

curl -s -X POST "$RPC_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"eth_blockNumber","params":[]}'

Enviar una transacción de prueba y verificar la confirmación

Una vez que el ID de cadena coincida, envía una pequeña transacción de prueba y confirma que se ha minado. El siguiente ejemplo de JavaScript usa ethers para conectarse a la testnet, leer el saldo y enviar una transferencia trivial. Reemplaza RPC_URL y PRIVATE_KEY con tus valores de prueba, y TO_ADDRESS con una segunda dirección que controles. El resultado de verificación esperado es un hash de transacción que se resuelve en un recibo con estado 1 y un número de bloque mayor que el número de bloque que observaste antes de enviar.

import { JsonRpcProvider, Wallet, parseEther } from "ethers";

const provider = new JsonRpcProvider(process.env.RPC_URL);
const wallet = new Wallet(process.env.PRIVATE_KEY, provider);

const network = await provider.getNetwork();
console.log("chainId", network.chainId.toString());

const before = await provider.getBlockNumber();
const balance = await provider.getBalance(wallet.address);
console.log("balance", balance.toString());

const tx = await wallet.sendTransaction({
  to: process.env.TO_ADDRESS,
  value: parseEther("0.001")
});
console.log("sent", tx.hash);

const receipt = await tx.wait();
console.log("status", receipt.status, "block", receipt.blockNumber, "before", before);

Un procedimiento de diagnóstico para la salud del RPC de testnet

Cuando una transacción de testnet se atasca o un despliegue falla, la causa suele ser el endpoint en lugar del contrato. Ejecuta una breve secuencia de diagnóstico antes de cambiar el código. El procedimiento a continuación verifica el ID de cadena, la progresión de la altura de bloque, el precio del gas y si un contrato conocido responde. Registra cada resultado en una tabla para que puedas comparar endpoints o ventanas de tiempo.

La tabla de resultados a continuación es una plantilla, no datos medidos. Completa los valores que observes. Si la altura de bloque no avanza entre dos muestras tomadas con un minuto de diferencia, es probable que el endpoint esté desactualizado o que la testnet esté pausada. Si eth_gasPrice devuelve un valor inverosímil, el endpoint puede estar sirviendo datos en caché.

  • | Verificación | Comando | Esperado | Observado |
  • | ID de cadena | eth_chainId | Coincide con el ID de testnet documentado | |
  • | Altura de bloque | eth_blockNumber dos veces | Segundo valor mayor que el primero | |
  • | Precio del gas | eth_gasPrice | Valor plausible distinto de cero | |
  • | Código del contrato | eth_getCode | Bytecode no vacío con prefijo 0x | |
curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"eth_gasPrice","params":[]}'

curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"eth_getCode","params":["CONTRACT_ADDRESS","latest"]}'

Solución de problemas comunes en testnet

La mayoría de los problemas de testnet se engloban en un pequeño conjunto de categorías. Un ID de cadena incorrecto hace que el cliente rechace transacciones o las envíe a la red equivocada; vuelve a verificar el ID de cadena con la documentación de la red. La insuficiencia de tokens de prueba causa errores de gas insuficiente o fondos insuficientes; solicita a un faucet y confirma el saldo con eth_getBalance. Un endpoint desactualizado devuelve números de bloque antiguos o recibos en caché; cambia de endpoint y vuelve a ejecutar la tabla de diagnóstico.

Las fallas a nivel de contrato son diferentes. Una reversión en testnet generalmente indica un problema real de lógica o control de acceso, no un problema de red. Decodifica la razón de la reversión con tus herramientas antes de asumir que la testnet tiene la culpa. Si una transacción está pendiente indefinidamente, verifica si el tiempo de bloque de la testnet ha cambiado o si el secuenciador está pausado; algunas testnets tienen ventanas de mantenimiento programadas.

Finalmente, confirma que no estás mezclando redes. Un error común es desplegar en una testnet pero apuntar un frontend a la mainnet, o viceversa. Registra el ID de cadena al inicio en cada entorno para que el desajuste sea visible de inmediato.

Limitaciones y compensaciones de probar en una testnet

Las testnets son necesarias pero no suficientes. No pueden reproducir la liquidez de la mainnet, la competencia de gas de la mainnet ni el comportamiento del conjunto completo de validadores bajo estrés. Un contrato que pasa en testnet aún puede fallar en mainnet debido a diferencias de precios de oráculos, MEV o estado que solo existe en producción. Trata los resultados de testnet como un filtro, no como una garantía.

Las testnets también son efímeras. Las redes se deprecan y se reemplazan, y el estado puede reiniciarse. No construyas integraciones de larga duración que dependan de que una dirección específica de testnet persista para siempre. Mantén los scripts de despliegue parametrizados por ID de cadena y URL RPC para que puedas redirigir a una nueva testnet sin reescribir el código.

Para trabajos sensibles al rendimiento, las mediciones en testnet no predicen la latencia de mainnet. Si necesitas caracterizar el comportamiento de un endpoint, mide en la red que realmente usarás y compara proveedores con una metodología consistente. La guía de endpoints RPC cubre cómo estructurar esas comparaciones.

Próximos pasos: de la testnet a producción

Una vez que tu contrato y cliente pasen la tabla de diagnóstico y un conjunto representativo de transacciones, el siguiente paso es planificar el despliegue en mainnet. Eso significa volver a ejecutar las mismas pruebas contra una bifurcación de mainnet o un entorno de staging, confirmar los presupuestos de gas y elegir una infraestructura RPC de producción que cumpla con tus requisitos de latencia y confiabilidad.

Si necesitas una recomendación concreta de endpoint para una red específica, el Asistente RPC cubre directamente las opciones de proveedor y red. Para una planificación de infraestructura más amplia, revisa el directorio de redes y las opciones de precios de RPC para ajustar la capacidad a tu carga esperada. Los equipos que ejecutan campañas de prueba sostenidas o tráfico de producción a menudo pasan a nodos dedicados para evitar los límites de velocidad compartidos.

  • Vuelve a ejecutar la tabla de diagnóstico contra tu endpoint de producción antes del lanzamiento.
  • Parametriza el ID de cadena y la URL RPC para que testnet y mainnet compartan una sola ruta de código.
  • Revisa la guía de endpoints RPC para la metodología de comparación.
  • Explora nodos dedicados si los endpoints compartidos limitan tu rendimiento de pruebas.

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar