SimpleAssets: Análisis del Contract y Creación de NFTs desde el Explorador de Bloques de WAX

Marcos DK
eosbarcelona
Published in
5 min readJul 22, 2020

CriptoLions, a través de su web https://wax.tools.simpleassets.io nos ofrece la herramienta “SimpleAssets Tools” para facilitar la tarea de creación de NFTs. Recientemente añadió la opción de poder alojar las imágenes que formarán parte de los NFTs que vayamos a emitir, en su propio servidor IPFS (InterPlanetary File System). En el grupo de Telegram de SimpleAssets (https://t.me/simpleassets) se mantiene una fluida comunicación con los usuarios y gracias a este feedback el interfaz para emisión de tokens está en permanente mejora.

No obstante, el objetivo de estos artículos es ir más allá de este interfaz y profundizar en la estructura del contract SimpleAssets. Para comenzar con esta exploración vamos a utilizar en primer lugar uno de los exploradores de bloques para la blockchain de WAX más importantes: http://wax.bloks.io/

En el explorador de bloques debemos buscar la cuenta “simpleassets” y, una vez localizada, hacer click sobre el apartado “</> Contract”. Esto nos dará acceso a una ventana de diálogo que dispone de 3 secciones: Tables, Actions y ABI

Las tablas de un contract son las estructuras de datos que puede almacenar en contract en la blockchain. Gracias a ellas podemos acceder a los datos de, por ejemplo, los autores que están dados de alta y qué datos tienen en su ficha de autor. Por ejemplo, vamos a seleccionar la tabla “Authors”:

En este listado de ejemplo podemos ver los 10 primeros autores ordenados alfabéticamente. Tomando de ejemplo la cuenta “radaquesttcg” (propiedad de quien escribe) podemos apreciar la estructura de datos con el siguiente contenido:

Esta información es la que hemos introducido a través de la herramienta de creación (SimpleAssets Tools) en el capítulo anterior. En caso de dudas sobre cómo proceder para intrudocir algún dato siempre es bueno poder estudiar la manera en la que otros lo han hecho.

Acciones

Lo más interesante que vamos a encontrarnos en esta página son las acciones diponibles del contract, esto es, los métodos de la clase. Al seleccionar la pestaña Actions podremos verlas todas agrupadas:

Acciones para gestión de autores:

  • authorreg: Registrar autor.
  • authorupdate: Modificar los datos de un autor existente.

Acciones para gestión de Tokens No Fungibles (NFT)

  • create: Crear NFT
  • update: Modificar contenido de un token (solo datos mutables)
  • transfer: Transferir token(s) entre cuentas.
  • burn: Eliminar el token.
  • offer: Crear un ofrecimiento de token(s) a un nuevo propietario.
  • canceloffer: Cancelar una oferta de token(s)
  • claim: Aceptar una oferta realizada hacia nosotros.
  • delegate: “Prestar”un token de forma temporal a otro usuario.
  • undelegate: Cancelar un préstamo de token.
  • delegatemore: Aumentar el plazo del préstamo.
  • attach: Permite al autor “empaquetar” otros NFT como complementos de un NFT anfitrión.
  • detach: Perimte al propietario “desempaquetar”los NFT que el autor del NFT hubiera asociado con “attach”.
  • attachf: Igual que “attach” pero con tokens de tipo FT.
  • detachf: Igual que “dettach” pero con tokens de tipo FT.

Acciones para gestión de Tokens Fungibles (FT)

  • createf: Crear FT.
  • updatef: Actulizar los datos del FT.
  • issuef: “Imprimir” nuevas unidades del token y entregarlos a un nuevo propietario.
  • transferf: Transferir unidades FT entre usuarios.
  • burnf: Eliminar una o varias unidades del FT.
  • offerf: Crear una oferta de FT para otro usuario.
  • cancelofferf: Cancelar una oferta previamente creada.
  • claimf: Reclamar uno o varios FT que nos han ofrecido.
  • openf: Abrir una oferta de compra en el market.
  • closef: Cancelar una oferta de compra.

Acciones para gestión de Tokens No Transferibles (NTT)

  • createntt: Crear un token NTT indicando su propietario de destino y si necesita ser reclamado o no.
  • updatentt: Actualizar los datos mutables del token NTT.
  • burnntt: Destruir un token NTT.
  • claimntt: Reclamar un token NTT que se nos ha ofrecido.

Creación de un token NFT

Para finalizar nuestro artículo de hoy vamos a crear un NFT a través de las acciones del contract de simpleassets desde el explorador wax.blocks.io.

Tal y como indica la tabla de “Actions”, deberemos seleccionar el botón con la acción “create”, con lo que se nos mostrará esta ficha para introducir los datos nuestro nuevo NFT:

  • author: Nombre de la cuenta que hemos registrado como autor.
  • category: Categoría del NFT. Servirá para poder clasificarlo en los markets, algo que aún resulta un tanto caótico debido a la falta de consenso, por lo que se recomienda ser meticuloso en este aspecto si no queremos que nuestro NFT se pierda entre miles de ellos.
  • owner: Nombre de la cuenta del propietario. Puede ser la misma cuenta del autor.
  • idata: (Inmutable) Estructura de datos en forma de cadena de texto que contiene información que no podrá ser modificada. Aquí es donde podemos añadir la información inmutable que identificará a nuestro NFT.
  • mdata: (Mutable) Estructura de datos en forma de cadena de texto que sí podrá ser modificada. Si nuestro NFT contiene información que puede cambiar en el tiempo, como el nivel de vida de una carta o la URL de una ilustración, deberá indicarse en este campo.
  • requireclaim: (true/false) Indica si el NFT debe ser reclamado o el propietario lo recibirá directamente en su wallet.

Veamos un ejemplo:

  • author: radaquesttcg
  • category: game.art
  • owner: kbjqu.wam
  • idata: {“name”:”Game Art Fantasy Collection”,”game”:”Rada Quest TCG”,”desc”:”Collect Rada Quest TCG game-art and feel lucky while playing. Rada Quest is a game by Marcos DK (https://radaquest.net)","serie":"hg.1","mint":"#62"}
  • mdata: {“img”:”https://radaquest.net/zaede","title":"Zaede (Purple Storm)”,”acto”:”Honor and Glory”,”artist”:”Marcos DK”}
  • requireclaim: false

Y el resultado:

Rada Quest TCG es un videojuego en desarrollo propiedad del autor, Marcos DK, así como las ilustraciones asociadas al proyecto.

--

--

Marcos DK
eosbarcelona

Programador y creador de contenidos digitales. Profesor de informática, game dev y líder de 3DK Render, WAX Guild.