Afinal, o que é NFTs ?

Alex José Silva
5 min readMar 14, 2024

Explorando o Mundo dos NFTs: A Revolução Digital que Você Precisa Conhecer! 🚀💻

Se você está mergulhando no universo da tecnologia, com certeza já ouviu falar sobre os NFTs. Mas afinal, o que são essas pequenas maravilhas digitais que estão agitando o mundo online?

Origem dos NFTs 🌱

Os NFTs, ou Tokens Não Fungíveis, surgiram da necessidade de atribuir propriedade única e intransferível a itens digitais. A ideia ganhou força em 2017, mas foi em 2021 que esses tokens realmente decolaram.

Tecnologias Envolvidas 🔗🔒

Os NFTs são construídos usando a tecnologia blockchain, a mesma por trás das criptomoedas como Bitcoin e Ethereum. Essa tecnologia garante a autenticidade e a rastreabilidade dos ativos digitais.

Relação com Criptomoedas e Blockchain 💰

Os NFTs estão intrinsecamente ligados às criptomoedas e à blockchain. Eles são comprados e vendidos usando criptomoedas e são armazenados em blockchain, o que garante sua autenticidade e segurança.

Usos dos NFTs 🎨🎮

Os usos dos NFTs são diversos e empolgantes. Eles vão desde arte digital e colecionáveis até itens de jogos e propriedades virtuais. Os NFTs também têm potencial para revolucionar indústrias como a música e o entretenimento.

Tipos de NFTs 🖼️🏰

Existem diferentes tipos de NFTs, desde imagens estáticas até vídeos, músicas, itens de jogos e até mesmo propriedades virtuais. A diversidade de tipos torna os NFTs ainda mais fascinantes e versáteis.

Em resumo, os NFTs representam uma nova fronteira no mundo digital, oferecendo oportunidades emocionantes para criadores, colecionadores e entusiastas da tecnologia. Estamos apenas arranhando a superfície do potencial dos NFTs, e o futuro promete ser emocionante e cheio de possibilidades!

Na prática 🎮

Abaixo está um exemplo simples de como você pode criar um contrato inteligente de NFT usando a linguagem de programação Python e a biblioteca web3.py para interagir com a blockchain Ethereum. Este exemplo é uma simplificação para demonstrar os conceitos básicos:

Primeiro as bibiotecas:

web3:

pip install web3

Depois, solcx:

pip install py-solc-x
pip install py-solc-x

Depois de instalar o py-solc-x, você pode instalar uma versão específica do compilador Solidity diretamente do seu script Python ou via linha de comando Python. Aqui está como você pode fazer isso no seu script Python:

from solcx import install_solc
install_solc('0.8.0')
from solcx import install_solc
install_solc('0.8.0')

Agora o código:

from web3 import Web3
from solcx import compile_source
from web3.middleware import geth_poa_middleware

# Conexão com a rede Ethereum (nesse caso, uma rede local usando Ganache)
web3 = Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))

# Adicionando middleware para transações na rede PoA (Proof of Authority)
web3.middleware_onion.inject(geth_poa_middleware, layer=0)

# Definição do contrato NFT em Solidity
contract_source_code = '''
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract MyNFT is ERC721 {
constructor() ERC721("MyNFT", "MNFT") {}
}
'''

# Compilação do contrato
compiled_sol = compile_source(contract_source_code)
contract_interface = compiled_sol['<stdin>:MyNFT']

# Deploy do contrato
MyNFT = web3.eth.contract(abi=contract_interface['abi'], bytecode=contract_interface['bin'])

# Conta de deployer
account = web3.eth.accounts[0]

# Deploy do contrato
tx_hash = MyNFT.constructor().transact({'from': account})
tx_receipt = web3.eth.waitForTransactionReceipt(tx_hash)

# Obtenção do endereço do contrato
contract_address = tx_receipt.contractAddress

print(f'Contrato NFT foi implantado no endereço: {contract_address}')

Este código Python cria um contrato inteligente NFT básico na blockchain Ethereum. Certifique-se de ter instalado a biblioteca web3.py e o compilador Solidity (solc) em seu ambiente Python. Além disso, você precisará de uma rede Ethereum local em execução (por exemplo, Ganache) para testar o contrato.

ara testar contratos inteligentes localmente, você pode usar Ganache, que é uma parte do Truffle Suite. O Ganache fornece uma blockchain Ethereum pessoal para desenvolvimento, o que facilita a execução de comandos, a inspeção do estado e o controle do ambiente de maneira determinística. Ganache está disponível tanto em uma versão GUI (interface gráfica do usuário) quanto em uma versão CLI (interface de linha de comando). Aqui está como você pode instalar e configurar o Ganache:

Instalação do Ganache GUI

  1. Download: Vá até o site oficial do Truffle Suite e baixe a versão do Ganache GUI para o seu sistema operacional (Windows, macOS ou Linux).
  2. Instalação: Execute o instalador após o download e siga as instruções para instalar o Ganache em seu sistema.
  3. Execução: Abra o Ganache. Ele automaticamente criará uma blockchain Ethereum local com algumas contas pré-financiadas com Ether falso, o que é perfeito para desenvolvimento e testes.

Instalação do Ganache CLI

Se você preferir uma abordagem baseada em terminal, o Ganache CLI (anteriormente conhecido como TestRPC) é uma ótima opção.

  1. Pré-requisito: Certifique-se de ter o Node.js e o npm (Node Package Manager) instalados em seu sistema. Você pode verificar isso executando node -v e npm -v no terminal. Se eles não estiverem instalados, vá para Node.js para fazer o download e instalar.
  2. Instalação: Abra um terminal e instale o Ganache CLI globalmente usando npm com o seguinte comando:
npm install -g ganache-cli
  1. Execução: Após a instalação, você pode iniciar o Ganache CLI executando ganache-cli no terminal. Isso iniciará uma blockchain Ethereum local em sua máquina, similarmente ao Ganache GUI, com contas pré-financiadas e endereços mostrados no terminal.

Conectando-se ao Ganache com seu Projeto

Depois de ter o Ganache (GUI ou CLI) rodando, você pode conectar seu projeto a esta blockchain local ajustando a configuração de conexão no seu script ou aplicação para apontar para o endereço HTTP fornecido pelo Ganache, geralmente http://127.0.0.1:7545 para o GUI ou http://127.0.0.1:8545 para o CLI por padrão.

Quando usar ferramentas como Truffle para desenvolvimento de contratos inteligentes, você pode configurar o arquivo truffle-config.js para apontar para o servidor Ganache local, garantindo uma integração suave para testes de desenvolvimento.

Ganache é uma ferramenta excepcional para desenvolvedores de blockchain, pois simplifica o processo de desenvolvimento e teste de contratos inteligentes e aplicações descentralizadas (DApps) sem a necessidade de gastar Ether real ou interagir com blockchains públicas durante as fases iniciais de desenvolvimento.

Para saber +

  1. O que são NFTs e por que você precisa entender como esse mercado funciona. Disponível em: https://exame.com/future-of-money/o-que-sao-nfts-e-por-que-voce-precisa-entender-como-esse-mercado-funciona/
  2. O que é NFT: como funciona, usos e exemplos. Disponível em: https://www.meioemensagem.com.br/proxxima/pxx-noticias/o-que-e-nft
  3. Ganache para simular uma rede Ethereum. Disponível em : https://archive.trufflesuite.com/ganache/
  4. Ethereum. Disponível em: https://ethereum.org/en/

--

--