Sconto del 20% su tutti i corsi inserendo nel form il codice SPRING20 | Fino al 30 aprile
Sconto del 20% su tutti i corsi inserendo nel form il codice SPRING20 | Fino al 30 aprile

Blog

Come si costruisce un NFT?

NFT sta per Non Fungible Token, ossia è un token non fungibile. Questa è una differenza sostanziale con  le cryptovalute: essendo, queste ultime, denaro a tutti gli effetti sono fungibili, ossia,in parole povere "una crypto vale  l’altra". Supponi di avere una banconota da cinque euro. Se la dessi ad un amico, e lui ti restituisse un'altra banconota dello stesso valore.. cambierebbe qualcosa? No: questo avviene, appunto, perchè il denaro è fungibile, questi tokens non lo sono. 

Gli NFT sono dei certificati digitali, che attestano l’originalità e la proprietà univoca di un bene fisico o digitale.  

È questo uno dei motivi per i quali hanno assunto rilevanza, ad esempio, nell’acquisto di opere d’arte digitali: l’opera in sè, infatti, potrebbe essere facilmente riproducibile e il suo proprietario potrebbe venire usurpato, in qualsiasi  momento, del suo diritto; così facendo, il proprietario dell’opera coniata, dunque, ha potere assoluto nel rivendicare il suo diritto di proprietà.

Questa relazione tra il proprietario e il token è protetta dalla blockchain di Ethereum, dove nessuno può  modificare il record di proprietà o duplicare un nuovo token.

Ti abbiamo incuriosito parlando di NFT e vorresti costruirne uno? Proviamoci insieme!

Come si costruisce un NFT?

Gli unici prerequisiti sono avere VSC e Node installati nel tuo computer, se non li hai clicca qui:

Come installare VSC

Come installare Node

Altra cosa di cui abbiamo bisogno per iniziare è il wallet virtuale Metamask:

Questo servirà per interagire con il blockchain di Ethereum tramite un’estensione sul browser.   

 

 Sei pront*? Iniziamo!

Per prima cosa abbiamo bisogno di disporre anche di una minima quantità di Ethereum al fine di fare dei test; non ci sarà bisogno di metterne di reali, perchè a questo scopo ci faremo aiutare da un  faucet di ETH, ossia una pagina web che ne distribuisce piccole quantità. 

  • Dalla home su Metamask vai su reti 🡪 show/hide test networks 🡪 fai switch su test network  ON e scegli una rete di test.
  • Copia e incolla il codice sulla pagina web della rete, io ho usato  la rete di test Goerli.  

Il prossimo step è quello di interagire con il network di Ethereum, e per farlo occorre connettersi  a un client di Ethereum. Useremo il provider di Alchemy, e creiamo la nostra app usando la versione free.  

 Copiamo la chiave API e salviamola sul note: view details 🡪 view key  

Il progetto prende forma

Inizializziamo il progetto dalla nostra bash:

mkdir nft-project 

cd nft-project 

Creiamo un’altra directory all’interno del nostro progetto e chiamiamo node.js:

mkdir ethereum  

cd ethereum 

npm init

Installiamo Hardhat, un Ethereum development environment (n.b.: per chi ha Windows ho avuto qui la necessità di aprire Powershell perchè il comando non veniva riconosciuto nella bash):

npm install –save-dev hardhat 

npx hardhat 

E selezioniamo l’opzione: ‘Create an empty hardhat.config.js’ .

Torniamo indietro nella root directory del nostro progetto e usiamo Next.js per inizializzare la web app cd ..  

mkdir web 

cd web  

npx create-next-app@latest 

Next.js è un framework di sviluppo Web open source basato su Node.Js  
fonte: Wikipedia.

Definire le variabili

Lanciamo i seguenti comandi per creare un file di enviroment dentro la cartella ethereum, riprendendo da dove  eravamo rimasti e apriamo VSC per andare a modificare il file di environment

cd ..  

