Como crear un token ERC20

ETH Latam Talks · 12 Oct 2022 · 29:24

Sebastián Perez teaches how to create an ERC-20 token from scratch in a Spanish-language ETHLatam lesson. The session introduces ERC-20, Ethereum's standard interface for fungible tokens, and is aimed at beginners who want to learn to issue their own token on the network.

Speakers

Topics

From ETH Latam Talks, hosted by ETH Latam.

Transcript

[Música] Bueno antes que nada súper contento de poder estar aquí en Colombia con ustedes de compartir con la con la comunidad latinoamérica y la idea de la charla es puntualmente lo que dice el título no cómo cómo crear un token rc 20 bien Vamos a hacer una pequeña intro primero para aquellos que no no tengan experiencia Al menos que no hayan nunca trabajado con tokens y después vamos a meternos en código de solidity si tienes acá son desarrolladores de software general bien y quienes o tuvieron la experiencia sabe trabajar con solidity algo bien bueno va a ser interesante entonces me presento

brevemente esa más o menos lo escucharon Sebastián Pérez soy Argentina de Buenos Aires soy instructor de solidity ya hace algunos años por ahí me vieron en uno de los cursos de platzy Actualmente estoy trabajando en lo que es la industria de Gaming dentro de la de estamos construyendo algo infraestructura ahí y bueno Muchos desafíos relacionados con token si vamos a meternos ya a hablar un poquito de qué podemos hacer construyendo con solidity bien podemos hacer un montón de cosas pero destacó Tres puntos importantes que esto esto lo vamos a poder trasladar bien a lo que es la creación de los tokens una es poder tener posesión sobre un valor Sí nosotros a través de la blockchain y de su grado de descentralización y la

seguridad y sobre todo la inmutabilidad si nosotros registramos tener la posición de algo de un activo es irrefutable que es activo es nuestro bien entonces podemos registrar posición sobre nuestros activos a través del Código de de los contratos que en esta oportunidad vamos a estar haciéndolo con solidity bien otra de las características es la transferencia de valor yo puedo tener un activo y lo puedo transferir sí puedo enviársela a otra a otra cuenta esa cuenta a partir de ese momento va a ser la dueña de ese activo sí hacemos una transferencia de ese valor y por otro lado podemos reaccionar podemos ejecutar acciones ante ante otra acción si nosotros recibimos una transferencia podemos hacer algo con eso que recibimos y

podemos reaccionar y podemos hacer de repente al recibir un pago podemos hacer otro podemos dividir podemos almacenar podemos almacenar información dentro de nuestro contrato o sea podemos reaccionar ante esas acciones y todo esto que les digo son cosas que podemos hacer con los contratos inteligentes en solidity y que ya nos da una pista de lo que podemos hacer con los tokens Sí pero Qué es un toque Alguien sabe que es un token la definición de token me escucharon hablar alguna vez bien esa esa me gustó qué más representación digital activa bien qué más OK Bueno sí

referencia contrato inteligente bien todas son correctas sí todas las que han dicho son correctas El problema es que toque en realidad es algo muy genérico cuando yo era más joven No sé si si con esto en Argentina decimos se me cae una Sota pero es como que doy a conocer mi edad pero tal vez muchos de ustedes no no pasaron por eso sí pero yo cuando quería jugar antes cuando era pequeño quería jugar un videojuego tenías que usar eso que nosotros decimos fichas Sí pero en inglés eso es un token Bien también alguna vez habrán jugado no sé en los últimos años creció mucho lo que es el Poker y han jugado por ahí una mesa con amigos y bueno Juan para divertirse no por dinero claramente No nadie juega por dinero pero han usado seguramente fichas de colores algún tipo

