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 18

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

With the introduction to smart... When we think of blockchains,... Introduction IntroductionVyper is... Now, the million dollar question...

Continue reading
How to write an Ethereum smart contract using Solidity
Originally Published On: Apr 5, 2020
Updated On: Sep 23, 2022

This article is intended for... Before getting started with... The smart contract term was... As we saw that smart contracts... Now, let's write a simple smart... After writing a smart contract... So we have successfully created...

Continue reading
How to Setup Local Development Environment for Solidity
Originally Published On: Jul 10, 2021
Updated On: Sep 23, 2022

The success story of blockchain... According to the Now that you are geared up with... Installation Now that our contract is ready... Now, let's write some test... The last thing, we need to do is... For deploying using hardhat, you... Here we saw how to work with...

Continue reading
How to Deploy a Smart Contract on MATIC/Polygon
Originally Published On: Oct 27, 2021
Updated On: Sep 23, 2022

Ethereum is a very lovely... With the rapid adoption of... We'll deploy our contract on... After creating your QuickNode... We will need some test MATIC to... Time to write our smart... Now click on the Solidity logo... A big thank you and kudos if you...

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

BEP20 is the Binance Smart Chain... The first thing you will want to... The Next thing we will need to... Because BSC uses the EVM, the... With the initial BEP20.sol... In order to view this in your... Congratulations! You made it to...

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

While interacting with a smart... ABI (Application Binary... The JSON format of a contract’s... One of the most common ways is... Now that you know what ABI is,...

Continue reading
How to call another smart contract from your solidity code
Originally Published On: Jan 30, 2021
Updated On: Sep 23, 2022

Smart contracts are the most... Smart contracts are computer... We’ll deploy our contracts on... Now to achieve our goal we'll... Now you will see two contracts... Now click on count button under... Now let's update the value of... Let's check if the INTERFACE... Here we successfully saw how we...

Continue reading
How to create and deploy an ERC-721 (NFT)
Originally Published On: Mar 6, 2021
Updated On: Sep 23, 2022

Digital collectibles compatible... Fungible means to be the same or... ERC stands for Ethereum Request... Digital art (or... Now that we know what ERC-721... Before writing our NFT contract,... For ease and security, we’ll use... Congratulations on creating your...

Continue reading
How to deploy a smart contract with Brownie
Originally Published On: Jul 23, 2021
Updated On: Sep 23, 2022

Python is one of the most... Smart contract development is... Brownie is built on top of... First of all, lets cd into the... We will deploy our contract on... We need to set up our QuickNode... As our contract will be deployed... Before deploying the contract,... So, today we learned brownies...

Continue reading
How to Write a Secure Smart Contract in Vyper
Originally Published On: Feb 2, 2022
Updated On: Sep 23, 2022

Hey readers! If you are familiar... In this project we will be... First things first, if we are... We can begin by writing our... Here we will write the code... Congrats on making it to the...

Continue reading
How to Create a Dutch Auction Smart Contract
Originally Published On: Feb 11, 2022
Updated On: Sep 23, 2022

Often to perform any transaction... Auctions are platforms for... A Dutch auction, also known as... We will deploy our contract on... Before moving further, it is... Now that our Dutch auction... If you made it here,...

Continue reading