cd Ethereum 

touch .env 

npm install dotenv –save

Quando definiamo le variabili, una variabile sarà l’alchemy key che abbiamo salvato in precedenza, una la Metamask private key, e l’ultima l’indirizzo Metamask.

Nel nostro file .env dovranno essere scritte così

DEV_API_URL=ALCHEMY_KEY 

PRIVATE_KEY=METAMASK_PRIVATE_KEY 

PUBLIC_KEY=METAMASK_ADDRESS 

Come settare lo smart contract?

Lo smart contract è il contratto digitale dove gli accordi tra gli utilizzatori sono settati nel codice. Per farlo torniamo nella bash per creare due nuove directories all’interno di ethereum, una per i contratti e una per gli  scripts, poi installiamo Open Zeppelin, una libreria open source in tema di smart contracts. 

mkdir contracts 

mkdir scripts 

npm install @openzeppelin/contracts 

All’interno della cartella ‘contracts’ creiamo il file del nostro primo contratto con il comando touch.

touch myFirstContract.sol

L’estensione .sol si riferisce al Solidity Language, il linguaggio degli smart contracts. Se non ce l’hai, installa il compiler su VSC, inoltre ti consigliamo questo indirizzo dove puoi consultare un esempio di contratto smart.

Costruire i Metadata del nostro NFT 

I metadata sono gli elementi descrittivi dell’NFT; ai fini del nostro tutorial, immagazzineremo i metadata  dell’NFT semplicemente da fare in modo che la nostra API restituisca il file JSON. Nel nostro progetto aperto su VSC creiamo una nuova cartella su web 🡪 pages 🡪 api 🡪 e la chiamiamo erc721 dal nome della forma più usata di NFT, l’ERC-721 appunto, detta anche forma standard. All’interno creiamo un file JS dove inseriamo i metadata.

Per esempi esplicativi della struttura del Metadata di un ERC721 consulta questa documentazione di Opensea.

Lanciamo poi il seguente comando dalla directory web/my-app :

npm run dev

Fase di deploy e considerazioni finali

Poichè la nostra app è solamente in locale, può essere utile scaricare un tool come ngrok per esporla ad un accesso pubblico.

Per il deploy useremo il nostro indirizzo ngrok, che verrà inserito nella funzione baseURI dello smart contract come nell’esempio:

function _baseURI() internal pure override returns (string memory) {  return "API_URL.ngrok.io/api/erc721/"; 

}

Per compilare usiamo hardhat e per rendere il processo più semplice, ti suggerisco di usare ethers.js, una libreria che ambisce a diventare la più completa per interagire con la Blockchain di Ethereum. Una volta installata ethers.js, lanciamo il comando dalla cartella Ethereum:

npx hardhat compile

 

Creo infine un file deploy.js su ethereum/scripts/deploy.js.

Per maggiori info sulla fase di deploy è possibile consultare il tutorial di Hardhat dove è disponibile un modello di script di deploy. A questo punto, una volta messo in run lo script di deploy, se tutti i passaggi sono stati eseguiti correttamente, nel tuo terminale apparirà l’indirizzo del network di test dove sarà visibile la tua NFT!

Oltre a questi brevi cenni sul deploy, in questo tutorial su come costruire NFT, non ci occuperemo della coniazione della NFT ma essere arrivati fino a qui è già una grandissima soddisfazione. Dallo spunto iniziale offerto, si può partire per creare il tuo token personalizzato, arricchendolo dei metadati che preferisci e con lo smart contract che meglio credi. 

Vuoi ulteriori info sugli NFT? Dai uno sguardo al nostro video a riguardo! 

 

Articoli correlati

Scopri i nostri corsi online certificati

Richiedi informazioni senza impegno

Seguici su Facebook

Ti interessa approfondire questi argomenti?

Abbiamo il corso che fa per te!

Scopri i nostri corsi online certificati

Richiedi informazioni senza impegno

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.