Token (Activo)#

El token es un activo digital en la cadena de bloques. Se puede usar un token:

  • Como criptomoneda para pagar bienes y servicios dentro de un proyecto, así como para crowdfunding;

  • Como objeto o recurso en juegos, etc.

Un token puede representar un objeto físico o intangible. Las palabras «token» y «activo» se usan indistintamente en el ecosistema DecentralChain. DecentralCoin es el token nativo en la cadena de bloques DecentralChain. Más sobre DecentralCoin.

Todos los demás tokens son tokens personalizados emitidos en nombre de alguna cuenta. Cualquier cuenta que tenga suficientes DecentralCoins para pagar la tarifa puede emitir su propio token. El nuevo token está disponible de inmediato:

Emisión de Tokens#

Puedes usar Decentral.Exchange en línea para crear un activo.

  • En la pantalla principal, asegúrese de haber iniciado sesión en su cuenta, luego haga clic en Crear Token.

  • En la siguiente pantalla, especifique los parámetros del token:

    • Nombre: el nombre del activo creado no puede tener menos de \(4\) caracteres.

    • Descripción: Una breve descripción donde se pueden incluir enlaces a sitios web que pueden ser de especial utilidad.

    • Cantidad: Defina el suministro total de su activo. La oferta total puede fijarse en el momento de la emisión o aumentarse más adelante haciendo que el activo sea reemisible.

    • Reemisible: Define si la oferta total del activo puede incrementarse posteriormente. Si se establece en reemisible, el emisor puede aumentar el suministro en cualquier momento (si se selecciona reemisible cuando se crea el activo, se puede cambiar a no reemisible en una etapa posterior).

    • Decimales: Especifique cuántos decimales tendrá su activo. Por ejemplo, si especifica \(8\) decimales, como en Bitcoin, su activo se puede dividir en \(0.00000001\).

    • Activo inteligente: Un activo inteligente es un activo con un script adjunto que establece condiciones en cada transacción realizada para el activo en cuestión.

    • Script (para emitir un activo inteligente).

  • Antes de crear un nuevo activo, lea atentamente las condiciones de creación. Si es necesario, cambie el nombre del activo de acuerdo con las condiciones, luego seleccione la casilla de verificación Entiendo… y haga clic en Generar.

  • En la siguiente pantalla, vuelva a verificar los datos ingresados y, si todo es correcto, haga clic en Enviar para finalizar la creación o haga clic en Volver para hacer las correcciones.

The transaction fee is \(1\) DecentralCoin for a regular token or \(0.001\) DecentralCoins for a non-fungible token (NFT). Moreover, the token can be issued by the dApp script as a result of the invoke script transaction when the callable function result contains the Issue action. The minimum fee for invoke script transaction is increased by \(1\) DecentralCoin for each non-NFT token issued.

Identificador del token#

El identificador del token es una matriz de bytes calculada de la siguiente manera:

  • Si el token lo emite una transacción para emisión, el ID del token es el mismo que el ID de la transacción.

  • If the token is issued by invoke script transaction when the callable function of dApp script performed the Issue action, the token ID is calculated as the BLAKE2b-256 hash of the byte array containing transaction ID and the fields of the Issue structure.

En Node REST API, el identificador del token está codificado en base58. Por ejemplo:

"assetId": "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"

El token DecentralCoin no tiene identificador. La API REST de Node usa nulo para DecentralCoin.

Operaciones con Tokens#

  • Transferir a otra cuenta

Can be done via a transfer transaction or a mass transfer transaction. A dApp script can transfer the token via a ScriptTransfer script action as a result of an invoke script transaction.

  • Intercambio (acuerdo comercial)

Tres cuentas pueden participar en el intercambio: un usuario crea una orden para comprar un token, el otro crea una orden para vender un token. El emparejador combina órdenes de compra y venta con parámetros adecuados y crea una transacción para intercambio.

  • Quemado

Decreases the amount of token on the account and thereby the total amount of the token on the blockchain. Any token owner can burn it, not only the issuer. It is impossible to burn DecentralCoin. Can be done via a burn transaction. A dApp script can burn the token via a Burn script action as a result of the Invoke script transaction.

Una transacción para invocar scripts puede contener hasta dos pagos a la dApp. El monto del pago y el token están disponibles para la función invocable.

Operaciones Disponibles Solo para Emisor#

