Inicio » Blockchain » Leotec Jasper y cardano-node. Creación automatizada de NFT

Leotec Jasper y cardano-node. Creación automatizada de NFT

En este artículo vamos a detallar la configuración de un nodo Cardano con el sistema operativo Debian 11 y el miniPC Leotec Jasper para implementar la aplicación NFTGifts de NFTizate.

Nuestro principal objetivo era realizar una prueba de concepto y lograr configurar nodos con el menor costo, consumo energético y ruido; Tratando así de alejarnos de la mala prensa que están adquiriendo algunas blockchains por el elevado consumo y requerimientos hardware de sus nodos.

El objetivo se ha logrado parcialmente como veremos más adelante.

Nodo Cardano con mimiPC Leotec Jasper Prueba de concepto para generar NFTs de manera automatizada con cardano-node.

¿Qué es Cardano?

Cardano es una plataforma blockchain descentralizada que se ha desarrollado para ejecutar aplicaciones financieras y contratos inteligentes. Fue creada por un equipo de expertos en criptografía, liderado por el fundador de Ethereum, Charles Hoskinson. Cardano se enfoca en ofrecer un enfoque más seguro, escalable y sostenible para las transacciones y contratos inteligentes en comparación con otras plataformas blockchain existentes.

Una de las principales características de Cardano es su enfoque en la investigación científica y la revisión formal. Utiliza un enfoque basado en pruebas matemáticas para garantizar la seguridad y confiabilidad de su protocolo. Esto implica que los desarrollos y las mejoras en la plataforma están respaldados por rigurosas investigaciones y fundamentos científicos.

Cardano utiliza su propio lenguaje de programación llamado Plutus, que permite a los desarrolladores crear contratos inteligentes de forma segura y confiable. Además, su diseño modular permite actualizaciones y mejoras sin interrupciones en el funcionamiento de la cadena de bloques.

Otra característica destacada de Cardano es su enfoque en la gobernanza descentralizada y la participación de la comunidad. A través de un mecanismo de votación, los titulares de tokens ADA (la criptomoneda nativa de Cardano) pueden participar en la toma de decisiones y proponer mejoras en la plataforma.

Cardano se ha propuesto ser una plataforma inclusiva, especialmente enfocada en brindar servicios financieros a regiones desatendidas y no bancarizadas. Busca establecer colaboraciones con gobiernos y organizaciones para proporcionar soluciones financieras seguras y accesibles.

¿Qué es un nodo Cardano?

Un nodo es una computadora que forma parte de la red descentralizada de Cardano y participa en la validación y propagación de transacciones y bloques en la cadena de bloques de Cardano. Cada nodo tiene una copia completa del libro mayor de Cardano, que es la cadena de bloques, y mantiene la integridad de la red al verificar las transacciones y asegurarse de que cumplan con las reglas del protocolo.

Tipos de nodos en la red de Cardano

  • Nodos completos: Estos nodos almacenan una copia completa de la cadena de bloques de Cardano y participan en la validación de transacciones y la creación de nuevos bloques. Los nodos completos también pueden interactuar con las APIs de Cardano para acceder a información de la cadena de bloques y realizar transacciones.
  • Nodos ligeros: Estos nodos no almacenan la cadena de bloques completa, sino que confían en los nodos completos para obtener la información necesaria. Los nodos ligeros son útiles para aquellos que desean interactuar con la red de Cardano sin la necesidad de descargar y almacenar toda la cadena de bloques.
  • Nodos relays: Estos nodos son responsables de propagar la información de transacciones y bloques a través de la red. Ayudan a mantener la conectividad y aseguran que la información se distribuya de manera eficiente entre los nodos.

Los nodos de Cardano trabajan juntos para mantener la integridad de la red y asegurar que las transacciones sean válidas y confiables. A través de la participación de los nodos, Cardano logra su objetivo de ser una plataforma blockchain descentralizada y segura.

Requerimientos de un nodo Cardano

Los requerimientos de un nodo Cardano pueden variar dependiendo del tipo de nodo y el nivel de participación deseado en la red. Aquí están los requisitos generales para ejecutar un nodo Cardano.

