Cómo Lanzar Tokens Colecionables en el Blockchain [ ERC-1155 ]
Ahmed Castro
Posted on August 2, 2021
El standard ERC-1155 fue creado con el objetivo de representar ítems en los videjuegos pero puede digitalizar otros assets. Es muy similar al estándar ERC-721 con la diferencia que cada id
representa una colleción de tokens, no un token único.
En tutorial vamos a lanzar un contrato ERC-1155 en Rinkeby Testnet, subiremos las imágenes y metadata en Github y veremos el resultado en Opensea y Rarible.
Características de un ERC-1155
- Puede contener varias monedas en un solo contrato
- Puedes hacer
Batch transfers
, transferir tokens en una sola transacción - No cuenta con un
Nombre
niSímbolo
- Mejoras en seguirdad inspiradas en ERC-777
Antes de comenzar
Aseguráte de tener instalado Metamask con fondos en Rinkeby Testnet que puedes conseguir grátis en el faucet.
1. Subimos la metadata a internet
A pesar de ser centralizado, usualmente optamos por subir la metadata en Github para ser transparentes y tener más control. Pero también existe la posibilidad de subirla via IPFS o en servidores centralizados. Dónde subirlos dependerá de lo que se quiera lograr.
0000000000000000000000000000000000000000000000000000000000000001.json
{
"name": "Zanahoria",
"description": "Tiene muchas vitaminas",
"image": "https://TUURL/Zanahoria.png"
}
0000000000000000000000000000000000000000000000000000000000000002.json
{
"name": "Papa",
"description": "Te dá energía",
"image": "https://TUURL/Papa.png"
}
2. Lanzamos un contrato ERC-1155
Fíjate cómo el contrato te propone que estructures los urls de la metadata: https://MIURL/{id}.json
. Donde {id}
representa el id
que se define en el contrato 0000000000000000000000000000000000000000000000000000000000000001
, 0000000000000000000000000000000000000000000000000000000000000002
, 0000000000000000000000000000000000000000000000000000000000000003
etc...
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
contract MyCollectibles is ERC1155 {
constructor() ERC1155("https://MIURL/{id}.json") {
_mint(msg.sender, 1 /* Id Zanahoria */, 10 /* Cantidad */, "");
_mint(msg.sender, 2 /* Id Papa */, 20 /* Cantidad */, "");
}
}
3. Lanzamos un contrato ERC-1155
Ahora podemos observar y manejar nuestros ítems en Rarible Testnet o en Opensea Testnet.
Gracias por ver este tutorial!
Sígueme en dev.to y en Youtube para todo lo relacionado al desarrollo en Blockchain en Español.
Posted on August 2, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.