Las siguientes operaciones de token solo pueden ser realizadas por la cuenta que emitió el token:

  • Configuración de patrocinio

El emisor del token puede habilitar el patrocinio que permite a todos los usuarios pagar tarifas en este token (en lugar de DecentralCoins) en transacciones para invocar scripts y transacciones para transferencia. Más sobre el patrocinio. La activación o desactivación del patrocinio se puede realizar mediante una transacción para patrocinar tarifas. Un script de dApp puede configurar el patrocinio mediante SponsorFee como resultado de la transacción para invocar scripts.

  • Reemisión

Increases the amount of token on the blockchain. The reissuable field of token determines whether the token can be reissued. Can be done via a reissue transaction. A dApp script can reissue the token via a Reissue script action as a result of the invoke script transaction.

  • Sustitución del script del activo

Se puede hacer a través de una transacción para asignar scripts de activos. Si el activo no es un activo inteligente, es decir, el script no se adjuntó cuando se emitió el activo, entonces es imposible adjuntar el script más adelante.

  • Modificación del nombre del token y/o descripción

Se puede hacer a través de una transacción para actualizar información de activos.

Tipos de Tokens#

Token No-Fungible#

El token no fungible o NFT es un tipo especial de token que se emite con los siguientes parámetros:

  • «quantity»: \(1\)

  • «decimals»: \(0\)

  • «reissuable»: false

NFT es una entidad singular que tiene una identificación única. Esto contrasta con un token regular, dos monedas de las cuales (por ejemplo, dos WBTC) no se pueden distinguir entre sí. Los NFT se pueden usar como elementos del juego, coleccionables, certificados o cupones únicos.

Emisión de NFT#

Un NFT se puede emitir de la misma manera que un token normal, consulte token issue. La tarifa mínima para una emisión de NFT es \(0.001\) DecentralCoins, \(1000\) veces menos que para un token normal.

Activo Inteligente#

El activo inteligente es un token que tiene un script de activo asignado. De forma predeterminada, los tokens en la cadena de bloques DecentralChain no son contratos inteligentes y se permite cualquier transacción con ellos. El script dota a un token de una funcionalidad que establece las reglas para su circulación. Cada transacción que involucra un activo inteligente se verifica automáticamente con las condiciones especificadas en el script. Si el script de activo permite la transacción, se ejecutará; si el script niega la transacción, no se coloca en la cadena de bloques o se guarda como fallida (para obtener más detalles, consulte el artículo sobre validación de transacción).

Usando activos inteligentes, puede implementar varios instrumentos financieros en la cadena de bloques (opciones, intercambio de intervalos, impuestos), mecánicas de juego (permitiendo transacciones solo entre personajes con ciertas propiedades). Tenga en cuenta:

  • Si se emite un token sin una secuencia de comandos, entonces la secuencia de comandos no se puede agregar más tarde.

  • El script no se puede eliminar, por lo que es imposible convertir un activo inteligente en uno normal.

  • El script de activos se puede cambiar usando la transacción para asignar scripts de activos, a menos que lo prohíba el propio script de activos (así como dApp o script de cuenta asignado a la cuenta del emisor).

  • La tarifa mínima por transacción se incrementa en \(0.004\) DecentralCoins por cada activo inteligente involucrado, excepto por:

Tokens de Otras Blockchain#

Un token emitido en otra cadena de bloques no se puede usar directamente en la cadena de bloques DecentralChain. Se puede emitir un nuevo token que represente al original en la cadena de bloques DecentralChain, y se puede implementar una puerta de enlace que vincula los dos tokens \(1:1\).

DecentralCoin#

DecentralCoin es el token nativo de la cadena de bloques DecentralChain. Los generadores de bloques reciben tarifas de transacción y recompensas por bloque en DecentralCoins, que alienta a los generadores a mantener y desarrollar la infraestructura de la red blockchain. Cuantas más DecentralCoins tenga el generador (por propiedad o arrendamiento), mayores serán sus posibilidades de agregar el siguiente bloque.

Parámetros de DecentralCoin#

Los DecentralCoins están presentes en la cadena de bloques desde su inicio, no existe una transacción de emisión para ellas, por lo tanto, el token de DecentralCoin no tiene una identificación. La API REST usa nulo para DecentralCoins. El número de lugares decimales (decimales) para DecentralCoins es \(8\). La unidad atómica llamada Decentralite es \(\frac{1}{100,000,000}\) DecentralCoins.