Hardware

  • Procesador: Se recomienda un procesador moderno con múltiples núcleos y suficiente capacidad de procesamiento.
  • Memoria RAM: Se recomienda al menos 16 GB de RAM, aunque más memoria puede mejorar el rendimiento.
  • Almacenamiento: Se necesita suficiente espacio en disco para almacenar la cadena de bloques de Cardano. En junio de 2023, el tamaño de la cadena de bloques de Cardano ronda los de 100 GB, pero se espera que crezca con el tiempo. Se recomienda disponer de al menos 120 GB de espacio en disco.
  • Conexión a Internet: Se requiere una conexión a Internet estable y de alta velocidad para mantenerse sincronizado con la red de Cardano.

Sistema operativo

Cardano se puede ejecutar en sistemas operativos como Windows, macOS y varias distribuciones de Linux.

Software

  • Dependiendo del tipo de nodo, puede requerirse software específico. Por ejemplo, para ejecutar un nodo completo, se puede utilizar el cliente oficial de Cardano llamado cardano-node. También hay otras implementaciones de nodos disponibles desarrolladas por la comunidad.
  • Es importante mantener el software actualizado para beneficiarse de las últimas mejoras y parches de seguridad.

Configuración del full-node Cardano para generación automatizada de NFT

Leotec Jasper

Para la implementación de la aplicación, hemos decidido desarrollar una configuración minimalista como prueba de concepto, además de disponer de equipos de muchas mayores prestaciones.

Para la prueba hemos recurrido a Leotec Jasper con una configuración de serie de 4GB de RAM y 128GB SSD. El equipo en fanless y con un factor de forma muy compacto.

Características destacadas del Leotec Jasper
  • Procesador de 4 núcleos: Intel® Core™ Jasper Lake Celeron N5105 Quadcore 2.0Ghz-2.9Ghz.
  • LAN Gigabyte 10/100/10000.
  • Dimensiones: 123 x 123 x 45 mm.
  • Peso: 1.1Kg.
leotec jasper implementacion nodo cardano creacion automatizada de NFT. NFTGifts by NFTizate

Dado que la capacidad de disco y memoria era claramente insuficiente, se mejoró el equipo con:

  • 32GB de RAM SO-DIMM DDR4-2400/2660, agotando la capacidad de alojar memoria del equipo.
  • Un disco duro externo de 500GB conectado al puerto USB 3.0.
  • Ventilación forzada.
Problemas graves de temperatura

El equipo es fanless pues buscábamos una operativa de bajo consumo y ruido, pero la tarea a realizar excedía los requerimientos típicos de estos modelos. Al sincronizar con la blockchain, el mimiPC bajaba sus prestaciones e incluso se protegía apagándose debido al exceso de temperatura. Por ello se optó por añadirle ventilación forzada. La temperatura de trabajo del mismo se redujo en unos 40ºC y su rendimiento aumentó considerablemente.

Una vez implementada esta modificación, el equipo está respondiendo perfectamente.

Sistema operativo Debian 11

Hemos optado por la estabilidad de Debian 11 sin entorno de escritorio. Esto dio ciertos problemas de firmware con el controlador WIFI RTL8821CE pero que no ocupan al caso por que no se ha optado por este tipo de conectividad. Hemos optado por la conexión LAN Ethernet.

No vamos entrar en la instalación de Debian 11 ni de todas las aplicaciones necesarias. Tan solo destacaremos:

  • Durante la creación de las particiones se crearon 4GB de swap pese a estar desaconsejado para discos SSD, pues se prima el rendimiento en esta prueba de concepto.
  • Se añadieron las opciones contrib non-free en /etc/apt/sources.list. sudo apt-get update & sudo apt-get upgrade -y.
  • Se instalaron algunas utilidades: apt-get install htop nmap ufw zip unzip wget curl vim nano git openssh-server openssh-client net-tools sudo.
  • Configurar tu usuario para trabajar con sudo.
  • Se configuró un IP fija en /etc/network/interfaces. iface enp2s0 inet static.
  • Se configuró el acceso por terminar al Leotec Jasper mediante SSH sin contraseña. Para ello se instalaron las claves públicas y privadas en el equipo desde el que se configura mediante ssh-keygen -t rsa -b 4096. Las claves se instalaron en ~/.ssh/c-node/id_rsa_c-node.pub. Posteriormente las copiamos al nodo: ssh-copy-id -i ~/.ssh/c-node/id_rsa_c-node.pub tu_usuario@tu_IP. Es interesante la creación de ~/.ssh/config para indicarle a ssh qué fichero de claves debe coger para cada conexión ssh.
Host IP_CARDANO_NODE
  IdentityFile /home/tu_usuario/.ssh/c-node/id_rsa_cnode
  IdentitiesOnly=ye
  • En el nodo cardano se debe modificar /etc/ssh/sshd_config. Reniciar con sudo systemctl restart sshd, tras acabar la edición.
