Os NFTs têm sido o centro das atenções nos últimos anos, mas os NFTs dinâmicos são os holofotes hoje em dia. Este é um guia rápido para criar seu próprio ingresso NFT, onde seu ingresso será alterado assim que for usado e os pontos serão adicionados ao seu ingresso. Esses pontos podem ser usados para compras de mercadorias e alimentos, bem como para obter acesso antecipado a novos álbuns deste artista.
Sumário
5 . Adicionar um NFT
6 . Executar
7 . Atualizando seu ingresso usando pontos
8 . Adicionando pontos extras por assistir ao concerto
9 . Utilizando seus novos pontos
Introdução ao Revise
Revise é uma plataforma que permite criar NFTs dinâmicos. Os NFTs hoje são bastante estáticos. Uma vez que você compra, eles não mudam. O que você vê é o que você obtém. NFTs dinâmicos são capazes de reagir ao mundo exterior, aos dados, às interações do usuário, etc. Eles são capazes de mudar e evoluir ao longo do tempo.
Abordaremos como adicionar NFTs usando a Revise e como atualizar os NFTs para torná-los dinâmicos neste guia. Não abordaremos como implantar esses NFTs na Ethereum/Opensea (clique aqui para aprender mais).
Clonar o repositório
Vamos clonar este repositório do GitHub para começar. O repositório é um projeto Javascript vazio com review-sdk adicionado ao gerenciador de pacotes. Uma vez que foi feito cd
(implantação contínua) na pasta do projeto, você pode executar npm install
para instalar todas as dependências. Vamos criar um arquivo index.js
. Escreveremos todo o nosso código neste arquivo, usaremos node index.js
para executar o programa.
Copie e cole o seguinte código no arquivo index.js
.
const { Revise } = require("revise-sdk");
const AUTH_TOKEN = "...COLE AQUI SEU TOKEN AUTH...";
const revise = new Revise({auth: AUTH_TOKEN});
async function run() {
// escreva seu código aqui
}
run()
Você pode gerar o token Auth em app.revise.network.
Nas primeiras linhas, estamos importando o Revise-sdk e adicionando nosso token auth (mais sobre como obtê-lo abaixo). Na terceira linha, estamos instanciando o objeto revise
. Agora podemos usar este objeto para chamar todas as funções necessárias para completar o exercício. As funções Revise são principalmente assíncronas, então criamos uma função run
que é assíncrona e pode chamar as funções revise usando a palavra-chave await
. Isto tornará nosso código mais legível e fácil de manter.
Gerar chave de API
Antes de continuarmos a escrever o restante do código, vamos pegar uma chave de autenticação. Visite Revise e clique em “get started”. Depois de criar uma conta e fazer login, você verá o link "generate API key" no cabeçalho. Clique nele, agora você poderá gerar a chave de API (token auth). Copie a chave que é mostrada na tela e guarde-a em segurança. Esta chave não é armazenada nos servidores da Revise por motivos de segurança. Se você perder a chave, ela será perdida permanentemente. Você sempre pode voltar e gerar uma nova chave.
Vamos substituir o AUTH_TOKEN
no código acima pela chave que acabamos de gerar. Agora estamos prontos para começar a construir nosso ingresso NFT dinâmico.
Adicionar uma coleção
Para começar, vamos fazer uma coleção chamada “Meus ingressos para concertos”. Esta coleção pode ter vários NFTs. Cada NFT é um ingresso. Para fazer a coleta, vamos chamar a função addCollection
. Teremos que passar dois parâmetros: o nome da coleção e o URI da coleção. O collectionURI
é um nome de projeto exclusivo que pode ser usado para gerar links para o NFT (por que precisamos desses links é descrito posteriormente). Temos que garantir que o URI seja único e uma única palavra. Por exemplo, "meusingressosparaconcertos" é um URI de coleção válido, "meus ingressos para concertos" não é. Adicione o seguinte código ao seu index.jsd
dentro da função run
.
const collection = await revise.addCollection({name: "Meus Ingressos para concertos", uri: "..CRIE SEU URI EXCLUSIVO"})
// Nome da coleção : Use qualquer nome que quiser para sua coleção (isto é mostrado no mercado))
// URI da coleção: use um nome exclusivo (sem espaços ou caracteres especiais)
// isso irá gerar um link exclusivo para sua coleção
// por exemplo se você escolher "meusingressosparaconcertos12345"
// seu URI base será
"meusingressosparaconcertos12345.revise.link"
Adicionar um NFT
Agora vamos adicionar nosso primeiro ingresso NFT. Usaremos a função addNFT
para criar nosso ingresso. Adicione o seguinte código à sua função run
abaixo da chamada de função addCollection
.
const nft = await revise.addNFT({
image: 'https://revise-testing.fra1.cdn.digitaloceanspaces.com/tickets/regular.jpg',
name: 'Meu ingresso para concerto',
tokenId: '1',
description: 'Um bilhete para concerto com vantagens exclusivas'
}, [
{points: "10"}, {category: "General"}, {refreshments: "Yes"}, {seat: "General Area"}
], collection.id)
console.log(nft)
Estamos passando parâmetros para a imagem do nosso ingresso, nome, descrição, tokenId
de algumas propriedades. Também estamos passando o collectionId
que recebemos depois de criar nossa coleção para o trecho de código anterior. tokenId
é o ID exclusivo do seu NFT na blockchain. Isso ajuda a blockchain e os mercados a distinguir entre os NFTs que fazem parte da mesma coleção. Dois NFTs não devem ter o mesmo arquivo tokenId
. Podemos adicionar qualquer quantidade de dados personalizados aos nossos NFTs por meio de seus atributos. Como você pode ver no trecho acima, adicionamos “pontos”, “categoria”, “refrescos” etc. Você pode adicionar qualquer número de atributos aqui.
Executar
O estado final do nosso arquivo index.js
deve ficar assim agora.
const { Revise } = require("revise-sdk");
const AUTH_TOKEN = "...COLE AQUI SEU TOKEN AUTH...";
const revise = new Revise({auth: AUTH_TOKEN});
async function run() {
const collection = await revise.addCollection({name: "Meus ingressos para concertos", uri: "..CRIE SEU URI EXCLUSIVO"})
const nft = await revise.addNFT({
image: 'https://revise-testing.fra1.cdn.digitaloceanspaces.com/tickets/regular.jpg',
name: 'Meus ingressos para concertost',
tokenId: '1',
description: 'Um bilhete para concerto com vantagens exclusivas'
}, [
{points: "10"}, {category: "General"}, {refreshments: "Yes"}, {seat: "General Area"}, {used: "No"}
], collection.id)
console.log(nft)
}
run()
Vamos executar este arquivo para criar uma coleção e adicionar nosso primeiro NFT. Execute node index.js
no seu terminal. A saída esperada é um id
conforme mostrada abaixo.
O comando que você executou anteriormente deve gerar o id para o NFT que acabamos de criar. O ID é o identificador exclusivo para este NFT, usaremos este nftId
para buscar e atualizar nosso animal de estimação. Vamos armazenar este ID com cuidado.
Nota: o tokenId
e nftId
são diferentes. tokenId
é usado por mercados e carteiras para identificar seu NFT. nftId
é usado pela Revise para identificar e controlar o NFT.
Visite o painel da Revise para ver seu bilhete NFT em ação.
Atualizando seu ingresso usando pontos
O ingresso que você possui atualmente é do tipo “Geral”, mas o fato de você ter chegado até aqui no exercício significa que seu ingresso deve ser atualizado para “VIP”. Imagine isso acontecendo em um concerto real, onde você pode usar os pontos do seu ingresso NFT para obter vantagens exclusivas, como atualizar para um ingresso VIP, reivindicar comidas/bebidas, resgatar pontos por mercadorias ou até mesmo acesso aos bastidores. Vamos começar atualizando seu ingresso para um VIP.
Crie um novo arquivo chamado update.jse
cole o trecho de código abaixo. Execute o código usando node update.js
const { Revise } = require("revise-sdk");
const AUTH_TOKEN = "...AUTH_TOKEN...";
const revise = new Revise({auth: AUTH_TOKEN});
async function run() {
const ticket = await revise.fetchNFT("...NFT_ID...")
revise.nft(ticket)
.setProperty("points", "5")
.setProperty("category", "VIP")
.setProperty("seat", "VIP")
.setImage("https://revise-testing.fra1.cdn.digitaloceanspaces.com/tickets/vip.jpg")
.save()
console.log(`${ticket.name} foi atualizado`)
}
run()
No código acima, primeiro referenciamos e buscamos o NFT que acabamos de criar usando a função fetchNFT
e passando o arquivo nftId
. Em seguida, consumimos 5 pontos para atualizar nosso NFT para um ingresso VIP, levando posteriormente a uma nova imagem. Você também deve poder ver a alteração do bilhete e sua versão antiga (revisões) do NFT no painel da Revise.
A função setProperty
nos permite alterar as propriedades de metadados NFT subjacentes. Leva dois parâmetros, o nome da propriedade e o novo valor que precisa ser definido.
Adicionando pontos extras por assistir ao concerto
async function run() {
const ticket = await revise.fetchNFT("...NFT_ID...")
revise.nft(ticket)
.setProperty("used", "Yes")
.setProperty("points", "50")
.save()
console.log(`${ticket.name} foi atualizado`)
}
run()
Este código é semelhante ao último, tudo o que mudou é que estamos definindo a propriedade “used” para “Yes” para indicar que o bilhete foi usado e os “points” para 50. Execute o código usando node update.js
.
Utilizando seus novos pontos
Com 50 pontos, há muito o que você pode reivindicar. Você pode reivindicar uma camiseta, mouse pad ou um banner do concerto. Qual você escolheria? A camiseta custa 35 pontos, o mousepad 25 pontos e o banner 40 pontos. Insira o número restante para pontos e execute o trecho de código abaixo.
Também alteramos a imagem do bilhete para agora mostrar o crachá reivindicado no bilhete. Execute o código usando node update.js
.
async function run() {
const ticket = await revise.fetchNFT("5acdcba9-4126-476d-8f62-e6efab3bdbfd")
revise.nft(ticket)
.setProperty("points", "...ESTABELECER NOVOS PONTOS COM BASE NO QUE VOCÊ REIVINDICA...")
.setImage("https://revise-testing.fra1.cdn.digitaloceanspaces.com/tickets/vip-claimed.jpg")
.save()
console.log(`${ticket.name} foi atualizado`)
}
run()
Parabéns por criar seu ingresso NFT para concerto! Publique seu ingresso na Opensea e mostre-o ao mundo.
Se você quiser saber mais ou explorar oportunidades de criação com a Revise, agende uma chamada conosco aqui ou entre em nosso Discord ou envie-nos uma mensagem no Twitter.
Artigo original postado em BlocOGs e traduzido por Marcelo Panegali.
Oldest comments (0)