Caso práctico: activos digitales

Clase 6 de 11Curso de Casos de Uso de Smart Contracts

Resumen

El término NFT significa Non-Fungible Token. A lo igual que los tokens del estándar ERC20, en donde cada uno de una misma colección tiene el mismo valor que otro, los NFT también son tokens, pero no son intercambiables, no divisibles y no necesariamente con el mismo valor cada uno.

En una Blockchain puedes representar activos digitales a través de con estos NFT.

Características de los tokens NFT

Los tokens NFT también tienen su propio estándar. El estándar ERC721, especificado en la propuesta EIP721, describe una interfaz y características de cómo deben ser los tokens no-fungibles que viven en la Blockchain de Ethereum.

Implementando el estándar ERC721

El estándar ERC721 define una serie de funciones y eventos que el contrato inteligente debe cumplir.

function balanceOf(address _owner) external view returns (uint256);
function ownerOf(uint256 _tokenId) external view returns (address);
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
function approve(address _approved, uint256 _tokenId) external payable;
function setApprovalForAll(address _operator, bool _approved) external;
function getApproved(uint256 _tokenId) external view returns (address);
function isApprovedForAll(address _owner, address _operator) external view returns (bool);
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

La implementación es más exigente y complicada que el estándar ERC20. La principal característica es la utilización de un TokenId para diferenciar un token de otro.

Desafío de los NFT

No deja de ser un gran reto para ti realizar tu propia implementación del estándar ERC721 y comprender cómo funciona por detrás. Aunque es recomendable en contratos de proyectos reales la utilización de implementaciones auditadas por la comunidad y completamente seguras como la de OpenZeppelin.

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 trabajarás en el front-end que se conecta a ese contrato.

Te animo a que te tomes el tiempo de realizar ambos cursos. El conocimiento derás de desarrollar todo un contrato inteligente profesional y una aplicación Web3 te dará las herramientas para estar listo o lista para trabajar en proyectos reales.


Contribución creada por: Kevin Fiorentino.