En el mundo de las criptomonedas hay dos tipos de entidades monetarias, las coin y los token. Las coin son aquellas entidades monetarias que viven en su propia cadena de bloques como Bitcoin, Dogecoin o Ether que son creadas como un producto del “minado” de la cadena de bloques.
Es decir durante el proceso de minado de Bitcoin las recompensas a los mineros se pagan en Bitcoins que son emitidos como recompensa. Es lo mismo en el caso de Dogecoin, Litecoin y la totalidad de criptomonedas de primera generación.
Con la llegada de Ethereum y los smartcontracts (“contratos inteligentes”), en el 2015, apareció una segunda categoría, los tokens. Que son entidades monetarias que viven dentro de otra cadena de bloques. Por ejemplo, el token UNI del exchange Uniswap vive dentro de la cadena de Ethereum. Y el popular token Shiba Inu, también vive dentro de la cadena de bloques de Ethereum.
Para estandarizar la creación de tokens y evitar que se escriban desde cero los smartcontracts de dichos tokens fungibles es que apareció la norma ERC-20, que especifica cómo deben ser escritos estos smartcontracts para operar dentro de la red Ethereum.
Dado que la red Ethereum es de código abierto, han aparecido otras redes que usan el código fuente de Ethereum para desarrollar su propia smartchain. Todo basado en lo que se denomina la EVM (Ethereum Virtual Machine), que es la porción de código que ejecuta los smartcontracts y produce la cadena de bloques.
Una de estas redes que usan la tecnología EVM para mantener su propia cadena de bloques, es la Binance Smart Chain o BSC.
La BSC, se diferencia de Ethereum en que los bloques no se general por prueba de trabajo (PoW), sino por prueba de participación (PoS). Debido a ello, ofrece una mayor rapidez de ejecución de las transacciones y por el momento un costo de transacción mucho más reducido. Por ejemplo una transacción en Ethereum actualmente puede costar más de $17, en cambio una transacción en la BSC puede costar 17 centavos de dólar.
Debido a que BSC usa EVM para la ejecución de los smartcontracts, los token ERC-20 se pueden implementar en la red de Binance, aunque por cuestiones de derechos de autor y algunas extensiones propias de esta cadena de bloques, estos se llaman BEP-20.
El código más popular para tokens ERC-20 es el publicado por OpenZeppelin en el siguiente repositorio de GitHub:
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
Dado que la BSC es 100% compatible con Ethereum, podemos usar las mismas herramientas de desarrollo de Etherum y por lo tanto usaremos Remix para crear nuestro propio token en la cadena de bloques de Binance.
Remix es un IDE gratuito y basado en la web para el lenguaje de programación Solidity. Y al cual podremos acceder a través de este URL:
En caso no lo supieras, Solidity es el lenguaje de programación usado para escribir los smartcontracts en la cadena de bloques de Ethereum y por lo tanto será el mismo que usaremos para escribir el código de nuestro token en la cadena de bloques de Binance (BSC).
La razón por la cual usaremos la cadena de bloques de Binance es debido a su bajo costo al momento de desplegar (deploy) el smartcontract de nuestro token en dicha red. Es decir sólo pagaremos centavos de dólar para tener nuestro token activo y en una cadena de bloques pública que nos permita listarlo en algún DEX (Decentralized Exchange) y por lo tanto hacer que nuestro experimento tenga una valuación en el mundo real de las criptomonedas.
Creando nuestro token:
Lo primero que haremos es ir al website de Remix y crear allí un nuevo archivo al que llamaremos MiToken.sol. Para ello haremos click en el símbolo de nuevo documento que se observa en la captura de pantalla siguiente:
Creado dicho archivo, sólo debemos copiar/pegar el siguiente código de Solidity:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-contracts/master/contracts/token/ERC20/ERC20.sol"; contract Token is ERC20 { constructor () ERC20("CixToken", "CIX") { _mint(msg.sender, 21000000 * (10 ** uint256(decimals()))); } }
El código listado líneas arriba se puede obtener de nuestro repositorio de GitHub:
https://github.com/volkan68/CixToken/
En este ejemplo estamos creando un token llamado CixToken, cuyo símbolo es CIX y posee una emisión inicial de 21 millones de tokens. Cada uno de ellos con 10 posiciones decimales.
Una vez hecho esto debemos estar seguros que la versión con la que compilamos nuestro smartcontract es exactamente la misma que aparece en la línea de “pragma”.
Para verificar ello debemos hacer click en el ícono de Solidity y luego seleccionar la misma versión que tenemos en la línea de pragma, cómo se muestra en la siguiente imagen:
Luego presionamos en el botón de Compila MiToken.sol y si no tenemos ningún error debemos ver un símbolo de check mark verde sobre el ícono de Solidity, cómo se muestra en la siguiente imagen:
Ahora ya estamos listos para desplegar nuestro contrato en la red de Binance, para ello haremos click en el ícono de Ethereum que es el que mostramos en la imagen a continuación:
Debemos seleccionar en la sección Environment la opción “Injected Web3” y tener configurado la red de Binance (BSC) en nuestra billetera de Metamask, además de tener algunos BNB, que son los que usaremos para pagar el GAS de la red de Binance.
Todos estos pasos están explicados en el siguiente video:
Dándole un valor a nuestro token.
Ahora que nuestro token está desplegado en la red de Binance, este no tiene ningún valor en sí mismo. Sólo es un token del cual poseemos el 100% de la liquidez. ¿Cómo hacemos para que tenga un valor de referencia con respecto a cualquier otro token?
Aquí es donde entran en juego los DEX, o las casas de intercambio descentralizadas. Allí debemos ir para hacer una oferta inicial de nuestro token y ser el primer proveedor de liquidez, algo que debemos hacer nosotros ya que nadie más está en posesión de nuestro token recién creado.
Antes de poder ir a negociar nuestro token en cualquier DEX debemos agregar los token que ya hemos emitido a nuestra billetera, para ello les dejo aquí un video que explica como agregar nuestro nuevo token a Metamask:
Dado que estamos usando la BSC, es lógico que usemos el DEX más popular de dicha cadena de bloques que es PancakeSwap:
En PancakeSwap cualquiera puede crear un par de liquidez y ofrecer el intercambio de dos monedas/tokens, aquel que cree el primer par es quien define el ratio inicial de conversión, así por ejemplo si nosotros decidimos poner 10 BUSD (que son equivalentes a $10) por 10 CIX, estamos pues definiendo una relación 1:1 entre el dólar americano y la moneda que hemos creado.
Bajo esta lógica con el simple hecho de aportar $10 a un pool de liquidez en PancakeSwap, estamos técnicamente volviéndonos millonarios en cuando ese pool es aceptado en PancakeSwap, ya que nosotros poseemos los 21 millones de CIX en existencia.
Aquí el video en el cual se explica cómo agregar un pool de liquidez a PancakeSwap, dado que es eminentemente práctico es mejor verlo en un video:
Espero que toda esta información les sea de utilidad y puedan hacer buen uso de ella.