Esperaba mas codigo de esta clase… y use case practico
Bienvenida
Qué es OpenZeppelin
Control de acceso
Propiedad con Ownable
Control de acceso basado en roles
Gestión de demoras con TimelockController
Reto: control de acceso
Tokens
Estándar de tokens ERC20
Estándar de tokens ERC721
Estándar multitoken ERC1155
Extensión de la funcionalidad de los tokens
Reto: tokens
Utilidades
Operaciones matemáticas
Criptografía
Caso de uso: Escrow
Introspección de contratos inteligentes
Estructuras de datos
Reto: utilidades
Conceptos avanzados
Gobernanza y descentralización
Contratos actualizables
Despedida
Continúa aprendiendo
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Sebastián Leonardo Perez
Los tokens provenientes del estándar ERC721 son los tan conocidos NFT. Piezas únicas que pueden representar colecciones, obras de arte u otro tipo de activo digital único.
Encontrarás muchas similitudes entre el estándar ERC721 y el ERC20. La principal diferencia entre ellos está dada en que los tokens emitidos bajo el estándar ERC721 poseen un tokenId
para identificar de manera única al mismo.
Esta característica convierte a los tokens en no fungibles, de ahí el término NFT o Non-Fungible Token. Piezas digitales no intercambiables entre sí, ya que pueden tener diferentes valores económicos o características.
Otra importante diferencia entre ambos tipos de tokens es que los ERC721 no son divisibles. No puedes obtener el 10% o el 50% de uno. Solo son transferibles de manera completa.
Los tokens NFT fueron especificados en la propuesta EIP721 que derivó en el estándar ERC721 y que define una interfaz y características de cómo deben ser los tokens no-fungibles que viven en la Blockchain de Ethereum.
A lo igual que con el estándar ERC20, OpenZeppelin tiene su propia implementación del estándar ERC721.
La implementación de dicho estándar es muy similar a la del ERC20:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MiTokenNoFungible is ERC721("Mi Token No Fungible", "MTNF") {
constructor() {
_mint(msg.sender, 1);
}
}
Se define un nombre y un símbolo para la colección. La principal diferencia está en que la función _mint()
, en lugar de recibir la cantidad de tokens que queremos emitir, recibe el tokenId
y solo podemos emitir uno a la vez.
El tokenId
debe ser único, en caso de ya estar utilizado el ID, el contrato emitirá un error. Es recomendable que el ID de los tokens sea un número autoincrementable.
Si tu contrato implementa de manera correcta el estándar ERC721, el mismo será compatible con la red de Ethereum y podrás ver tus NFT en plataformas como OpenSea que es una de las más populares del mundo para la transferencia de los mismos.
En Platzi, podrás desarrollar toda una plataforma de NFT con el Curso de Dapps: Introducción al Desarrollo de Aplicaciones Descentralizadas donde desarrollarás el contrato inteligente, y luego el Curso de Desarrollo Frontend de Aplicaciones Descentralizadas con Web3.js donde desarrollarás el front-end que se conecta a ese contrato.
Te animo a que realices ambos cursos y te adentres en el maravilloso mundo de los NFT y tener tu propia plataforma.
El estándar ERC721 para la creación de NFT es, tal vez, uno de los casos de uso que más gente atrae al mundo crypto. Estudiarlo te permitirá ser competitivo en el mercado laboral y estarás listo para ser un gran desarrollador Web3.
Contribución creada por: Kevin Fiorentino (Platzi contributor).
Aportes 3
Preguntas 0
Esperaba mas codigo de esta clase… y use case practico
Personalmente no he comprado ningún NFT, pero tengo algunos conocimientos, y me encanta como han cambiado muchas cosas en la actualidad. Aquí comparto un link con los NFTs más caros que han sido vendidos:
https://www.dexerto.com/tech/top-10-most-expensive-nfts-ever-sold-1670505/
Platzi ya tiene su Curso de Implementación de Tokens en Ethereum: ERC-20. Aún falta un curso para implementación de tokens ERC721.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?