de representación eso también es un token bien eso no sé si lo habrán visto ahora con los teléfonos celulares y todo más difícil pero antes para hacer una transferencia bancaria o para hacer algún tipo de autorización Entonces ese aparatito y ese zapatito también se llama token bien Y seguramente y se trabajaron en desarrollo web para hacer un tema de autenticación de usuarios también habrán usado un código que les da el proveedor que se llama token y también habrán visto por ahí algunas monedas por ejemplo ahí Steven coins que también son tokens si todo todo todo esto son tokens Entonces qué difícil es encontrar una definición que abarque todo esto no Bueno yo encontré una que

me gustó Y es la que vemos ahí sí súper genérica No pero en español sería es una cosa visible o tangible si es algo que podemos ver o tocar que representa un hecho calidad sentimiento etcétera porque bueno puede representar lo que nosotros querramos o sea todo lo que vimos Ahí está representando otra cosa bien lo que nosotros podemos hacer con los contratos inteligentes y las características que vimos es poder hacer una representación de un valor que lo hacemos de a través de la blockchain sí En realidad no es que la blockchain inventó los tokens sino que la blockchain lo que agregó es el tema de la descentralización de poder hacer esas transferencias de poder registrar y tener de forma irrefutable la posición de un token Sí pero en realidad es algo

que usamos muy a forma cotidia así y dentro de los tokens existen como dos mundos bien y los mundos hablan de la fungibilidad y la no fungibilidad alguien se anima a definir la fungibilidad o la no fungibilidad bien perfecto Sí lo que dijo tu nombre lo que dijo Ricardo es si es fungible se puede intercambiar bien y si es no fungible no se puede intercambiar bien en resumen no fue un poquito más detallado alguien más quiere aportar bueno el tema de fungibilidad va por ahí sí En realidad fungible la palabra

fungible viene del latín esto no tiene nada que ver pero lo que significa es consumir Es algo consumible es algo que puedo gastar bien que lo que más gastamos Lamentablemente dinero Sí por eso lo primero que pensamos cuando hablamos de token fungibles en el dinero si es algo que yo puedo gastar tengo un billete puedo gastar una parte una parte me la puedo quedar puedo gastar todo sí lo puedo transferir como bien decía Ricardo y va un poco por ahí otra de las características de la fungibilidad Y esto es hasta en entornos legales es que los token Fuji o sea las las los bienes fungibles yo los puedo reemplazar por otros de las mismas características bien entonces por ejemplo si yo tengo un

billete bien de 5000 pesos colombianos y se lo doy a uno de ustedes para se los presto y mañana viene y me devuelven otro billete de 5000 pesos colombianos para nosotros es lo mismo Sí y si fuéramos a un juicio imaginario porque quiero que me devuelvan de las mismas características de la misma denominación estamos bien Sí vale lo mismo no tenemos problema tiene que ser el mismo billete que yo presté bien y eso habla de fungibilidad de ahí es que viene la no fungibilidad que justamente lo contrario y ahí bueno el concepto de los nfts el taller Así que no vamos a profundizar en eso pero la magia está ahí no En los nfts no me da lo mismo uno que el otro a pesar de que se vean igual o tengan las mismas características Sí pero acá sí acá no me

da lo mismo y por eso Si yo tengo posesión de un activo y la transfiero no importa Yo no le tengo que no tengo que identificar cuál de los activos le estoy dando con que le dé la misma cantidad o las mismas características del activo que que está esperando recibir alcanza bien bueno y vamos a hablar ya del rc 20 el RS 20 es un estándar que se definió se definió el año 2015 sí de 2015 cuando salió la red de tyrion para que se hagan una idea Pero simplemente en el 2017 tarda un poquito más en llegar bien y lo que lo que hablaban es esto tenemos la necesidad de poder crear tokens pero necesitamos que todos respeten más o menos una estructura porque si no cada uno de nosotros hace un token diferente

y cuando tenemos que hacer una comunicación se hace muy difícil no Entonces vamos a definir una estructura que tiene que tener un token y bueno de ahí sale el RS 20 Sí el rc20 lo vamos a ver yo ahora se lo voy a mostrar directamente desde desde la documentación bien ahí ven no les hablando un poquito la letra Bueno ahí se ve mejor bueno esta esta es la especificación bien si miramos la especificación lo que vamos a ver son definiciones de funciones no saber implementaciones o sea nos va a decir lo que tenemos que hacer pero no nos va a

decir cómo Sí el cómo lo tenemos que definir nosotros pero sí tenemos que respetar la estructura que nos Define básicamente lo que vamos a encontrar es que tiene un nombre El token si quieren pensarlo a nivel criptomoneda sería el nombre de la moneda que vamos a definir pero podría ser un token de otra cosa podría ser el token para jugar videojuegos tranquilamente un símbolo Generalmente más cortito muchas veces una sigla dos o tres letras cuatro a veces sí pero es más cortito para poder identificarlo más rápido la cantidad de decimales que voy a usar porque lo que programen solitis saben que solity no tiene buen soporte para número decimales Entonces si nosotros queremos generar un token que tenga número decimales tenemos que decirles cuántos

tiene entonces las aplicaciones que se conecta con nuestro token cuando vieron números gigante que es lo que van a terminar recibiendo van a saber dónde está la parte decimal y dónde está la parte entera bien Hola Ahí está vamos a tener una cantidad total de suministro Esta es la emisión Total que hay de la moneda vamos a tener posibilidad de ver balances sí todo eso lo estoy diciendo la definición obviamente la pueden después chequear con más detalle vamos a poder hacer transferencias hasta acá creo que no le dije nada revelador no O sea más o menos lo que nos imaginamos que va a ser un token bien y acá donde aparece por ahí algo que es distinto a lo que a lo que por ahí nos podíamos imaginar que hay

que es el transfer from bien porque la transferencia que nosotros vamos a imaginar desde el principio es Yo tengo un activo soy un usuario la transfiero a otro listo no súper simple pero acá el transfer from habla de transferir a nombre de otro de otra cuenta sí acá en lo que es el mundo de cirium los contratos tienen la misma estructura de la del mismo espacio de direcciones que las cuentas entonces tranquilamente un usuario una cuenta puede ser una persona operando con una billetera con o también puede ser un contrato y un contrato puede tomar de mis activos por ejemplo y se los puede transferir otro usuario sí obviamente yo se los cuento Así suena súper riesgoso porque van a decir va a

venir un contrato me vas a sacar mi fondo se lo va a transferir bueno no están así hay que darle una aprobación previa así y para eso tenemos las funciones esa que vemos como pro con a Perú Nosotros le damos permiso a otra dirección de que pueda gastar una parte de nuestros activos bien entonces es como para poner un ejemplo cuando hacen una extensión de su tarjeta de crédito a fin de cuentas los que van a pagar la cuenta son ustedes pero le están dando permisos a otra persona de que consuma de su saldo bien esa persona puede o no usar el saldo no es que se la están transfiriendo sino que le están dando permiso de decir Bueno este saldo esta parte esta dirección la puede usar bien y eso posibilita algunos escenarios Como por ejemplo los swaps sí un contrato de

Swap cuando nosotros queremos hacer un intercambio de activos nosotros podemos autorizar a ese contrato y hecho si ya alguna vez hicieron swaps habrán visto que les pregunta si quieren autorizar al contrato sobre esa cantidad les pregunta así le dan permiso para ustedes retirar ese saldo de su cuenta y transferencia el otro usuario y ustedes a cambio recibir la transferencia desde el otro usuario con el mismo sistema no al otro usuario también le va a pedir permiso y le va a hacer la transferencia de valor Bien también puedes funcionar por una subasta eso a nivel de nefties la aprobación Pero bueno acá no vamos a hablar de Netflix Así que vamos a volver a los rs20 bien bueno la funcionalidad le va a permitir chequear si si ya dieron permisos o Cuánto hay de permisos y después van a ver para finalizar dos

