30 de maio de 2023
Os NFTs compactados na blockchain Solana são um novo tipo de NFT que usa uma estrutura compactada da Árvore de Merkle para reduzir seu tamanho de arquivo e os custos de gás. Neste artigo, mergulharemos no emocionante mundo dos NFTs compactados em Solana.
Os NFTs compactados na blockchain Solana são um novo tipo de NFT que usa uma estrutura compactada da Árvore de Merkle para reduzir seu tamanho de arquivo e os custos de gás. Neste artigo, mergulharemos no emocionante mundo dos NFTs compactados em Solana.
Quando se trata de criar aplicativos da Web3 escaláveis, a Solana é uma das melhores escolhas por causa da sua alta velocidade, baixo impacto ambiental e, o mais importante, baixas taxas de gás. Devido a isso, a blockchain Solana está sendo amplamente utilizada como uma infraestrutura em mercados da Web3, jogos e na indústria de arte e colecionáveis hoje em dia.
A Solana introduziu recentemente a compactação de estado e os NFTs compactados, que reduziriam o custo de cunhagem e desenvolvimento. Os NFTs compactados na blockchain Solana são um novo tipo de NFT que usa um formato compactado para reduzir o tamanho do arquivo e os custos de gás. Neste artigo, mergulharemos no emocionante mundo dos NFTs compactados em Solana e exploraremos a maneira mais fácil de cunhar NFTs compactados na Solana com a ajuda das APIs SHYFT.
Leia mais sobre NFTs compactados.
Antes de começar
Para começar, precisaremos de algumas coisas.
Registre sua conta SHYFT e obtenha sua própria chave de API SHYFT.
O x-api-key
é um parâmetro de autenticação, que dá acesso às APIs SHYFT. Você pode obter sua própria chave de API no site da SHYFT. Basta se inscrever com seu ID de e-mail aqui e você pode obtê-lo gratuitamente. Se você já tiver uma chave de API SHYFT, favor pular esta etapa.
Node.js ou qualquer ambiente de servidor compatível com chamadas de API.
Usamos o Node.js para este artigo, mas estes podem ser inicializados usando qualquer ambiente de servidor que suporte chamadas de API, ou até mesmo com aplicativos de front-end do React, Next.js ou Vanilla JS.
Árvores de Merkle e NFTs compactados
Os NFTs compactados aproveitam das Árvores de Merkle, uma estrutura de dados compatível com compactação que armazena dados off-chain com hash criptográfico juntos e calcula um único hash final que é armazenado na cadeia. Esse método de “compactação” permite que os programas e dApps da Solana usem o espaço barato do livro-caixa da blockchain, ao invés do espaço mais caro da conta, para armazenar dados com segurança.
Criando uma Árvore de Merkle
Veja como podemos criar uma árvore merkle usando as APIs SHYFT. O ponto de extremidade da API:
POST https://api.shyft.to/sol/v1/nft/compressed/create_tree
Todas as APIs da SHYFT requerem o parâmetro x-api-key
em seu cabeçalho, que está disponível gratuitamente no site da SHYFT.
Parâmetros necessários para esta chamada de API
-
network
: especifica o ambiente Solana Blockchain, que pode serdevnet
,testnet
emainnet-beta
. -
wallet_address
: especifica a autoridade da árvore e o pagador da transação (se não for declarado explicitamente pelo campofee_payer
). -
max_depth_size_pair
: este é um objeto JSON que especifica ainda dois campos -max_depth
(a profundidade máxima da árvore de Merkle) emax_buffer_size
(número máximo de alterações que podem ser feitas mantendo a validade do hash raiz). -
canopy_depth
: especifica o número de nós de prova que são armazenados ou gravados em cache na cadeia para um caminho de prova específico. -
fee_payer(optional)
: se especificado, esta conta pagará a taxa de gás da transação, ao invés da autoridade da árvorewallet_address
.
Para saber mais sobre as Árvores de Merkle e os parâmetros necessários para criá-la em detalhes, por favor, confira nossa documentação detalhada sobre as árvores de Merkle aqui.
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("x-api-key", "YOUR_API_KEY"); // Você pode obter sua própria chave de API SHYFT do https://shyft.to
var raw = JSON.stringify({
"network": "devnet", // pode ser rede de desenvolvimento (devnet), rede de testes (testnet), ou rede principail beta (mainnet-beta)
"wallet_address": "5KW2twHzRSxAiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2", // endereço do criador da árvore de merkle
"max_depth_size_pair": {
"max_depth": 14,
"max_buffer_size": 64
},
"canopy_depth": 10,
"fee_payer": "3yTKSCKoDcjBFpbgxyJUh4cMING77gFXBimkVBx2hKrf" // parâmetro opcional, especifica o pagador da taxa para criar a transação
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/nft/compressed/create_tree", requestOptions) //api endpoint for creating Merkle Tree
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
# Crie uma árvore de Merkle em Solana
Uma vez executada com sucesso, a resposta retornada terá um encoded_transaction
que exigirá uma assinatura da wallet_address e o fee_payer (se especificado), na qual, após sua conclusão, uma nova árvore de Merkle será criada.
Cunhando NFTs compactados
A SHYFT fornece uma solução simples baseada em API para cunhagem de NFTs compactados em Solana. O ponto de extremidade da API para cunhar os NFTs compactados:
POST https://api.shyft.to/sol/v1/nft/compressed/mint
Todas as APIs SHYFT requerem o parâmetro x-api-key
em seu cabeçalho, que está disponível gratuitamente no site da SHYFT. Você pode obter sua própria chave de API SHYFT aqui.
Parâmetros necessários para esta chamada de API
-
network
: seleciona o ambiente da blockchain Solana, que pode serdevnet
,testnet
oumainnet-beta
. -
creator_wallet
: especifica o endereço da carteira que é o criador do NFT. Este será o pagador da taxa de transação se não for especificado no campofee_payer
. -
merkle_tree
: endereço da árvore de Merkle existente que será associado a este NFT compactado. -
metadata_uri
: aceita a URL de metadados do NFT, que contém metadados do NFT no formato JSON. Este documento JSON deve estar em conformidade com o padrão de token não fungível da metaplex. -
max_supply(optional)
: aceita o número de clones/edição de cunhagens possíveis para este NFT. Por padrão, ele é definido como 0, o que cria um NFT único. -
collection_address(optional)
: endereço da coleção à qual o NFT será adicionado. -
is_mutable(optional)
: especifica se a atualização deste NFT é possível ou não. Por padrão, ele é definido como “verdadeiro”. -
receiver(optional)
: endereço da conta que recebe este NFT recém cunhado. Se não for especificado, a carteira do criador receberá o NFT. -
is_delegate_authority(optional)
: se o destinatário do NFT terá a autoridade de atualizar o NFT. -
fee_payer(optional)
: se mencionado, esta é a conta que pagará a taxa de gás da transação.
Saiba mais sobre os parâmetros desta API aqui.
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("x-api-key", "YOUR_API_KEY"); // Você pode obter sua própria chave de API SHYFT do https://shyft.to
var raw = JSON.stringify({
"network": "devnet", // pode ser rede de desenvolvimento (devnet), rede de testes (testnet), ou rede principail beta (mainnet-beta)
"wallet_address": "5KW2twHzRSxAiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2", // endereço do criador a árvore de merkle
"max_depth_size_pair": {
"max_depth": 14,
"max_buffer_size": 64
},
"canopy_depth": 10,
"fee_payer": "3yTKSCKoDcjBFpbgxyJUh4cMING77gFXBimkVBx2hKrf" // parâmetro opcional, especifica o pagador da taxa para criar a transação
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/nft/compressed/create_tree", requestOptions) // ponto de extremidade par a criação da árvore de Merkle
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
# Cunhando NFTs compactados em Solana - usando APIs
Depois de executada com sucesso, a API retorna um encoded_transaction
que precisa de uma assinatura do creator_wallet
e do fee_payer
(se especificado) antes de ser executada pelo tempo de execução da Solana. Para saber sobre assinatura de transações na Solana, você pode seguir nosso guia do desenvolvedor aqui ou também pode conferir nosso repositório no GitHub para todas as funções necessárias para assinar transações codificadas. Uma vez feito isso, seu novo NFT compactado será criado. A resposta da API acima se parece um pouco com esta:
{
"success": true,
"message": "transação de cunhagem de gerada com sucesso",
"result": {
"encoded_transaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEJDiwtqCYXlzhrq8mEyvvhhNTOfGeIyz37PhBiUwnXHZv4QCwHlX8JKKwKpawHjfHTp/CXruh+Lt6Hx8xs+BZ7UD89hGPOY71rWjp41Y2cEFuh3S4tVBuiQYdfUskT+tvqRVWBOfABirW4DbXrmT//0334xeljBq7uSsGpdHc5vyxF/S8seYZj5fquYDnlKBxRnoPx4XgntLNTtXU342z+sUMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZLL1Rhodf4wAu7ZXc4ZiZjkwHTJUvMr2m/ME7O6J68SYG2nVFE9kcF2V6x3Ws/IDvpmhnD5VqC3afdM4GMcJyYVZi15G8ljDYch8aBQBsYKvPTTM5zV/H8BI2juhGa9piLgOt5NShpsiR0X1ndv4omWMoT3GiBISY1HK4HwaWlCSoT7pXEHLoIpn9axn6N9+HaEWJeHWQTf49PI4MDfxT/N2xmRuqZRGXDUBt0eb8kZY/vzBLgUWmrRPqwMO2rywtwZbHj0XxFOJ1Sf2sEw81YuGxzGqD9tUm20bwD+ClGC7wPwLtHyi90xBEulKsTz6PGNOXcF+rLA80aI81+eHyVwfzc3PMZOVcMsE5QF5AyAywyf7wsaT3j5qVkvaffewEJEAMICAIBAQEJBwQLBg0KDAXtAZkSsi/FnlYPEQAAAENvbXByZXNzZWQgTkZUICMxBAAAAENORlRQAAAAaHR0cHM6Ly9nYXRld2F5LnBpbmF0YS5jbG91ZC9pcGZzL1FtWW1VYjVNSFp3WW92blFnOXFBTlRKVWk3UjhWYUU1Q2V0ZnNzY3phU1duNUv0AQEBAQABAAEASYG2nVFE9kcF2V6x3Ws/IDvpmhnD5VqC3afdM4GMcJwAAAIAAABALAeVfwkorAqlrAeN8dOn8Jeu6H4u3ofHzGz4FntQPwFQLC2oJheXOGuryYTK++GE1M58Z4jLPfs+EGJTCdcdm/gAFA==",
"mint": "DPvPbxaX4rDQt8DH8GQbikdpYHPfyiKXunCLd27Qb8ut",
"signers": [
"5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2",
"3yTKSCKoDcjBFpbgxyJUh4cM1NG77gFXBimkVBx2hKrf"
]
}
}
Os NFTs compactados em Solana representam um salto significativo na evolução dos ativos digitais, o que os torna amplamente utilizáveis em jogos da Web3, onde o armazenamento eficiente de ativos de NFT é necessário para milhões de jogadores ou ambientes fechados de NFT, como ingressos para shows musicais ou shows privados, e vemos que a SHYFT fornece uma solução simples baseada em API para cunhagem de NFTs compactados, que pode ser facilmente implementada ou integrada em dApps da Solana.
Se você gostou deste artigo sobre cunhagem de NFTs compactados, sinta-se à vontade para verificar nossos outros artigos sobre Como Criar um Feed de Atividade Web3 ao Vivo na Solana ou Obtenção de Transações Legíveis por Humanos na Solana. Esperamos que você se divirta construindo com SHYFT.
A SHYFT também provém um SDK JS que fornece uma tonelada de funcionalidades para interações com a blockchain Solana, incluindo NFTs, tokens fungíveis, carteiras, retornos de chamadas e transações, sinta-se à vontade para conferir aqui.
Fontes
Documentação da API SHYFT
Site da SHYFT
Obtenha a chave da API
GitHub
Junte-se ao nosso Discord
Javascript SDK
Experimente nossas APIs na Swagger UI
Esse artigo foi escrito pela Equipe Shyft e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.
Latest comments (0)