AllowUsers tu_usuario
PermitOpen any
PasswordAuthentication no
PermitRootLogin no
  • Se puede instalar carda-node como un servicio systemd.
  • Se pueden configurar herramientas como monit para recibir incidencias del equipo por email.

Software

Para la creación automatizada de NFT se requieren dos aplicaciones desarrolladas por IOHK:

¿Por qué no se empleó la versión 8.0.0 de cardano-node que estaba disponible en junio 2023?

Debido a un problema de compatibilidad con cardano-wallet. El release v2023-04-14 solo es compatible con cardano-node v.1.35.4.


¿Qué es IOHK?

IOHK, siglas de Input Output Hong Kong, es una empresa de investigación y desarrollo de tecnología blockchain. Fue fundada en 2015 por Charles Hoskinson, uno de los cofundadores de Ethereum, y Jeremy Wood. IOHK se dedica principalmente a la creación de soluciones de blockchain y criptomonedas de alto rendimiento, y es conocida por su participación en el desarrollo de la plataforma blockchain Cardano.

IOHK trabaja en colaboración con académicos y científicos en la investigación y el desarrollo de tecnologías blockchain. La empresa se enfoca en aplicar rigurosos métodos de ingeniería y revisión formal en sus proyectos, lo que implica un enfoque científico para garantizar la seguridad, escalabilidad y sostenibilidad de sus soluciones.

IOHK fue seleccionada por la Fundación Cardano para liderar el desarrollo de la plataforma blockchain Cardano y ha estado involucrada en su diseño, implementación y evolución desde sus inicios. IOHK trabaja en estrecha colaboración con otras entidades, incluidas universidades y organizaciones académicas, para garantizar una base sólida de investigación y desarrollo en el ecosistema de Cardano.


Nodo Cardano con cardano-node

Para la configuración del nodo emplearemos cardano-node y cardano-cli. Existen diversas formas de instalar el Nodo. Nosotros optamos por realizar una instalación Debian 11 y trabajar con los binarios compilados (versión 1.35.4) que IOHK provee en Github para Linux.

Además de los binarios Linux cardano-node 1.35.4, IOHK provee las versiones para Windows y Mac..

Dependiendo del entorno en el que cardano-node vaya a funcionar, se deberá optar por unos ficheros de configuración u otros.

Entornos de ejecución de un nodo Cardano

A fecha de junio 2023, Cardano dispone de varios entornos de ejecución de cardano-node. Entre ellos destacaremos:

  • Preview testnet: Recomendada para etapas de desarrollo de un proyecto iniciales en las que la tasa de fallos son elevadas y recurrentes.
  • Pre-production testnet: Fase previa a la puesta en producción.
  • Mainnet: Este es el entorno de producción, en el que interactuamos con la blockchain de Cardano. Nuestro proyecto se encuentra en esta fase.

Instalación del disco externo SSD 500GB USB

Conectamos el disco USB al equipo Leotec Jasper. Mediante lsblk, obtenemos información del disco insertado. Procederemos también a la creación de una partición con fdisk y al formateado ext4 del mismo con mkfs.

sudo lsblk
sudo fdisk -l #Listamos los discos conectados al equipo.
sudo fdisk    #Se nos abre un menú interactivo con el comando m para ayuda.
  1. Mediante la opción p, obtenemos la tablar de particiones.
  2. Mediante la opción n, añadimos una partición nueva.
  3. Una vez tomada la opción n, seleccionaremos la creación de una partición primaria (opción p) .
  4. Por último, guardaremos mediante la opción w.

Para realizar el formateo usamos mkfs, teniendo en cuenta cambiar sdbX por el valor adecuado en vuestra instalación.

sudo mkfs.ext4 /dev/sdbX

Procedemos al montaje de la misma, para ello editamos /etc/fstab.

UUID=xxxUID_del_disco_xxx  /cardano-node ext4  defaults 0 2

Para obtener el UUID del disco empleamos blkid, teniendo en cuenta cambiar sdbX por el valor adecuado en vuestra instalación.

sudo blkid /dev/sdbX

Para acabar montamos la partición.

sudo mount -a

Instalación de cardano-node por medio de binarios Linux

Al descargar los binarios estáticos desde el Gighub de IOHK – Cardano-node, obtenemos un fichero tar.gz: cardano-node-1.35.7-linux.tar.gz que procedemos a descomprimir.

 tar -xf filename.tar.gz

Vamos a mover todos los ficheros extraídos a una carpeta /opt/cardano. Debemos asegurarnos de que los binarios tienen todos permisos de ejecución +x. A continuación, editamos ~/.bashrc y añadimos la carpeta de binarios al PATH. Además definimos la variable de sistema CARDANO_NODE_SOCKET_PATH, que las aplicaciones cardano-cli y cardano-wallet requieren para interactuar con el nodo a través del socket.


# El socket no debe instalarse en el disco USB, nosotros lo dejamos en el home del usuario
CARDANO_NODE_SOCKET_PATH="~/cardano-node.socket"

#A fin de ejecutar los binarios directamente
PATH="/opt/cardano:$PATH

Entre los ficheros descargados encontraremos las carpeta configuration/cardadano. Aquí encontraremos dos ficheros muy importantes para la ejecución del nodo:

mainnet-topology.json

Nos informa los equipos de la red Cardano con los que el nodo se va a conectar.

{
  "Producers": [
    {
      "addr": "relays-new.cardano-mainnet.iohk.io",
      "port": 3001,
      "valency": 2
    }
  ]
}

mainnet-config.json

Fichero de configuración del nodo. Aquí se informa al nodo de los archivos de genesis que tenemos en la carpeta de configuracion y se le configura con las distintas variables de red.

{
  "AlonzoGenesisFile": "mainnet-alonzo-genesis.json",
  "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874",
  "ApplicationName": "cardano-sl",
  "ApplicationVersion": 1,
  "ByronGenesisFile": "mainnet-byron-genesis.json",
  "ByronGenesisHash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
  "ConwayGenesisFile": "mainnet-conway-genesis.json",
  "ConwayGenesisHash": "f28f1c1280ea0d32f8cd3143e268650d6c1a8e221522ce4a7d20d62fc09783e1",
  "LastKnownBlockVersion-Alt": 0,
  "LastKnownBlockVersion-Major": 3,
  "LastKnownBlockVersion-Minor": 0,
  "MaxKnownMajorProtocolVersion": 2,
  "Protocol": "Cardano",
  "RequiresNetworkMagic": "RequiresNoMagic",
  "ShelleyGenesisFile": "mainnet-shelley-genesis.json",
  "ShelleyGenesisHash": "1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81",
  "TraceAcceptPolicy": true,
  "TraceBlockFetchClient": false,
  "TraceBlockFetchDecisions": false,
  "TraceBlockFetchProtocol": false,
  "TraceBlockFetchProtocolSerialised": false,
  "TraceBlockFetchServer": false,
  "TraceChainDb": true,
  "TraceChainSyncBlockServer": false,
  "TraceChainSyncClient": false,
  "TraceChainSyncHeaderServer": false,
  "TraceChainSyncProtocol": false,
  "TraceConnectionManager": true,
  "TraceDNSResolver": true,
  "TraceDNSSubscription": true,
  "TraceDiffusionInitialization": true,
  "TraceErrorPolicy": true,
  "TraceForge": true,
  "TraceHandshake": false,
  "TraceInboundGovernor": true,
  "TraceIpSubscription": true,
  "TraceLedgerPeers": true,
  "TraceLocalChainSyncProtocol": false,
  "TraceLocalErrorPolicy": true,
  "TraceLocalHandshake": false,
  "TraceLocalRootPeers": true,
  "TraceLocalTxSubmissionProtocol": false,
  "TraceLocalTxSubmissionServer": false,
  "TraceMempool": true,
  "TraceMux": false,
  "TracePeerSelection": true,
  "TracePeerSelectionActions": true,
  "TracePublicRootPeers": true,
  "TraceServer": true,
  "TraceTxInbound": false,
  "TraceTxOutbound": false,
  "TraceTxSubmissionProtocol": false,
  "TracingVerbosity": "NormalVerbosity",
  "TurnOnLogMetrics": true,
  "TurnOnLogging": true,
  "defaultBackends": [
    "KatipBK"
  ],
  "defaultScribes": [
    [
      "StdoutSK",
      "stdout"
    ]
  ],
  "hasEKG": 12788,
  "hasPrometheus": [
    "127.0.0.1",
    12798
  ],
  "minSeverity": "Info",
  "options": {
    "mapBackends": {
      "cardano.node.metrics": [
        "EKGViewBK"
      ],
      "cardano.node.resources": [
        "EKGViewBK"
      ]
    },
    "mapSubtrace": {
      "cardano.node.metrics": {
        "subtrace": "Neutral"
      }
    }
  },
  "rotation": {
    "rpKeepFilesNum": 10,
    "rpLogLimitBytes": 5000000,
    "rpMaxAgeHours": 24
  },
  "setupBackends": [
    "KatipBK"
  ],
  "setupScribes": [
    {
      "scFormat": "ScText",
      "scKind": "StdoutSK",
      "scName": "stdout",
      "scRotation": null
    }
  ]
}

Cabe destactar que esta versión no tiene habilitado P2P, por lo que la topología de red es estática y dispone de un solo relay con el que conectar: relays-new.cardano-mainnet.iohk.io. Si ejecutamos nslookup podemos ver las de los relays disponibles.

nslookup relays-new.cardano-mainnet.iohk.io
Server:		80.58.61.254
Address:	80.58.61.254#53

Non-authoritative answer:
Name:	relays-new.cardano-mainnet.iohk.io
Address: 3.112.168.85
Name:	relays-new.cardano-mainnet.iohk.io
Address: 18.157.126.47
Name:	relays-new.cardano-mainnet.iohk.io
Address: 35.177.89.129
Name:	relays-new.cardano-mainnet.iohk.io
Address: 18.178.130.180
Name:	relays-new.cardano-mainnet.iohk.io
Address: 13.57.118.58
Name:	relays-new.cardano-mainnet.iohk.io
Address: 3.16.84.177
Name:	relays-new.cardano-mainnet.iohk.io
Address: 18.159.63.239
Name:	relays-new.cardano-mainnet.iohk.io
Address: 18.159.88.186

Creamos la carpeta /cardano-node/mainnet y el script de arranque del nodo dentro de ella: nano start_cardano_node_mainnet.sh. Es importante darle permisos de ejecucuón con chmod +x start_cardano_node_mainnet.sh.

#!/bin/bash
# Comando para iniciar el nodo Cardano en Mainnet
cardano-node run --topology /cardano-node/mainnet/configuration/cardano/mainnet-topology.json \
                 --database-path /cardano-node/mainnet/db-cardano \
                 --socket-path ${CARDANO_NODE_SOCKET_PATH} \
                 --config /cardano-node/mainnet/configuration/cardano/mainnet-config.json

Ejecutamos cardano-node

Es el momento de ejecutar el script ./start_cardano_node_mainnet.sh. Si todo está bien configurado, el nodo arrancará y empezará a crear una copia de la blockchain de Cardano en /cardano-node/mainnet/db-cardano. Debido a que el nodo, para su funcionamiento, requiere estar totalmente sincronizado, recibe el nombre de full-node. El proceso es lento y bien puede superar las 24 horas incluso con equipos de mucho mejor rendimiento.

¿Cómo podemos saber en qué punto se encuentra la sincronzación?

Para ello disponemos de la herramienta cardano-cli.

cardano-cli es una interfaz de línea de comandos que permite a los usuarios interactuar con la blockchain de Cardano. Permite realizar diversas operaciones, como crear y administrar carteras, enviar y recibir ADA, firmar transacciones, consultar el estado de la red y realizar otras funciones relacionadas con la gestión de la cadena de bloques. Con cardano-cli podemos interactuar directamente con la blockchain de Cardano sin necesidad de utilizar una interfaz gráfica de usuario. Esta herramienta es especialmente útil para aquellos que desean automatizar tareas, integrar Cardano en sus propias aplicaciones o realizar operaciones más avanzadas en la red. Simplemente ejcutando cardano-cli nos sugiere la lista de acciones.

cardano-cli
cardano-cli - General purpose command-line utility to interact with
cardano-node. Provides specific commands to manage keys, addresses, build &
submit transactions, certificates, etc.

Usage: cardano-cli 
            ( Era based commands
            | Byron specific commands
            | ping
            | Miscellaneous commands
            )

Available options:
  --version                Show the cardano-cli version
  -h,--help                Show this help text

Era based commands
  address                  Payment address commands
  stake-address            Stake address commands
  key                      Key utility commands
  transaction              Transaction commands
  node                     Node operation commands
  stake-pool               Stake pool commands
  query                    Node query commands. Will query the local node whose
                           Unix domain socket is obtained from the
                           CARDANO_NODE_SOCKET_PATH environment variable.
  genesis                  Genesis block commands
  governance               Governance commands
  text-view                Commands for dealing with Shelley TextView files.
                           Transactions, addresses etc are stored on disk as
                           TextView files.

Byron specific commands
  byron                    Byron specific commands

Available commands:
  ping                     Ping a cardano node either using node-to-node or node-to-client protocol. It negotiates a handshake and keeps sending keep alive messages.

Miscellaneous commands
  help                     Show all help
  version                  Show the cardano-cli version

Entre las opciones, destacaremos dos para comenzar:

  • cardano-cli version: cardano-cli 1.35.4 – linux-x86_64 – ghc-8.10 git rev ebc7be471b30e5931b35f9bbc236d21c375b91bb.
  • cardano-cli query tip –mainnet: Le preguntamos por el punto máximo de actualización de la blockchain. Devuelve un salida del estilo:
{
    "block": 7862657,
    "epoch": 368,
    "era": "Babbage",
    "hash": "601e0a4e50760b255f3546e1cf8f778b335ea534f41f4e12b2b164e629ab5fd0",
    "slot": 73775903,
    "slotInEpoch": 163103,
    "slotsToEpochEnd": 268897,
    "syncProgress": "88.66"
}

Es importante configurar la variable CARDANO_NODE_SOCKET_PATH=»~/cardano-node.socket». Esto ya lo hicimos en editar ~/.bashrc.

Instalando cardano-wallet

Del Github de IOHK – Cardano-wallet podemos descargar los binarios de la versión v2023-04-14 compatible con cardano-node 1.35.4. Dispone de compilaciones para Linux, Mac y Windows. Nosotros descargamos cardano-wallet-v2023-04-14-linux64.tar.gz. A continuación extraemos cardano-wallet en /opt/cardano y no aseguramos que tiene permiso +x.

Cardano-wallet es una aplicación de línea de comandos desarrollada por el equipo de Cardano para interactuar con las carteras de la blockchain de Cardano. Permite a los usuarios crear, importar y administrar carteras de ADA (la criptomoneda nativa de Cardano) de manera segura.

Esta herramienta facilita la gestión de las carteras y las transacciones relacionadas con ADA. Algunas de las funcionalidades que ofrece cardano-wallet incluyen la creación de carteras nuevas, la recuperación de carteras existentes a partir de frases mnemotécnicas (frases de recuperación), la consulta de saldos y transacciones, así como la realización de transferencias de ADA entre carteras.

Cardano-wallet también brinda soporte para la creación y administración de cuentas dentro de una cartera. Las cuentas permiten organizar y separar los fondos dentro de una cartera en diferentes segmentos.

Script de arranque de wallet server

Creamos el fichero /cardano-node/mainnet/start_cardano_wallet_server.sh y le damos permisos +x.

cardano-wallet serve \
--port 1337 \
--mainnet \
--database /cardano-node/mainnet/db-cardano \
--node-socket ${CARDANO_NODE_SOCKET_PATH}

¿Cuando arrancamos cardano-wallet?

Conviene esperar hasta que el nodo esté completamente sincronizado con la blockchain Cardano.


Regalos corporativos personalizados con NFT: la solución innovadora de NFTGifts

Los regalos publicitarios para empresas pueden elevarse a otro nivel con los NFT, como lo demuestra la solución innovadora de NFTGifts. Al personalizar regalos corporativos con NFT, les brindas exclusividad y autenticidad garantizadas por la tecnología blockchain. En Nftizate.es, ofrecemos una gran variedad de soportes, desde tarjetas de cartón y PVC hasta pendrives y origamis.

Regalos publicitarios para empresas: Descubre el poder de los NFT en el mundo corporativo

Imagina una empresa de mobiliario que desea impresionar a sus clientes en una feria. NFTGifts crea tarjetas PVC metalizadas con el logo troquelado y un diseño acorde a la marca, además de incluir imágenes de la nueva colección de mobiliario en forma de NFTs personalizados. Los destinatarios pueden tomar posesión del NFT escaneando el código QR en la tarjeta, asegurando su autenticidad y exclusividad.

Apuesta por Nftizate.es para transformar tu estrategia de promoción comercial con regalos promocionales únicos y modernos. Deja que tu merchandising hable de tu marca de manera actual y relevante, ofreciendo infinitas posibilidades con la tecnología NFT.

Si tienes una idea, no dudes en contactarnos y te ayudaremos a hacerla realidad.

logotipo NFTIzate alargado transparente
Scroll al inicio