eventos Alguien sabe que son los eventos en solita me puede explicar sobre los eventos nadie Bueno un evento en solidity es una notificación Bien dentro de los contratos no tiene un efecto yo no puedo programar O sea no voy a programar una acción mediante un evento sino que es una notificación que yo voy a dejar registrada en la red para notificar que sucedió algo por ejemplo en la transferencia básicamente esa eventos hacen eso avisan que una transferencia de un usuario a otro o que o que se hizo una aprobación y que en realidad dentro del contrato no van a hacer nada o sea dejo el registro Y le doy la posibilidad a usar los externos o aplicaciones de que puedan ver que se hizo una transferencia

si Entonces por ejemplo si yo quisiera enviar un correo electrónico a alguien después de que recibe un valor Yo podría hacerlo desde afuera revisando los los eventos y las notificaciones que hubo bien eso que vimos ahí es el rs20 bien escribir el código lo podríamos hacer les juro que no es difícil de hacer pero hay una un principio la programación que es no hay que reinventar la rueda no Y si alguien lo hizo y lo hizo bien no vale la pena volver a escribirlo si ya podemos usar el que el que funciona así para eso vamos a usar una de las implementaciones que he hecho está recomendada aquí mismo en la documentación que es la Open zeppening sí Open sepelis ya tiene la la definición y la implementación de estos rs20es está súper probado súper

chequeado son confiables y ahí tienen que tener cuidado porque que sea un rc 20 lo único que dice es que tiene esta definición pero no le dice cómo Entonces no hay que confiar ciegamente Solamente porque tiene la definición del r20 hay que ir al código y Hay que chequear como está implementado Sí porque si no podemos caer en algún engaño bien Pero sabemos que el open Zeppelin es confiable entonces podemos empezar a trabajar con el token de Open yo les voy a mostrar acá un ejemplo que ya está funcionando eso que ven ahí y que súper cortito no sé si lo agrando un poquito más a ver mejor un poquito OK Bueno eso que ven

ahí Eso es el código de un rc 20 bien hasta podría ser más cortito Pues yo ahí Ahí le agregan unas cositas que ahora les voy a contar pero ahí ya tengo funcionando una resta yo yo ya lo lo hice lo implemente en la red lo tengo en la red de tesnet le dice diploy nos ha quedado dormido después no mentira mentira está bien y así como lo ven por ahí se imaginaban algo como súper complejo de muchas líneas de código etcétera bueno no esto es una raza 20 que ya funciona y está productivo y que se puede usar normalmente sí obviamente no es que no tiene código lo tiene pero usa la implementación de Open Zeppelin que la podemos ver acá lo pueden ver en el github o mismo cuando cuando ustedes instalan la referencia se las va esto

que estoy usando se llama remix Es una herramienta que 100% online la cual no tiene que instalar nada para usar y que directamente pueden empezar a usarla así como como la estoy usando yo y pueden verlo el código así y es un buen ejercicio verlo primero para aprender un poco más sobre código y cómo cómo pensaron la idea y después obviamente por temas de seguridad siempre tenemos que chequear de que hagan lo que nos prometen que hace Sí entonces bueno está bueno para para chequear van a ver que no deja de usar mappings transferencias transferencia digo de agregar un valor un mapping restarlo hacer algún ritual alguna validación no sale de ahí no tiene una lógica tan compleja bien es algo que tranquilamente podían escribir pero probablemente si nos centramos a hacerlo por ahí estaríamos no sé media hora una

hora escribiendo este código o más y acá ya lo tenemos hecho y verificado bien Vamos a revisar un poquito el código en las primeras líneas lo típico tenemos la licencia esto la licencia de código libre bien pues no ponerlas optativo Está bueno para evitar un Warning del compilador nada más luego la versión del compilador acá es por ahí donde más problemas tenemos en el sentido de definir una una versión yo estoy usando la cruz estándar remix Lo importante es que si ustedes agregan referencias a otro contrato como la que yo estoy usando acá el rs20 tiene que estar dentro del Rango de las versiones que definir bien El único tiene que tener en cuenta si no no me va a compilar bien y después esta línea así es importante acá yo estoy haciendo una importación del

código del rc 20 de Open Zeppelin esta importación trae el código a mi contrato o sea cuando yo haga el diploy voy a estar incluyendo ese código dentro de mi contrato bien pero no lo tengo que escribir pero es como si estuviera escrito sí y fíjense que la importación yo no ese archivo en realidad yo no lo agregué a mano si no utiliza a través de una importación de un paquete de de Note de npm de noteparker bien Pero bueno eso lo hace solo Solamente le tenemos que indicar el nombre del paquete y el nombre del paquete empieza con @open zeppelin/condtracks bien Este es el nombre del paquete eso me va a instalar las referencias que yo quiera y yo puntualmente le digamos la apunté al token rc 20 bien O

pensé @ o pensépelin/contrax/token barra rs20 barra rs20.1 sol si tienen dudas pueden ir al github de Open Zeppelin y pueden ver la estructura que tiene la la carpeta contracts que va a ser Exactamente igual a la del paquete Así que como navegan la la estructura van a poder usarlo Exactamente igual en el remix Sí ustedes terminan de escribir esa línea de código ponen el punto y coma combinan el contrato e inmediatamente van a ver que del lado izquierdo Donde dice punto deps les va a aparecer una serie de paquetes de Note en este caso y bueno va a estar toda la la estructura de carpetas de Open Zeppelin referidas al token y particularmente bueno el rc 20 con su

interfase Por qué Porque el RS 20 usa la interfase irc20 que también es de Open Zeppelin también está la misma carpeta y también se la va a instalar y por eso les va a aparecer ahí también la pueden chequear la interfase es exactamente lo que vimos nosotros en la bien Igual Perfecto Bueno qué más tenemos esto se llama herencia es una de las de las características que tiene solities por ahí la conocen también de programación orientada a objetos con esto le estoy diciendo mi contrato hereda del contacto rc 20 va a tener todas las funcionalidades del rs20 bien Y a partir de ahí si ustedes quieren compilar ahí mismo no les va a funcionar porque el rc 20 tiene un constructor con parámetros si el RS 20 no tuviera

constructor con parámetros lo puedo usar directamente pero como tiene un constructor con parámetros me obliga a tener que tomar una decisión Qué hago con esos parámetros qué Qué hago cuando yo quiero hacer diploide el contrato y esto a fin de cuentas va a ser una residente Qué hago con esos valores que necesito para poder crear una rc 20 entonces eso lo defino de esta forma dentro del constructor sí antes de empezar a escribir el código constructor le digo qué tengo que hacer con los parámetros del rc 20 si los parámetros son el nombre y el símbolo Yo ahí no no estuve muy original lo reconozco puse de prueba a prueba ustedes si su hacer más originales pero deberían poner el nombre y el símbolo que va a tener el token bien y eso es como lo van a identificar

en la red cuando ustedes vean las transacciones Cuando vean el contrato Cuando vean Explorer y todo lo van a encontrar con esa información bien y si ustedes compilaran el contacto ahí y y lo suben a la red fenómeno va a andar va a funcionar pero no va a haber moneda emitida o sea vamos a tener un token que tiene emisión 0 y circulante 0 o sea ninguna cuenta Va a tener tokens va a ser un token maravilloso de circulante cero bien Entonces tenemos que definir una lógica para empezar a emitir tokens Sí para para que se empiezan a emitir yo en este caso lo que hice fue el caso más sencillo de todos y al sender que es el que está creando el contrato le emito mil y que a partir de ahí empiece empiece el juego no el que

creó el contacto Tiene mil los irá no se vendiendo repartiendo no sé Depende para que los use no todos los tokens van a ser iguales no todos los rs20 van a ser iguales y no todos van a tener el mismo criterio de emisión entonces ahí va a depender de lo que ustedes quieran hacer Sí y van a decir Bueno pero cómo hago para emitir si yo ya tengo todo el contrato escrito y la olíamos la única opción que tengo es hacerlo en el constructor dónde dónde puedo emitir funciones fuera del rc20 bueno si van a la especificación de del rc 20 de O pensé pelín van a ver que las funciones tienen una palabra ahí que se llama virtual sí que dice virtual eso modificador eso lo que dice virtual

Es que yo esa función en los contratos que heredan de este de este mismo contrato o sea los que van a hacer heredados del rs20 yo los puedo reescribir bien puedo hacer una reescritura de ese código bien entonces yo puedo agarrar por ejemplo puedo tomar el transfer puedo ver la lógica que tiene puedo repetirla sí y puedo agregarle que haga un mint por ejemplo después una transferencia yo puedo emitirle moneda a otro usuario y entonces no estamos estancados a crear nuestras propias funciones o hacerlo en el constructor sino que mismo podemos tomar el flujo normal del rc 20 en las transferencias en lo que sea y ahí a hacer el tema de la de la emisión la emisión la van a hacer A través de esta

función que se llama guión bajo mint bien y este guión bajo mint es una función que no es pública O sea no pueden exponer ese mint directamente para que venga cualquier usuario y les les emita monedas sino que va a ser algo que van a poder Eternamente dentro del contrato bien ustedes van a elegir dónde Sí entonces Bueno hay una combinación de herencia de de bueno de todos los conceptos de solíticos constructores parámetros etcétera que ustedes van a van a poder hacer para para poder mejorar este contrato sí pero así como lo tienen esto es un es un Smart contra que ahora voy a mostrar Pues yo ya le dice diploy este es el contrato Sí eso Esta es una testnet es una red de prueba

no es producción sí se llama goerly o gerli no sé cómo como le dicen y el contacto está Sí ya está está desplazado es el que acaba de hacer y lo que está bueno es este renglón que dice token Tracker van a ver que hay un simbolito como que es un icono bien para el lado aparece prueba a prueba Yo ningún En ningún lugar le dije cómo se llama el token bien pero ya me ya entendió el explorador entendió que esto es un token que se llama prueba y que su símbolos prueba y yo ni un momento le dije solamente con el código ya alcanzó para que el explorador entienda que esto es un toque en rc 20 y que tiene esas características bien bueno bueno esto era el precio Start era lo

que lo que íbamos a hacer pero ya lo avanzamos y ahora preguntar no Por qué utilizar el estándar o sea Qué beneficios me da poder usar el rs20 poder usar este estándar y no hacer mi propio toque en fungible con mi propia definición y mi propio código y hacer la mía Por qué usar el estándar porque piensan que es bueno usar el estándar Cómo interoperabilidad muy bien Me gusta qué sí bien Sí sí O sea sus hace Por ejemplo yo pensé pelín sabes que no tiene problemas de vulnerabilidades bien

bien muy bien lo que hice es no hace falta hacer un experto programador para poder hacer una rc 20 y si vieron ese código si ustedes ahora lo escriben van a tardar cinco minutos en escribirlo Sí si hacen lo mismo que yo después lo que se complica es personalizarlo sí ponerle un poquito pero sí exactamente está está perfecto todo lo que dicen principalmente lo que tienen que entender es que si ustedes le dan esa estructura abren la puerta a que un montón de de aplicaciones y de casos de uso se puedan conectar con su token hablamos de Swap cualquiera de estos contratos de Swap entienden los rs20es saben que una rc 20 es un token fungible saben que tiene una función llamada transfer Sí entonces Y saben el transfer from Y saben el appro entonces pueden ustedes integrar su token a muchas aplicaciones de Swap y de Define que ya

entienden Cómo interactuar con los rs20 así como lo hizo el Explorer donde nosotros veíamos que ya entendió que era una rc 20 y ya identificó el siempre etcétera sí mismo si ustedes empiezan a hacer transacciones con esto yo ahí no dice transacciones entre entre el toque empresas en transacciones en el detalle de la transacción les va a decir que es del token le va a dar más información todo eso entendiendo solamente por haber hecho eso de respetar la estructura del rc 2020 bien bueno algunos usos esto muy rápido Steve coins son los toques más usados en la red seguramente la van a conocer el fans token es algo que está está empezando a usarse pero los equipos de fútbol de deportes sacan tokens y esos son fungibles porque uno

