Comment créer un NFT ?
Comment coder son propre NFT gratuitement en Solidity ? Comment créer et vendre un NFT ? Sur quelles plateformes ?
Je vous dit tout sur les NFT et leurs conceptions dans ce tutoriel !
Pour créer un NFT, il faut choisir un medium comme une image, une vidéo, un son ou un autre type d’objet. Ensuite, il faut héberger ses données de manière décentralisée avec un service comme IPFS. Et pour finir, exécuter un smart contract à déployer sur une blockchain comme Ethereum ou Solana.
Après la lecture de cette article vous saurez :
- la différence entre un token ERC-20 et ERC-721
- écrire, compiler et déployer un smart contract pour NFT
- utiliser, vendre et stocker votre NFT
Commençons le développement de notre NFT sans plus tarder !
Mais avant, un peu de théorie …
Vous voulez passer à la pratique directement ? Les boutons ci-dessous vous mènent directement au bon endroit dans l’article.
Qu’est-ce qu’un NFT ?
Un NFT, Non-Fungible token ou Jeton non fongible en français, est un token unique qui n’est pas remplaçable par un autre token.
Contrairement aux crypto-monnaies comme BTC, ETH ou DogeCoin qui sont interchangeables, un Doge vaudra toujours un Doge, les NFT ne le sont pas : il n’y a qu’une unité de chaque NFT.
À quoi sert un NFT ?
Dans l’art, ça résout le problème de l’authenticité : est-ce qu’une oeuvre est l’originale ?
Si on détient un NFT qui représente un objet, on peut interagir avec sur la blockchain, que ce soit dans un ou plusieurs jeux que dans d’autres types de dApps.
Vous voulez créer un jeu NFT ? Alors mon article Comment créer un jeu NFT vous intéressera sûrement.
Quel langage pour créer un NFT ?
Dans ce tutoriel, c’est les NFTs développés en Solidity pour la blockchain Ethereum que nous allons voir.
Si vous êtes plutôt branché Solana, n’hésitez pas à consulter mon article pour apprendre à développer des dApps Solana avec Rust.
Qu’est-ce que le standard ERC ?
ERC signifie “Ethereum Request for Comment” ou “Demande de commentaires Ethereum” en français.
Le standard ERC le plus connu est ERC20 qui est l’interface standard pour les Tokens Ethereum.
Sur le réseau Ethereum, les tokens comme BNB, BAT, USDT, UNI ou encore DAI sont des ERC20. Les NFTs, eux, sont des ERC721.
Les ERC721 peuvent être construits et programmés comme les ERC20 avec des smart contracts mais ils viennent avec la preuve de leur historique de transaction.
Qu’est-ce que ERC721 ?
ERC721 est similaire à ERC20 avec quelques variations :
La première est qu’un smart contract ERC721 ont une variable tokenURI
.
Ensuite, ils ont une variable tokenId
qui pointe vers l’adresse de son propriétaire (contrairement aux smart contracts ERC20 qui point vers l’adresse d’une balance).
Là où un ERC721 est vraiment different d’un ERC20 est dans ses metadata.
Il faut montrer à quoi ressemble le NFT et mettre des fichiers comme des images ou des vidéos sur la blockchain coûterait trop cher.
On est donc venu avec une solution : fournir une URL de token (tokenURI
) qui pointe vers le rendu visuel du NFT.
Souvent, on utilisera IPFS pour stocker le visuel de notre NFT.
Qu’est-ce que ERC1125 ?
ERC1155 est un autre standard de tokenisation qui a pour but de rendre les transferts de NFTs (et de tokens) plus rapides et plus efficace.
Cette norme à été développée par Enjin et est aussi appelée “la norme multi tokens de nouvelle génération”.
Avec ERC-1125, les frais de gaz sont réduits de 90 % par rapport aux transfert ERC-721. Le seul véritable inconvénient est que le NFT est plus difficile à suivre en termes de propriété - pour économiser les données stockées sur blockchain ERC-1155.
ERC1125 aurait donc peut-être plus de sens pour des jeux videos sur la blockchain, quand on a besoin d’un peu moins de traçabilité et sécurité mais qu’on cherche la vitesse et les coûts faibles.
Pour le reste de ce tutoriel, on va cependant se concentrer sur ERC-721 comme on chercher à “minter” vos créations artistiques.
Comment coder un NFT avec Solidity ?
J’ai fait une vidéo qui reprend les étapes de ce tutoriel pour vous simplifier la vie.
Si vous voulez en apprendre plus sur le développement d’applications décentralisées, alors mon article Comment apprendre Solidity ? vous intéressera probablement.
Comment ajouter un fichier sur IPFS ?
Avant d’écrite le smart contrat pour notre NFT, on doit héberger notre art et créer un fichier de métadonnées.
Pour faire ça, on va utiliser IPFS. IPFS est un système décentralisé gratuit de stockage et de partage de fichiers.
Téléchargez et installez IPFS CLI en fonction de votre système d’exploitation en suivant le guide d’installation dans la documentation d’IPFS.
Étape 1 : Créer un repo IPFS
Une fois l’outil IPFS Command-line (ou Desktop) installé, vous aurez accès à la commande ipfs init
. Tapez cette commande pour initialiser IPFS.
ipfs init
Vous ne savez pas ce qu’est une ligne de commande ou un terminal ? Si vous êtes sur Linux ou Mac OSX, cherchez “Terminal” avec votre outils de recherche. Si en revanche vous êtes sur Windows, installer un bon terminal est un bonne idée, je vous explique comment dans dans mon article ”les meilleurs terminaux disponibles pour Windows“.
Étape 2 : Lancer le daemon IPFS
Ensuite, vous devrez lancer le daemon. Toujours dans le terminal, tapez :
ipfs daemon
Étape 3 : Ajouter un fichier sur IPFS
Ensuite, dans une autre fenêtre, vous pourrez uploader des fichiers avec la commande ipfs add
. Ajoutons donc une image appelée 0.jpeg
:
ipfs add 0.jpeg
Cette commande produit un hash qui commence par Qm
comme output. Mettez ce hash de coté, il vous sera utile pour accéder au fichier que vous venez d’uploader.
Après quelques minutes, rendez-vous sur le lien de votre fichier :
https://ipfs.io/ipfs/<LE_HASH_QM_DU_VISUEL>
Étape 4 : Ajouter le fichier JSON sur IPFS
En plus rendu visuel de notre NFT, on doit uploader un fichier qui contient les informations du NFT comme son nom, sa description et un lien vers son image.
Créez donc un fichier appelé 0.json
et copiez-y ce contenu :
{
"name": "Comment Coder",
"description": "Logo du site CommentCoder.com",
"image": "https://ipfs.io/ipfs/<LE_HASH_QM_DU_VISUEL>"
}
Pour finir avec IPFS, on va uploader le fichier JSON qui contient les metadata de notre NFT.
ipfs add 0.json
Encore une fois cette commande vous donner un hash. Ce hash complète l’URI qui sera utile pour “minter” le NFT.
https://ipfs.io/ipfs/<LE_HASH_QM_DU_JSON>
Étape 5 : Écrire le smart contract d’un NFT
Enfin un peu de code !
Pour des raisons de sécurité et de simplicité, on va partir d’un smart contract de base du repo github “0xcert” sur lequel on va juste ajouter la fonction pour “minter” le NFT.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";
import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol";
contract newNFT is NFTokenMetadata, Ownable {
constructor() {
nftName = "Le nom de mon NFT";
nftSymbol = "NOM";
}
function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _uri);
}
}
Et voilà, c’est tout le code dont on aura besoin pour créer notre smart contract !
Il nous reste maintenant à compiler et deployer notre smart contract … et il existe un outil parfait pour ça, sans rien devoir installer sur votre machine : Remix.
Rendez-vous sur le site et collez-y le code après avoir changé les valeurs des variables nftName
et nftSymbol
du constructeur.
Étape 6 : Compiler le smart contract
Dans le menu de gauche de Remix, cliquez sur le deuxième bouton “Solidity Compiler”. Changez les paramètres si besoin et puis cliquez sur Compile <VOTRE_SMART_CONTRACT>.sol
Étape 7 : Déployer le smart contract
Une fois votre smart contract compilé, on va devoir le déployer sur la blockchain Ethereum.
Avant de commencer, soyez sûr d’être sur le réseau de test Ropsten de Ethereum. Pour se mettre sur Ropsten, appuyez sur “Ethereum Mainnet” au dessus du pop-up Metamask et changez le en “Ropsten Test Network”.
Si c’est votre première fois sur Ropsten, vous pouvez recevoir des ETH de test gratuitement sur le site Ropsten Ethereum Faucet.
Rendez-vous dans la partie “Deploy and run transactions” en appuyant sur le 3ème icon du menu de gauche de Remix.
Choisissez “Inject Web3” et choisissez le réseau de test Ropsten avec Metamask.
Déroulez le champ “Mint” pour pouvoir compléter les variables :
_to
: l’adresse de votre wallet metamask (Ropsten)_tokenId
: mettez la valeur “1” comme il n’y aura qu’un NFT_uri
: l’url IPFS de votre fichier JSON
Appuyez sur le bouton Transact et vous recevrez votre NFT après confirmation de votre transaction.
Bravo ! Votre NFT vit maintenant sur la Blockchain Ethereum ! Nous avons utilisé le testnet Ropsten pour ce tutoriel mais vous pouvez vous mettre sur le Ethereum Mainnet et suivre les mêmes étapes de ce tuto.
Ensuite, vous pourrez vous connecter à une place de marché pour voir (ou vendre) votre NFT.
Comme votre NFT vit sur le testnet, vous pouvez y accéder en le cherchant sur le site des testnets d’OpenSea, par exemple, voici le NFT que j’ai minté pendant la réalisation de ce tutoriel.
Quelles sont les marketplaces pour NFT ?
Maintenant que vous êtes en possession du code pour créer des NFT, vous voudrez peut-être le mettre sur une marketplace pour le vendre et éventuellement acheter d’autres NFT.
Il existe de nombreuses places de marché (ou “marketplace” en anglais) sur lesquelles vous pourrez échanger vos NFT.
Je vous ai rassemblé les plus connues (début 2023) ci-dessous.
OpenSea
OpenSea est une place de marché décentralisée pour les objets de collection en crypto et les NFT. Elle comprend des objets de collection et d’autres biens virtuels qui vivent sur la blockchain. Sur OpenSea, tout le monde peut acheter ou vendre ces NFT grâce aux smart contract Ethereum.
Rarible
Rarible est une place de marché basée sur la blockchain pour l’art numérique et les NFT tokenisés. La plateforme a pour but de mettre en relation les vendeurs de NFT avec les acheteurs.
Mintable
Mintable est une plateforme construite sur Ethereum qui permet aux utilisateurs de créer, distribuer, acheter, vendre et échanger des fichiers numériques sur la blockchain par le biais de smart contracts.
Valuables
Cent est de base un réseau social lancé en 2017 avec le but d’aider les créateurs à gagner de l’argent en crypto. En 2020, Cent a lancé Valuables, qui permet aux utilisateurs de vendre ou acheter des Tweets en tant que NFT. Si le propriétaire du tweet accepte, Cent créé le NFT.
Sorare
Sorare est projet NFT sous forme de jeu de football. Sur Sorare, vous pouvez acheter et vendre des joueurs de foot pour créer votre équipe virtuelle avec des cartes de joueurs.
Comment mettre son NFT sur OpenSea ?
Si vous souhaitez créer un NFT et le vendre sans coder votre NFT, c’est possible sur une marketplace comme OpenSea.
Comment s’inscrire sur OpenSea ?
Rendez-vous sur OpenSea et appuyez sur l’icône de login.
Choisissez une option pour connecter votre wallet. Si vous n’avez aucune idée de quoi je parle, je vous conseille d’utiliser Metamask.
Pour ça, vous devrez installer l’extension de navigateur Metamask et vous créer un wallet dessus.
Ensuite, remplissez votre profile, validez votre adresse email et voilà, votre compte OpenSea est prêt.
Comment créer un NFT sur OpenSea ?
Pour créer un NFT sur ⛵ OpenSea, appuyez sur le bouton “Create” dans le menu du dessus.
Vous arrivez sur un formulaire sur lequel vous pourrez upload votre fichier (jpeg ou un autre format d’image, de vidéo, d’audio ou de modèle 3d), lui donner un nom, une description, une collection et des propriétés.
Une fois le formulaire complété, finalisez la création de votre NFT en appuyant sur bouton Create en bas de page.
Comment lister un NFT sur OpenSea ?
Après avoir créé ou acheté votre NFT, vous pourrez vendre les NFT en votre possession. Direction la page du NFT que vous voulez mettre en vente, appuyez sur “listing” puis “sell”.
Ensuite, Choisissez si vous voulez vendre votre NFT en enchère ou avec un prix fix ainsi que son prix. D’autres options sont également disponibles si vous voulez faire une vente privée ou diminuer le prix dans le temps.
À noter que lister un NFT sur OpenSea coûte de l’argent comme la plateforme prendra quelques % si la vente est réussie et vous devrez également signer la transaction Ethereum.
Vous n’avez pas d’ETH pour signer la transaction ? Alors le paragraphe ci-dessous vous sera utile.
Acheter des ETH pour mettre en vente un NFT sur OpenSea
Comme nous l’avons vu, vous aurez besoin d’Ethereum pour lister votre NFT sur OpenSea ou les autres plateformes décentralisées.
Si vous n’avez pas encore des ETH sur votre wallet, vous devrez donc en acheter. Et si vous n’avez pas de crypto sur des exchange, vous devrez vous inscrire sur un exchange.
Pour commencer, je vous recommande d’utiliser Coinbase si vous êtes débutant absolu ou Binance si vous avez un peu plus d’expérience dans les cryptos ou le trading.
Certains liens dans cet article sont affiliés, sans coût supplémentaire pour vous en cas de clic. Merci pour votre soutien !
Coinbase
La solution la plus simple pour acheter vos premières crypto-monnaies comme les Ether dont vous aurez besoin pour lister vos NFT sur OpenSea, est certainement Coinbase.
Une fois vos ETH achetés, vous pourrez les transferer sur vos adresse Metamask et lister (ou acheter) des NFT sur OpenSea.
Binance
Binance est un exchange sur lequel vous pourrez acheter et vendre vos cryptos. Binance est donc similaire à Coinbase mais un peu plus compliquée à utilisée car plus complexe et complète.
Mais Binance possède aussi sa propre marketplace pour NFT. La marketplace Binance pour NFT est similaire à OpenSea sans que vous deviez utilisez un wallet comme Metamask.
Comment sécuriser ses NFT ?
Quand vous achetez des NFT sur des plateformes comme OpenSea, ils sont sur votre Wallet Metamask.
Metamask est un “hot wallet”, il est connecté à internet et protégé par un mot de passe. Ce qui veut dire que si quelqu’un vous vois tapper votre mot de passe et accède à votre ordinateur, il peut voler vos NFT.
Si vous voulez augmenter la sécurité de vos assets digitaux, vous pouvez passer à un “cold storage” physique comme ledger ou trezor.
Ledger
Ledger est une entreprise française qui vend des hardware wallets ultra-sécurisés. Pour vos NFT, ce serait l’équivalent de placer vos oeuvres d’art dans un coffre fort quelque part.
Trezor
Trezor est une autre alternative à Ledger, ils sont présents sur le marché depuis 2014. Tout comme ledger, leurs produits combinent la simplicité d’un hot wallet avec la sécurité du cold storage.
Découvrez un tout nouveau monde avec les NFT
Félicitations ! Vous savez maintenant ce qu’est un NFT, comment coder votre propre smart contract pour deployer des NFT sur le mainnet Ethereum ainsi que sur les réseaux de test. Mais vous savez aussi comment acheter, vendre et sécuriser vos NFT et autres assets crypto.
La blockchain est une industrie de rêve pour les développeurs pour plusieurs raisons :
- tout reste à être inventé sur le Web3.0
- les boîtes crypto sont en manque de talents
- les salaires sont dans les plus attractifs
Pensez à consulter les autres articles sur la blockchain dans la catégorie “blockchain” de ce blog.
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.