Este tutorial está diseñado para guiar a quienes desean aprender más acerca de Binance Smart Chain (BSC) / BNB Smart Chain. Es ideal para un nivel medio.
Binance Smart Chain (BSC), ahora parte de BNB Chain, es una blockchain popular por su alta velocidad de transacción y bajas tarifas, gracias a su compatibilidad con la Ethereum Virtual Machine (EVM) y su mecanismo de consenso Proof of Staked Authority (PoSA). Esta guía de nivel intermedio explora cómo su compatibilidad EVM permite usar Solidity y herramientas estándar (Hardhat, Remix) para desarrollar y portar contratos inteligentes. Cubre los estándares de tokens BEP (equivalentes a los ERC de Ethereum), el proceso de despliegue en las redes de prueba y principal de BSC, y la interacción programática con contratos. Se aborda también el funcionamiento del gas en BSC, las diferencias clave con Ethereum, y el uso de BSCScan como explorador de bloques. Permite a los desarrolladores construir y desplegar aplicaciones descentralizadas eficientes y de bajo costo en el ecosistema de BNB Chain.
Un contrato inteligente básico en Solidity, totalmente compatible para desplegar en Binance Smart Chain (BSC) o cualquier red EVM.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
string public message = "Hola, BNB Smart Chain!";
function updateMessage(string memory newMessage) public {
message = newMessage;
}
}
Resultado:
Contrato compilado con éxito. Bytecode y ABI listos para despliegue en BSC.
Familiarizarse con estos comandos es esencial para interactuar eficientemente con Binance Smart Chain (BSC) / BNB Smart Chain:
En Metamask, Añadir red -> Añadir una red manualmente.
Nombre de red: BNB Smart Chain
Nueva URL RPC: https://bsc-dataseed.bnbchain.org/ (o una alternativa como https://bsc-dataseed1.bnbchain.org/)
ChainID: 56
Símbolo de moneda: BNB
URL del explorador de bloques: https://bscscan.com
En Metamask, Añadir red -> Añadir una red manualmente.
Nombre de red: BNB Smart Chain Testnet
Nueva URL RPC: https://data-seed-prebsc-1-s1.binance.org:8545/ (o una alternativa)
ChainID: 97
Símbolo de moneda: tBNB
URL del explorador de bloques: https://testnet.bscscan.com
Ir a https://testnet.bnbchain.org/faucet-smart, pegar tu dirección de billetera (Metamask) y solicitar tBNB.
npx hardhat compile # En proyecto Hardhat
# O usar la interfaz web de Remix IDE
En `hardhat.config.js`, añade las configuraciones para las redes de BSC. Ejemplo (usando variables de entorno para la clave privada):
```javascript
require('@nomicfoundation/hardhat-ethers');
const BSCTESTNET_RPC_URL = process.env.BSCTESTNET_RPC_URL || "[https://data-seed-prebsc-1-s1.binance.org:8545](https://data-seed-prebsc-1-s1.binance.org:8545)";
const BSCTESTNET_PRIVATE_KEY = process.env.BSCTESTNET_PRIVATE_KEY || "0x..."; // !! Usar .env
const BSCMAINNET_RPC_URL = process.env.BSCMAINNET_RPC_URL || "[https://bsc-dataseed.bnbchain.org/](https://bsc-dataseed.bnbchain.org/)";
const BSCMAINNET_PRIVATE_KEY = process.env.BSCMAINNET_PRIVATE_KEY || "0x..."; // !! Usar .env
module.exports = {
solidity: "0.8.20", // Especifica tu versión de Solidity
networks: {
bscTestnet: {
url: BSCTESTNET_RPC_URL,
accounts: [BSCTESTNET_PRIVATE_KEY]
},
bscMainnet: {
url: BSCMAINNET_RPC_URL,
accounts: [BSCMAINNET_PRIVATE_KEY]
}
}
};
```
npx hardhat run scripts/deploy.js --network bscTestnet
npx hardhat run scripts/deploy.js --network bscMainnet
// Usando ethers.js con un Provider de BSC (ej: Metamask conectado a BSC, o un RPC de BSC)
const tokenAddress = '0x...'; // Dirección del contrato BEP-20 (ej: CAKE)
const tokenABI = [...]; // ABI del contrato (ej: de BSCScan)
const provider = new ethers.providers.Web3Provider(window.ethereum); // o un JsonRpcProvider con URL de BSC
const tokenContract = new ethers.Contract(tokenAddress, tokenABI, provider);
const userAddress = '0x...';
const balance = await tokenContract.balanceOf(userAddress);
console.log("Balance BEP-20:", ethers.utils.formatUnits(balance, 18)); // Ajustar decimales según el token
// Usando ethers.js con un Signer de BSC (Metamask conectado a BSC)
const tokenAddress = '0x...';
const tokenABI = [...];
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
const tokenContractWithSigner = new ethers.Contract(tokenAddress, tokenABI, signer);
const recipientAddress = '0x...';
const amountToSend = ethers.utils.parseUnits('10', 18); // Enviar 10 tokens
const txResponse = await tokenContractWithSigner.transfer(recipientAddress, amountToSend);
await txResponse.wait(); // Esperar confirmación de la transacción en BSC
Ir a https://bscscan.com/ (Mainnet) o https://testnet.bscscan.com/ (Testnet). Pegar un hash de transacción, dirección de billetera/contrato en la barra de búsqueda.
En BSCScan, busca la dirección de tu contrato desplegado. Ve a la pestaña 'Contract' y haz clic en 'Verify and Publish'. Sigue las instrucciones (subir código fuente, seleccionar compilador, etc.).
Comprender estos conceptos fundamentales te ayudará a dominar Binance Smart Chain (BSC) / BNB Smart Chain de forma más organizada y eficiente:
Compatibilidad con EVM (Ethereum Virtual Machine):
La característica fundamental de BSC. Significa que es compatible a nivel de bytecode con Ethereum. Esto permite que los contratos inteligentes escritos en Solidity (o Vyper) y compilados para la EVM puedan desplegarse en BSC sin reescribir el código. Las herramientas de desarrollo de Ethereum y las librerías Web3 funcionan directamente con BSC simplemente apuntándolas a un nodo RPC de BSC.
Mecanismo de Consenso: Proof of Staked Authority (PoSA):
El algoritmo de consenso de BSC. Es un modelo híbrido que combina la seguridad de Proof of Stake (PoS) con un número limitado de 'validadores' preseleccionados (Proof of Authority). Los validadores deben hacer 'staking' (bloquear) una cantidad significativa de BNB y son elegidos a través de un proceso de gobernanza. Esto permite tiempos de bloqueo muy rápidos y altas capacidades de transacción a un costo bajo, pero a costa de una mayor centralización en comparación con Ethereum PoS.
Gas y Transacciones en BSC:
Similar a Ethereum, las operaciones en BSC consumen gas y se pagan en la moneda nativa, que es BNB. El modelo de Gas Price * Gas Limit es el mismo. Sin embargo, debido al mecanismo PoSA y la menor congestión histórica (en comparación con Ethereum Mainnet), las tarifas de gas en BSC son típicamente mucho más bajas, haciendo que las transacciones sean más económicas.
Estándares de Tokens BEP (BEP-20, BEP-721, BEP-1155):
Estándares de contratos inteligentes en BNB Chain que son funcionalmente idénticos a los estándares ERC de Ethereum. BEP-20 es el estándar para tokens fungibles (como ERC-20). BEP-721 es el estándar para NFTs (como ERC-721). BEP-1155 es un estándar multi-token (como ERC-1155). Los contratos que implementan estos BEPs pueden ser gestionados por cualquier billetera o herramienta compatible con los estándares ERC equivalentes.
Desarrollo con Herramientas Estándar (Solidity, Hardhat, Remix, ethers.js, web3.js):
La compatibilidad EVM de BSC permite reutilizar todo el ecosistema de herramientas de desarrollo de Ethereum. Puedes escribir contratos en Solidity, usar entornos como Hardhat o Foundry para compilar, testear y desplegar, utilizar la interfaz web de Remix IDE para desarrollo rápido y despliegue básico, y usar librerías Web3 (ethers.js, web3.js, viem) para interactuar con contratos desde tu código frontend o backend, simplemente configurándolas para apuntar a un nodo RPC de BSC.
Redes de BSC (Mainnet y Testnet):
Comprender las dos redes principales: BSC Testnet (ChainID 97) es la red de prueba donde puedes desplegar y experimentar con contratos y dApps usando tBNB gratuito sin riesgo financiero. BSC Mainnet (ChainID 56) es la red de producción donde se ejecutan las aplicaciones reales y se usan BNB y otros tokens con valor real.
BSCScan (Explorador de Bloques):
El explorador de bloques más importante para BSC. Es la herramienta esencial para visualizar el estado de la blockchain: buscar transacciones por hash, ver el contenido de bloques, ver balances y actividad de direcciones, encontrar información de tokens (BEP-20, BEP-721), y verificar el código fuente de contratos desplegados para auditoría y transparencia.
Binance Chain vs BNB Smart Chain (BSC) - La Diferencia:
Es importante distinguir entre Binance Chain (la cadena original de Binance, enfocada en trading rápido, usa el estándar BEP-2, no es compatible con EVM) y Binance Smart Chain (BSC), ahora parte de BNB Smart Chain, que es compatible con EVM y soporta contratos inteligentes y dApps (usa BEP-20, BEP-721, etc.). Ambas operan en paralelo en el ecosistema de BNB Chain.
Interacción Programática con Contratos:
La forma de llamar a funciones de contratos y enviar transacciones desde tu código de aplicación (dApp frontend o servicio backend). El proceso es idéntico a interactuar con contratos en Ethereum: necesitas el ABI del contrato, su dirección en BSC, una librería Web3 (ethers.js, web3.js), y un Provider para lecturas o un Signer (de una billetera como Metamask configurada para BSC) para escrituras.
Algunos ejemplos de aplicaciones prácticas donde se utiliza Binance Smart Chain (BSC) / BNB Smart Chain:
Desarrollar y desplegar aplicaciones descentralizadas (dApps) optimizadas para bajas tarifas y alta velocidad en BSC:
Crear dApps que se benefician de la eficiencia de BSC, como plataformas de trading de alta frecuencia, juegos blockchain con muchas transacciones, o protocolos DeFi donde los costos de gas son un factor crítico para la adopción.
Crear y gestionar tokens fungibles (BEP-20) o no fungibles (BEP-721/BEP-1155) para proyectos en el ecosistema de BNB Chain:
Desarrollar contratos que implementan los estándares BEP correspondientes para emitir tu propia criptomoneda, token de utilidad, token de gobernanza o colección de NFTs, y construir interfaces para su gestión (ej: acuñar, transferir, listar).
Portar contratos inteligentes existentes de Ethereum a BSC:
Aprovechar la compatibilidad EVM para migrar la lógica de negocio o protocolos ya probados en Ethereum a BSC, permitiendo a los usuarios interactuar con ellos a un costo menor y acceder al ecos ecosistema de usuarios de BSC.
Construir interfaces (frontend) para interactuar con dApps y protocolos desplegados en BSC:
Desarrollar la parte visual de las dApps que se conecta a billeteras configuradas para BSC (Metamask) y utiliza librerías Web3 para interactuar con contratos desplegados en la red, leyendo datos o enviando transacciones.
Desarrollar backends o servicios que interactúan con contratos en BSC usando proveedores RPC:
Crear servicios backend que necesitan leer datos de la blockchain de BSC, monitorear eventos o enviar transacciones programáticamente (ej: para automatizar procesos, integrarse con sistemas externos) utilizando proveedores RPC.
Auditar y verificar contratos inteligentes desplegados en BSC utilizando BSCScan y otras herramientas de seguridad:
Utilizar BSCScan para ver el código fuente verificado de contratos públicos, analizar transacciones sospechosas, y emplear herramientas de seguridad para auditar la lógica de los contratos.
Participar activamente en el ecosistema DeFi de BSC (trading, staking, yield farming):
Interactuar con protocolos DeFi populares en BSC (PancakeSwap, Venus, etc.) utilizando una billetera configurada para BSC, aprovechando las bajas tarifas para operaciones de alta frecuencia o estrategias de farming.
Desarrollar juegos Web3 y experiencias interactivas en BSC:
Crear juegos o aplicaciones que requieren muchas transacciones (ej: para gestionar ítems, acciones dentro del juego) utilizando la eficiencia de BSC para mantener bajos los costos para los jugadores.
Aquí tienes algunas recomendaciones para facilitar tus inicios en Binance Smart Chain (BSC) / BNB Smart Chain:
Entiende que la Compatibilidad con EVM es Clave:
Lo más importante de BSC para un desarrollador es que es casi idéntica a Ethereum a nivel de ejecución de contratos. Esto significa que tus conocimientos de Solidity, tus herramientas (Hardhat, Remix), y tus librerías Web3 (ethers.js, web3.js) funcionan en BSC con cambios mínimos (principalmente la configuración de red).
Configura Correctamente tus Herramientas y Billeteras:
El primer paso práctico es configurar tu billetera Metamask y tu entorno de desarrollo (Hardhat, Truffle, Remix) para apuntar a las redes de BSC (Testnet y Mainnet) usando las URLs RPC y ChainIDs correctos. Hay guías oficiales para esto.
Usa BSCScan Constantemente:
BSCScan es tu explorador de bloques esencial para BSC. Úsalo para verificar el estado de tus transacciones, encontrar direcciones de contratos, ver código fuente verificado, auditar la actividad y entender qué está pasando en la red. Es fundamental para depurar.
Familiarízate con el Mecanismo de Gas en BSC (aunque las tarifas sean bajas):
Aunque las tarifas son mucho más bajas que en Ethereum Mainnet, las transacciones aún cuestan gas (en BNB). La optimización del uso de gas en tus contratos sigue siendo importante para la eficiencia, especialmente en aplicaciones de alto volumen.
Utiliza la Testnet de BSC y el Faucet para Pruebas Gratuitas:
Siempre despliega y prueba tus contratos y dApps en la BSC Testnet usando tBNB gratuito antes de ir a la red principal (Mainnet) con BNB real. El Faucet de tBNB es indispensable para esto.
Entiende los Estándares de Tokens BEP (BEP-20, BEP-721) y su Equivalencia con ERC:
Los estándares BEP son los homólogos directos de los estándares ERC de Ethereum. Si ya entiendes ERC-20 y ERC-721, entiendes BEP-20 y BEP-721. La interacción programática es la misma.
Sé Consciente de las Diferencias Clave (Consenso, Centralización):
Aunque es compatible con EVM, BSC no es idéntica a Ethereum. Su consenso PoSA le da velocidad y bajo costo, pero implica un mayor grado de centralización. Entiende estas diferencias, especialmente si la descentralización es una prioridad.
Protege Tus Claves Privadas Rigurosamente:
La seguridad de las claves privadas es tan crítica en BSC como en cualquier otra blockchain. No las expongas y usa prácticas seguras (variables de entorno, gestores de secretos) al desplegar o interactuar programáticamente.
Explora las dApps Populares en el Ecosistema de BNB Chain:
Mira PancakeSwap (DEX), Venus (lending), mercados NFT, y otros proyectos en BSC. Esto te dará una idea de los casos de uso más comunes y cómo interactúan con la red.
Si te interesa Binance Smart Chain (BSC) / BNB Smart Chain, también podrías explorar estas herramientas:
Amplía tus conocimientos con estos enlaces y materiales: