Fichas de acuñación
9

Los tokens, también conocidos como activos de la cadena de bloques, se utilizan para representar la identidad de sus artículos virtuales en la cadena de bloques.

Cuando tus objetos de juego están en la cadena de bloques, su valor es más tangible porque sus identidades son inmutables, transparentes e incorruptibles.

La tokenización y la gestión de los artículos virtuales es la función principal de la Plataforma Enjin.

Datos de la ficha

Hay dos tipos diferentes de fichas que pueden ser creadas usando la plataforma de Enjin.

Fichas fungibles (FT):

Las monedas y criptodivisas tradicionales son fungibles; son idénticas, intercambiables y divisibles. Para que las monedas funcionen como un método de pago estándar, la fungibilidad es esencial.

Las fichas fungibles no tienen un número de serie o historia única; no hay nada que distinga una de otra. Por ejemplo, cada billete de 5 dólares es exactamente igual y tiene el mismo valor. Cada mitad de una ficha fungible es igual a dos cuartos de otra.

Las fichas fungibles son útiles para cosas como la moneda, los puntos de recompensa, los descuentos y los materiales promocionales, cualquier elemento que no requiera una identidad única.

Fichas no fungibles (NFT):

Una ficha no fungible es un activo único.

Las fichas no fungibles no son divisibles y se almacenan en la cartera de Enjin como fichas separadas con datos individuales. Sin embargo, las fichas no fungibles no siempre son 100% únicas. Por ejemplo, un conjunto de fichas puede compartir el mismo nombre, descripción e imagen, pero pueden seguir siendo no fungibles si poseen propiedades únicas y distintivas (identidad, historia y metadatos).

Las fichas no fungibles son adecuadas para cosas como identificación, certificados, coleccionables, personajes de juegos, cualquier activo que requiera una identidad propia y única.

Hay dos tipos de datos que se pueden adjuntar a cada ficha.

  • Blockchain Data está comprometido permanentemente con la Red Etérea. Las propiedades definitorias de un token, incluyendo su identidad, configuración y valor respaldado por ENJ pueden impactar drásticamente en la demanda de un token. Por lo tanto, muchos de estos datos nunca pueden ser cambiados una vez comprometidos con la cadena de bloques. Aunque algunas configuraciones de los tokens pueden actualizarse sustituyendo los datos antiguos por los nuevos, las configuraciones de los tokens anteriores permanecerán registradas, visibles en el historial de transacciones de la cadena de bloques.
  • Losmetadatos son la información legible por los humanos que sus usuarios podrán ver en su juego o aplicación y en cualquier otra plataforma donde puedan ver su ficha. Estos datos pueden ser actualizados en cualquier momento.

Datos de la Cadena de Bloqueo: Cambiable

Estos datos pueden ser editados y reemplazados con nuevos ajustes en cualquier momento.

Nombre: El nombre que se comprometerá con la cadena de bloqueo.

Metadata URI
Ver la sección Trabajar con metadatos.
La URI de metadatos le permite añadir una URL que contiene un JSON que describe las propiedades de su artículo, incluyendo imágenes.

Transferible
Determina si los artículos pueden comercializarse o están vinculados a sus propietarios (es decir, no comercializables).

  • Permanente: El artículo siempre puede ser intercambiado con otros. Este ajuste no es modificable una vez que se ha comprometido a una ficha.
  • Atado: El artículo siempre está atado al dueño del artículo.
  • Temporal: El artículo es actualmente comerciable, pero el creador puede hacer que no sea comerciable en una fecha futura.

transferFeeSettings: valor

Si usa ENJ, multiplique el valor por 10^18 para incluir 18 decimales. Cuando se establece por primera vez una tasa de transferencia, ese ajuste se convierte en la tasa máxima que se puede cobrar. Sin embargo, puede reducir la tasa de transferencia en cualquier momento, en cuyo caso, puede aumentarla hasta la cantidad que estableció inicialmente.

Datos de la Cadena de Bloqueo: Permanente

totalSupply: Esto es cuántos de los artículos que quieres que existan en el mundo. Este límite puede ser
roto o significar cosas diferentes dependiendo del modelo de suministro que uses arriba. Por ejemplo, si
utiliza el tipo de suministro COLLAPSING, el suministro inicial representaría el número total de artículos que
existió durante la ejecución original. El más fácil de entender es FIXED, que dice a los usuarios que en
sólo pueden existir "tantos" artículos de este tipo en un momento dado.

Reservainicial: Esta es la cantidad de artículos que quieres pre-pagar a la menta como parte de la operación inicial de creación. Los artículos de acuñación se deducirán de este saldo hasta que se agote. Tienes que
pagar por lo menos un artículo en la creación. Tener una reserva inicial te permite crear tu artículo sin tener que gastar todo el ENJ para tu suministro total al momento de la creación.

transferFeeSettings: tipo

Puedes elegir cobrar una tarifa de transferencia por cada transacción de igual a igual que realicen tus usuarios. Esto te permite monetizar la economía que rodea tu juego y obtener ingresos fomentando nuevas e interesantes dinámicas sociales dentro de tu comunidad.

  • Ninguno: No se cobran tasas de transferencia cuando este artículo cambia de manos.
  • Per_Crypto_Item: Se refiere a la tasa de transferencia por activo en ENJ, que es acumulativa en base al número de activos que se envían. Por ejemplo, si una manzana tiene una tasade transferencia de 0,1 ENJ por artículo y el usuario Simon envía 10 manzanas al usuario1, entonces Simon tendríaque pagar 1 ENJ por la transacción que iría al creador del activo de la manzana.
  • Per_Transferencia: Esto se refiere a la tasa de transferencia, por transferencia, en ENJ. Por ejemplo, si una manzana tiene 0,1 ENJ de tasa por transferencia y Simon envía 10 manzanas al usuario1, Simon tendríaque pagar 0,1 ENJ por la transacción que iría al creador del activo de la manzana.
  • Ratio_Cut: Nota, para utilizar ratio_cut, sólo se permiten los activos fungibles. Un % de corte del total de los artículos se resta del total para el creador, con el remitente pagando el precio total. Por ejemplo, si se transfieren 500 manzanas con un ratio de corte del 10% (0,1), el receptor obtendría 450 manzanas y el creador, 50 manzanas, pagando el remitente un total de 500 manzanas por la transacción.
  • Ratio_Extra: Nota, para usar ratio_extra, sólo se permiten los activos fungibles. Un impuesto que se cobra en la parte superior de todo. Por ejemplo, si se transfieren 500 manzanas con un ratio extra del 10%, el usuario obtendrá 500 manzanas y el creador recibirá 50 manzanas, y el remitente pagará 550 manzanas en total por la transacción.

transferFeeSettings:
El ID de la ficha que quieres usar como cuota de transferencia. Use 0 si quiere que sus usuarios le paguen en Enjin Coin.

meltValue
La cantidad de ENJ que quieres usar por unidad del artículo que estás creando. Necesitas utilizar una cantidad mínima de ENJ para respaldar tus artículos dependiendo de cuántos estés creando en tu reserva inicial (el coste mínimo aparecerá junto a la etiqueta). En general, cuantos más artículos de un tipo estés creando, menos ENJ necesitarás por unidad de artículo.

Cada ficha acuñada debe estar respaldada por una cantidad mínima de ENJ que puede calcularse mediante esta fórmula: 0,5 * Math.sqrt(initialReserve) / initialReserve

supplyModel: Así es como se comporta el conjunto de artículos con respecto a la acuñación y la fusión.

Los siguientes son nuestros tipos de suministro actuales:

  • Corregido: Puedes tener hasta el número total de artículos en circulación a la vez.
  • Establecido: Permite editar el suministro total en cualquier momento.
  • Infinito: Puedes acuñar tantos artículos como quieras, excediendo el suministro total.
  • Colapsando: Una vez derretidos, los artículos no pueden ser reimpresos.

meltFeeRatio
Este es el porcentaje actual de ENJ que el jugador recibirá al fundir el objeto. El ENJ restante va al creador.

nonFungible
Si el artículo es Non-Fungible o Fungible, verdadero o falso.

Creación de una plantilla de fichas

Una plantilla de fichas contiene los datos centrales e inmutables de las fichas que se comprometerán en la cadena de bloques.

Para crear un artículo, deberá hacer una solicitud con las propiedades del artículo deseado. Aquí está
un ejemplo:

GraphQL
mutation CreateToken(
 $identityId: Int
 $name: String
 $totalSupply: Int
 $initialReserve: Int
) {
 transaction: CreateEnjinRequest(
   identityId: $identityId
   appId: $appId
   type: CREATE
   create_token_data: {
     name: $name
     totalSupply: $totalSupply
     initialReserve: $initialReserve
     supplyModel: FIXED
     meltValue: "15000000000000000000"
     meltFeeRatio: 1250
     transferable: PERMANENT
     transferFeeSettings: {
       type: PER_TRANSFER
       token_id: "0"
       value: "1000000000000000000"
     }
     nonFungible: false
   }
 ) {
   id
   encodedData
 }
}

Una vez que se haya hecho una solicitud exitosa, tendrá que aceptar y firmar la transacción en la sección de SOLICITUDES de su cartera.

Encontrar la identificación de la ficha

Un Token ID es una identidad permanente dada a su Plantilla de Token, una vez que se ha comprometido a la cadena de bloqueo.

Por lo tanto, una vez que la plantilla de fichas ha sido creada, necesitarás encontrar el Token ID para MINT las fichas que has definido dentro de la plantilla.
Hay múltiples maneras de encontrar el Token ID de un activo:

  • Puedes encontrar la identificación del Token en la transacción con ese artículo después de que se confirme a través de EnjinX. Haga clic en la pestaña "Registro de eventos", y notará los 16 dígitos únicos
  • Puedes buscar el activo en la Nube de Confianza usando la siguiente consulta:
GraphQL
query Tokens($name: String, $page: Int, $perPage: Int) {
 tokens: EnjinTokens(
   name: $name
   pagination: { page: $page, limit: $perPage }
 ) {
   id
   name
   creator
   meltValue
   meltFeeRatio
   meltFeeMaxRatio
   supplyModel
   totalSupply
   circulatingSupply
   reserve
   transferable
   nonFungible
   blockHeight
   markedForDelete
   availableToMint
   itemURI
 }
}

Por último, si estás usando el Panel de Enjin, notarás que al acuñar tu nuevo activo creado, también puedes ver el ID del token en el panel:

Identificación de la ficha

Nota: Tendrá que esperar a que se confirme y se raspe en la cadena de bloques primero.

Creación de sus metadatos de activos

Una vez que haya definido los datos de la cadena de bloques de su token creando la plantilla del token, puede añadirle metadatos, que se almacenan en un archivo .json, alojado en algún lugar que tenga acceso público de lectura.

Por favor, tenga en cuenta los siguientes requisitos en lo que se refiere a los metadatos:

  1. El enlace (tanto a los metadatos como a la imagen) debe ser accesible públicamente a los robots.
  2. El uri debe estar ajustado apropiadamente al archivo solicitado.
  3. La imagen debe ser la de un archivo de imagen válido (la imagen debe mostrar).
  4. El JSON debe ajustarse a los estándares de JSON RFC, si no se ajusta de ninguna manera, no se cargará.

Técnicamente, los metadatos de los artículos son opcionales. Sin embargo, si quieres mostrar una imagen y las propiedades de un artículo personalizado en tu juego, puede resultar en que tu activo sea extra único. La Cartera de Enjin, y otros Servicios de Enjin también mostrarán sus activos, basados en los metadatos que usted establezca.

Puede incluir un nombre (que se mostraría en lugar del nombre del artículo de la cadena de bloques), una descripción y un enlace a una imagen, como en el siguiente ejemplo:

JSON
{
 "name": "item_name",
 "description": "Description line 1.\nDescription line 2.",
 "image": "/image.jpg"
}

Necesitarás guardar ese archivo, como un archivo .json. Una vez que tengas ese archivo .json subido con acceso de lectura pública, puedes hacer la petición de establecer el elemento URI (Uniform Resource Identifier).

Consulte esta guía para obtener más detalles si no está familiarizado con el alojamiento de archivos.

La siguiente mutación pondrá el elemento URI en su activo:

GraphQL
mutation SetItemUri($identityId: Int!, $itemUriData: SetItemUriInput!) {
 CreateEnjinRequest(identity_id: $identityId, type: SET_ITEM_URI, set_item_uri_data: $itemUriData) {
   id
   encodedData
   state
 }
}

Advanced Users: The URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients must replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens.

Example of such a URI: <inline-code>https://token-cdn-domain/{id}.json would be replaced with https://token-cdn-domain/780000000000001e000000000000000000000000000000000000000000000000.json<inline-code>, if the client is referring to token ID <inline-code>780000000000001e000000000000000000000000000000000000000000000000<inline-code>.

Véase la sección de Metadatos en la documentación de las normas ERC-1155 para más detalles.

Una vez que se haya hecho una solicitud exitosa, tendrá que aceptar y firmar la transacción en la sección de SOLICITUDES de su cartera.

La fabricación de las fichas...

Ahora que ha creado la plantilla y ha definido sus metadatos, es el momento de acuñar su primer lote de fichas.

La petición de acuñar fichas fungibles (FT) frente a fichas no fungibles (NFT) varía ligeramente.

Se pueden acuñar lotes de cualquier tipo de fichas a varias direcciones o acuñarlas a una sola dirección.

El suministro de fichas fungibles está representado esencialmente por un campo de cantidad dentro de los datos de la ficha, a diferencia de las fichas no fungibles, cuyo suministro está representado por la cantidad de identidades de fichas separadas.

Por eso, si necesita acuñar varios NFT en una sola transacción, tendrá que especificar la dirección de Ethereum receptora para cada elemento individual. También es aconsejable no acuñar más de 100 NFT en una sola transacción, ya que la sobrecarga de transacciones puede hacer que estas fallen.

Los FT no tienen la misma restricción, puedes acuñar ilimitadas fichas fungibles en una dirección de etéreo. Sin embargo, es aconsejable no acuñar ninguna cantidad de fichas fungibles en más de 100 direcciones de etéreo diferentes en una sola transacción. Eso también podría causar que la transacción falle debido a la sobrecarga de la red.

Aquí está la misma petición entre 2 tipos de fichas diferentes, FT y NFT.

Fungible Token:

GraphQL
mutation MintFungibleItems($identityId: Int!, $appId: Int!, $tokenId: String!) {
 transaction: CreateEnjinRequest(
   identity_id: $identityId
   appId: $appId
   type: MINT
   mint_token_data: {
     token_id: $tokenId
     recipient_address_array: [
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_2"
     ]
     value_array: [
       5
       3
     ]
   }
 ) {
   id
   encodedData
 }
}

Esta solicitud acuñaría 5x elementos a "WALLET_ADDRESS_1" y 3x elementos a "WALLET_ADDRESS_2". Puede acuñar hasta la RESERVA <inline-code>INICIAL<inline-code>de artículos.</inline-code></inline-code>

Ficha no fungible:

GraphQL
mutation MintNonFungibleItems($identityId: Int!, $appId: Int!, $tokenId: String!) {
 transaction: CreateEnjinRequest(
   identityId: $identityId
   appId: $appId
   type: MINT
   mint_token_data: {
     token_id: $tokenId
     token_index: "0"
     recipient_address_array: [
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_1"
       "WALLET_ADDRESS_2"
       "WALLET_ADDRESS_2"
       "WALLET_ADDRESS_2"
     ]
   }
 ) {
   id
   encodedData
 }
}

Esta solicitud acuñaría 5x elementos a "WALLET_ADDRESS_1" y 3x elementos a "WALLET_ADDRESS_2".

Una vez que se haya hecho una solicitud exitosa, tendrá que aceptar y firmar la transacción en la sección de SOLICITUDES de su cartera.

Cancelación de transacciones pendientes

Si el demonio de la cartera se queja de una transacción con parámetros inválidos que deben revertirse, puede revertir la transacción mediante la siguiente mutación:

GraphQL
mutation CancelTransaction($id: Int) {
 transaction: UpdateEnjinRequest(id: $id state: CANCELED_USER) {
   id
   title
   state
 }
}
Anterior
siguiente
En esta página