Arrendamiento#

El propietario de DecentralCoins puede arrendarlas a través de una transacción para arrendamiento. Las DecentralCoins recibidas en arrendamiento se incluyen en el saldo generador. Los generadores de bloques devuelven diferentes porcentajes como recompensa a los arrendadores. Un arrendador puede cancelar el arrendamiento en cualquier momento a través de una transacción para cancelar arrendamiento. Más información sobre el arrendamiento.

Cómo Obtener DecentralCoin#

Puede comprar tokens DecentralCoins en Decentral.Exchange, o en uno de los intercambios centralizados. Además, las puertas de enlace de criptomonedas se pueden usar para transferir criptomonedas externas como Bitcoin, Ethereum, etc. desde la cadena de bloques externa a la cadena de bloques DecentralChain y viceversa. La puerta de enlace proporciona al usuario la dirección en la cadena de bloques externa. Después de recibir una confirmación de transferencia a esta dirección externa, la puerta de enlace transfiere el activo correspondiente (menos la tarifa) a la dirección DecentralChain del usuario.

Parámetros Personalizados de Token#

A continuación se muestra un ejemplo de representación JSON devuelta por el método GET /assets/details/{assetId} de Node REST API:

{
  "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p",
  "issueHeight": 1806810,
  "issueTimestamp": 1574429393962,
  "issuer": "3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo",
  "issuerPublicKey": "BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht",
  "name": "USD-N",
  "description": "Neutrino USD",
  "decimals": 6,
  "reissuable": false,
  "quantity": 999999999471258900,
  "scripted": false,
  "minSponsoredAssetFee": 7420,
  "originTransactionId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
}
Parámetros Personalizados de Token#

Campo

Descripción

assetId

ID de token: matriz de bytes codificados en base58. El identificador del token se calcula como un hash de los parámetros del token en el momento de la emisión. Consulte también el artículo sobre el ID del token.

issueHeight

Altura de la cadena de bloques (el número de secuencia del bloque) en la que se emite el token.

issueTimestamp

Marca de tiempo de emisión del token: tiempo Unix en milisegundos.

issuer

dirección de la cuenta del emisor: matriz de bytes codificados en base58.

issuerPublicKey

Llave pública de la cuenta del emisor: matriz de bytes codificada en base58.

name

Nombre del token. Desde \(4\) hasta \(16\) bytes (el carácter \(1\) puede ocupar hasta \(4\) bytes).

description

Descripción del token. Desde \(0\) hasta \(1000\) bytes.

decimals

Número de decimales, desde \(0\) hasta \(8\).

reissuable

Vuelva a emitir el indicador de disponibilidad.

quantity

Suministro total de token en la cadena de bloques especificada en unidades atómicas. De \(1\) a \(9,223,372,036,854,775,807\). El suministro total puede cambiar como resultado de la reemisión o la quema, consulte operaciones de tokens a continuación.

scripted

Al haber un script: verdadero para activo inteligente, falso para token normal. Más sobre activos inteligentes.

minSponsoredAssetFee

Solo para activos patrocinados: una cantidad de activos equivalente a \(0.001\) DecentralCoins. Más sobre el patrocinio.

originTransactionId

ID de la transacción que emitió el token: matriz de bytes codificados en base58.

scriptDetails

Solo para activos inteligentes: scripts de activos y sus atributos.

Unidad Atómica#

La cantidad de token se muestra de manera diferente en las interfaces de usuario y en la Representación JSON utilizada por Node REST API. En las solicitudes y respuestas de la API, los valores de cantidad son números enteros indicados en unidades atómicas para evitar problemas de precisión en los cálculos de punto flotante. Una unidad atómica es la fracción mínima («centavo») de una ficha, es igual a \(10^{-decimals}\). La cantidad de token en JSON es la cantidad real multiplicada por \(10^{decimals}\).

Para USD-N en el ejemplo anterior:

  • decimals = \(6\),

  • la unidad atómica es \(\frac{1}{1,000,000}\) USD-N.

  • quantity: \(999999999471258900\) corresponde a \(999,999,999,471.258900\) USD-N en IU, minSponsoredAssetFee: \(7420\) corresponde a \(0.007420\) USD-N.