5 min read
Introducción
BEP20 es en BNB Smart Chain el equivalente al popular token ERC20 de la red de Ethereum. La diferencia es que el token BEP20 no corre en la red de Ethereum sino en la red de BNB Smart Chain. Más allá de esta diferencia, como BSC (BNB Smart Chain) implementa la Ethereum Virtual Machine (EVM) para todos sus Smart Contracts, estos terminan siendo prácticamente lo mismo en especificación e implementación. Esta guía te guiará en el proceso de como crear tu propio token BEP20.
Prerrequisitos
- Extension Metamask en el navegador
- Estar familiarizado con Remix IDE
Agregando la Testnet de BSC en tu billetera Metamask
La primera cosa que hay que hacer para este nuevo proyecto es configurar la BSC Testnet en tu billetera Metamask.
Puedes hacer esto abriendo Metamask, haciendo click en la opción de Networks y luego en la opción de Custom RPC. Para configurar que tu billetera se conecte con la BSC Testnet, deberás de llenar los campos como en la siguiente imagen
- NetworkName: BSC Testnet
- RPC_URL: https://data-seed-prebsc-1-s1.binance.org:8545/
- Chain_ID: 97
- Currency_Symbol: BNB
- BlockExplorer URL: https://testnet.bscscan.com
Consiguiendo Test BNB para tu billetera
El próximo paso que deberás realizar es conseguir un poco de BNB para jugar un poco con él. BNB es la moneda nativa de BSC, BNB es lo que sería ETH en Ethereum. Para poder conseguir un poco de Test BNB, deberias de dirigirte aqui
Puedes copiar tu dirección de MetaMask y ponerla en el campo disponible para llenar en la web para obtener BNB. Con nuestro nuevo BNB en la billetera, podemos ir gastando un poco!
Programando el token
Como BSC usa la EVM, el código para crear un token ERC-20 y un token BEP20 es el mismo. Lo que nos permite agarrar la especificación del token ERC de OpenZepellin y usarlo en nuestro smart contract.
Lo siguiente a realizar es abrir una nueva pestaña e ir a Remix IDE y crear un nuevo Workspace.
En la carpeta contracts, crearemos un nuevo contrato llamado BEP20.sol
En este nuevo archivo puedes escribir el siguiente código:
// contracts/BEP20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract BEP20 is ERC20 {
constructor(uint256 initialSupply) ERC20("BEP20Test", "BPT") {
_mint(msg.sender, initialSupply;)
}
}
Línea 1/2: La licencia y donde el archivo está ubicado
Línea 3: Configuramos el compilador de solidity a la versión 0.8.0.
Línea 5: Importa el contrato ERC20 de OpenZeppelin. Podemos usar esta especificación para implementar nuestro nuevo token. Esto es un estándar que permite a otras billeteras y programas interactuar fácilmente con el nuevo token.
Línea 7: Esto especifica un nuevo contrato. Puedes renombrar BEP20 por cualquier cosa. Sin embargo la parte de ERC20 es la parte de solidity que indica que usa el contrato ERC20 que importamos en la línea 5.
Línea 8: El constructor de una función va a ser invocado cuando hagamos deploy de nuestro contrato en la red de test de BSC. Vamos a darle un solo parámetro initialSupply de tipo uint256. Luego vamos a usar la funcionalidad ERC20 que importamos de OpenZepellin. Este tiene dos parámetros: El primero es el nombre del token y el segundo el símbolo del token. En nuestro caso el token será BEP20Test y será mostrado con el símbolo BPT.
Línea 9: La llamada a _mint creará el token y enviará en los token recién montados a msg.sender que será quien deploye el contrato en la testnet. En este caso, tu! Creará la cantidad de token que nosotros le hemos pasado en initialSupply.
Nota: Creará la cantidad de tokens de InitialSupply en formato WEI que es 1e-18. Entonces, para crear 100 tokens, necesitas pasarle 100000000000000000000
Deployando el token
Con el contrato BEP20.sol escrito, ahora tenemos que deployar el contrato hacia la BSC Testnet. Haz click en BEP20.sol y abre la pestaña del compilador, cambia la versión del compilador a 0.8.0+commit.c7dfd78e. Haz click en el botón azul que indica Compile BEP20.sol
Luego de compilar el contrato estás listo para hacer deploy! Haz click en la sección de Deploy & Run Transactions en Remix y cambia el valor de Environments a 'Injected Web 3'. Si no tienes conectado Metamask a Remix, te pedirá que lo conectes con la página web antes de pedir tu confirmación.
Luego de que conectes Metamask en Remix, deberías ver tu dirección en el campo Account. Si este es el caso, entonces ahora selecciona el contracto BEP20 en la opción de Contract. Deberás de ver un botón naranja que dice Deploy, y luego un campo al lado del mismo, este es el argumento que le pasaremos al contrato, el parámetro initialSupply que vimos anteriormente
Crearemos 100 tokens, para hacerlo pasaremos el valor 100000000000000000000 y haremos clic en Deploy.
Deberás de aceptar la transacción en metamast, costara algo de BNB para poder deployar algo en la red.
Si has hecho todo correctamente hasta este punto, debes de ver un mensaje de éxito en la terminal!
Puedes copiar la dirección del contrato en la parte de Deployed Contracts y luego verificarla en bscsscan. Podrás ver tu dirección en el campo from y puedes verificar que se han enviados 100 BPT a tu wallet.
Agregar el token a tu Wallet
Para poder ver esto en la extensión de Metal Mask, deberás de hacer click en Add Tokens en la parte de Assets. Aparecerá un menú con 3 campos para rellenar.
Si pegas la dirección del contrato que hemos copiado desde la terminal de Remix, los demás campos se auto llenaran y podrás aceptar el nuevo token.
Deberá de verse así al final:
Conclusión
¡Felicidades! Acabas de terminar todo! Ahora sabes como crear tu propio token en la red de BSC y agregarlo a MetaMask. En realidad ahora sabes mucho más que eso, es exactamente el mismo proceso para la red de Ethereum, solamente debes de configurar Remix y MetaMask en la red Ethereum en vez de la red BSC!. Si estás interesado en hacer exactamente eso, puedes encontrar una guía paso a paso aqui.
Suscribete a nuestro newsletter para más artículos y guías en Ethereum. Si tienes algún tipo de comentario, se libre de comentarlos en nuestro Twitter. Siempre puedes hablar con nosotros en nuestro servidor de Discord, puedes encontrar algunos de los más geniales desarrolladores :)