Resumen
Este artículo explica cómo obtener y usar USDC en la testnet de BNB Smart Chain. Cubre la diferencia entre USDC nativo y puenteado, cómo obtener USDC de testnet a través de faucets o desplegando tu propio mock, y cómo configurar tu dApp para interactuar con el contrato del token.
Respuesta rápida: Cómo obtener USDC en BNB Testnet
USDC en la testnet de BNB Smart Chain es un token de prueba que imita el comportamiento de la stablecoin USDC en mainnet. No es un activo real y no tiene valor monetario. Puedes obtenerlo a través de un faucet, o puedes desplegar tu propio contrato mock de USDC para tener control total durante el desarrollo.
Antes de poder interactuar con USDC, necesitas un endpoint RPC confiable. OnFinality proporciona un endpoint público para la testnet de BNB Chain en https://bnb-testnet.api.onfinality.io/public. Para pruebas de nivel de producción con límites de tasa más altos y rendimiento dedicado, considera un servicio RPC gestionado o un nodo dedicado.
Guía de decisión: ¿Qué enfoque de USDC se adapta a tus pruebas?
Tu elección de cómo obtener USDC en la testnet de BNB depende de tus objetivos de prueba:
- Pruebas de integración rápidas: Usa un faucet para obtener USDC puenteado. Es rápido y no requiere despliegue de contratos.
- Control total sobre el comportamiento del token: Despliega tu propio contrato mock de USDC. Esto te permite acuñar cantidades arbitrarias y simular casos límite.
- Pruebas con direcciones de tokens del mundo real: Usa la dirección del contrato USDC puenteado conocida para probar la integración de tu dApp con una dirección de token específica.
Si estás construyendo una dApp que espera interactuar con USDC en mainnet, debes probar con la dirección de USDC puenteado para asegurarte de que la lógica de tu contrato maneje el token correcto. Si estás probando contabilidad interna o lógica de UI, un token mock suele ser más simple.
¿Qué es USDC en BNB Testnet?
USDC es una stablecoin ERC-20 emitida por Circle. En BNB Smart Chain, USDC existe en dos formas:
- USDC nativo: Emitido directamente en BNB Chain por Circle. A partir de 2025, el USDC nativo está disponible en la mainnet de BNB Chain, pero en la testnet, normalmente encontrarás la versión puenteada.
- USDC puenteado: Envuelto por un protocolo de puente (como Axelar o Wormhole) desde otra cadena. El token puenteado tiene una dirección de contrato diferente y puede tener metadatos diferentes.
En la testnet de BNB, el USDC más comúnmente referenciado es la versión puenteada. Siempre verifica la dirección del contrato que estás usando, ya que usar la dirección incorrecta puede llevar a transacciones fallidas o comportamiento inesperado.
Configuración de la red y endpoint RPC
Para interactuar con la testnet de BNB, configura tu wallet o dApp con los siguientes ajustes:
| Parámetro | Valor |
|---|---|
| Nombre de la red | BNB Smart Chain Testnet |
| URL RPC | https://bnb-testnet.api.onfinality.io/public |
| Chain ID | 97 |
| Símbolo | tBNB |
| Explorador de bloques | https://testnet.bscscan.com |
Para un endpoint gestionado con límites de tasa más altos, consulta la página de red de BNB Chain Testnet.
Obteniendo USDC de testnet a través de faucets
La forma más fácil de obtener USDC en la testnet de BNB es usar un faucet. Varios faucets de la comunidad dispensan USDC de testnet. Sin embargo, los faucets pueden ser poco confiables o tener límites de tasa. Si no puedes encontrar un faucet de USDC, a menudo puedes obtener tBNB de un faucet y luego intercambiarlo por USDC en un DEX de testnet, o puedes desplegar tu propio contrato USDC.
Desplegando tu propio mock de USDC
Desplegar un contrato mock de USDC te da poder de acuñación ilimitado. Aquí tienes un contrato Solidity simple que puedes desplegar:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MockUSDC is ERC20 {
constructor() ERC20("USD Coin", "USDC") {
_mint(msg.sender, 1_000_000 * 10 ** decimals());
}
function mint(address to, uint256 amount) public {
_mint(to, amount);
}
}
Despliega este contrato usando Remix, Hardhat o Foundry. Después del despliegue, puedes acuñar tokens a cualquier dirección para pruebas.
Usando USDC en tu dApp
Una vez que tengas USDC, puedes interactuar con él usando métodos estándar de ERC-20. Aquí tienes un ejemplo usando ethers.js para consultar un saldo:
const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("https://bnb-testnet.api.onfinality.io/public");
const usdcAddress = "0x..."; // Reemplaza con la dirección de tu contrato USDC
const wallet = new ethers.Wallet("0x...", provider); // Reemplaza con tu clave privada
const usdc = new ethers.Contract(
usdcAddress,
["function balanceOf(address) view returns (uint256)"],
wallet
);
async function main() {
const balance = await usdc.balanceOf(wallet.address);
console.log("Saldo de USDC:", ethers.utils.formatUnits(balance, 18));
}
main();
Recuerda que USDC en la testnet de BNB puede tener 18 decimales (como la versión puenteada) o 6 decimales (como el USDC nativo). Siempre verifica la función decimals() del token.
Errores comunes y solución de problemas
- Dirección de contrato incorrecta: Usar una dirección de USDC de mainnet en testnet fallará. Siempre verifica la dirección en el explorador de testnet.
- tBNB insuficiente para gas: Aunque USDC es gratis, necesitas tBNB para pagar las tarifas de transacción. Obtén tBNB de un faucet primero.
- Límites de tasa de RPC: Los endpoints RPC públicos tienen límites de tasa. Si haces muchas solicitudes, considera un servicio RPC gestionado para evitar la limitación.
- Desajuste de decimales del token: Si tu dApp asume 6 decimales pero el token usa 18, los saldos aparecerán inflados. Siempre obtén los decimales del token dinámicamente.
Conclusiones clave
- USDC en la testnet de BNB es un token de prueba, no dinero real.
- Puedes obtenerlo a través de faucets o desplegando tu propio contrato mock.
- Usa la dirección de contrato y los decimales correctos para tus pruebas.
- Un endpoint RPC confiable es esencial para pruebas fluidas; considera el endpoint público de OnFinality o un nodo dedicado para mayor rendimiento.
Preguntas frecuentes
P: ¿Es USDC en la testnet de BNB lo mismo que USDC en mainnet? R: No. El USDC de testnet es un token de prueba sin valor. La dirección del contrato y posiblemente los decimales difieren de mainnet.
P: ¿Puedo usar la dirección del contrato USDC de mainnet en testnet? R: No. Debes usar la dirección de contrato específica de testnet. Usar una dirección de mainnet resultará en errores.
P: ¿Cómo obtengo tBNB para gas? R: Usa un faucet de BNB testnet. Hay muchos faucets disponibles en línea; busca "BNB testnet faucet" o consulta la página de red de BNB Chain Testnet para recursos.
P: ¿Qué pasa si el faucet de USDC está caído? R: Despliega tu propio contrato mock de USDC como se muestra arriba. Esto te da tokens ilimitados y es una práctica común en el desarrollo.
P: ¿Por qué mi saldo de USDC muestra un número enorme?
R: Esto probablemente se debe a un desajuste de decimales. El token puede usar 18 decimales en lugar de 6. Verifica la función decimals() del token y ajusta tu formato en consecuencia.