Marketplace has launched, further enabling blockchain developers! Learn more

Como crear un Token BEP20

September 23, 2022

Introducción

BEP20 es en Binance 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 Binance Smart Chain. Más allá de esta diferencia, como BSC (Binance 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


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:

programando el token

Copy
// 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 :)

Related articles 26

Solidity vs Vyper
Published: Aug 18, 2021
Updated: Sep 23, 2022

With the introduction to smart contracts on the Ethereum blockchain, it was only a matter of time until a language other than Solidity was made to write smart contract code. Vyper is one such...

Continue reading
How to Create a BEP20 Token
Published: Jul 3, 2021
Updated: Sep 23, 2022

BEP20 is the Binance Smart Chain equivalent to the popular ERC20 specification for tokens on the Ethereum network. The difference is the BEP20 Token isn't run on the Ethereum Network, but the...

Continue reading
What is an ABI?
Published: Mar 20, 2021
Updated: Sep 23, 2022

While interacting with a smart contract ABI is one of the essential components. In this guide, let us understand what the ABI of smart contracts is.

Continue reading
How to create and deploy an ERC20 token
Published: Feb 3, 2021
Updated: Sep 23, 2022

Ethereum network’s launch in 2015 created a lot of buzz in the developer community and sprouted a lot of tokens on the network. Initially there weren’t any templates or guidelines for token...

Continue reading
How to Create and Deploy an ERC-1155 NFT
Published: Mar 14, 2022
Updated: Sep 23, 2022

ERC1155 has emerged as a gold standard to create NFTs; every major marketplace lists new tokens as an ERC1155 standard. In this guide, we will learn about the ERC1155 token standard and how to...

Continue reading