compra después lo pueden revender pasó que cuando cuando cuando Messi tenía el rumor de ir al al psg el fans token del psg subió su valor porque hay mucha gente que empezó como a a a a venderlo y usarlo como como una moneda de cambio toquen de gobernanza también hay o sea cuando se quiere tomar decisiones en alguna organización descentralizada o similar estos token fungibles hacen que yo pueda tener posesión de más votos o puedo transferir mi capacidad de Voto en base a la posesión de estos de estos tokens Entonces algo que se usa mucho y también el page si los videojuegos los juegos que nosotros jugamos Generalmente emiten toquen fungibles que después usamos para para otra cosa y ahí

ganan su valor pero el mercado del Gaming es es uno de los que más se está moviendo también el tema de rs20 bien y infinidad de casos no lo que es defy utiliza muchísimo no pero bueno mucho está basado también en lo que son las las criptomonedas y estilo coins bien próximos pasos pues ya estamos en los últimos momentos de la presentación lo primero es el rs20 si buscan dentro de Open Zeppelin tienen algunas extensiones por ejemplo tiene una rc 20 y se puede pausar Entonces si nosotros detectamos algo que no que o sea Alguna algún problema en el contrato podemos pausarlo no no sé si es muy bueno a nivel de centralización o descentralización Pero bueno está está el contrato hecho eso ya está hecho hay otro contrato que da la

opción de quemar moneda emisión de monedas yo puedo empezar a quemar token que emitir los puedo hacer los puedo inutilizando la voy a quemar es como inutilizarlos no dejarlos inoperativos y Bueno hay algunos más hay un mismo rc 20 que ya viene con la con el sistema de votación integrado Entonces lo pueden explorar pueden ver más ahí los tienen mismo en la carpeta de del token tienen una carpeta que dice extensions súper fácil de encontrar y ahí están Y después van a ver ahí otros rc que les que les llevaré el primero se llama multitok en estándar permite tener más de un rc 20 dentro del mismo Smart Contract y hasta pueden tener nfts también o sea el mismo contrato alberga distintos tokens se lo pueden explorar y después los otros que

tienen ahí son contratos que son compatibles con el rc 20 pero lo extienden en funcionalidad bien el por ejemplo el 777 está en Open Zeppelin también los otros no Y la agregan alguna funcionalidad de rc 20 pero siguen siendo por dentro se recibiendo o sea 100 manteniendo la estructura del rc 20 por lo tanto todas las aplicaciones de todas las aplicaciones que saben entender o que saben comunicarse con una rc 20 si ustedes hacen alguno de estos también lo van a reconocer como tal y van a poder operarlos de esa forma entonces Bueno también son algunos de los contratos que pueden explorar si quieren aprender más sobre token fungibles y algunas opciones más de extensión de de de de sobre todo funcionalidad por ejemplo el 777 agrega lo que son los hooks para poder emitir

acciones hacer acciones cuando cuando reciben un pago por ejemplo un token bien pueden ejecutar código ahí que eso el rc20 normal no lo hace bien Bueno terminamos acá falta un minuto Así que muchas gracias Me pueden seguir en redes Si tiene alguna pregunta vamos a hacer un pequeño sorteo si se animan yo tengo tres remeras para para para sortear pero vamos a hacer lo siguiente a los que se animen a hacer una rc 20 ahora subirlo a tesnet y me ponen el addres en Twitter y me roban y arroban a esto latam eh me buscan ahí y les doy una remera Sí entonces a los que se animen a hacer el diploide de una rc 20 en tesnet lo hacen me

mandan el addres ahí en Twitter me arroban a mí me arroban Sí y coordinó con ustedes para para hacerle los la entrega de premios bien eso para para tratar de motivarlos a que hagan este pequeño experimento bien bueno Muchas gracias Cualquier duda igual estoy en los pasillos y lo podemos charlar gracias