Comment générer des NFT et déployer la Candy Machine de A à Z sur Solana ?

Après vous avoir rédigé un bon nombre d'articles au sujet de l'écosystème NFT sur Solana et des nombreux projets/collections prometteuses qui s'y trouvent, nous avons trouvé “utile” de vous expliquer en détail le processus de génération des NFT, ainsi que l'installation de la Candy Machine sur Solana.

À noter que l'article sera mis à jour dès lors qu'il y aura des modifications majeures du processus (n'hésitez pas à nous le faire savoir sur nos réseaux sociaux). Sachez également que le tutoriel a été réalisé sur Windows et il se peut qu'il y ait de légères différences avec d'autres systèmes d'exploitation comme Mac OS ou encore Linux.

Les logiciels à installer

Avant de débuter ce tutoriel, il est important que vous installiez sur votre ordinateur plusieurs logiciels indispensables à sa réalisation (veillez à bien sélectionner ceux qui correspondent à votre système d'exploitation) :

Comment générer ses NFT (images) sur Solana ?

Dans un premier temps, nous allons vous montrer comment générer vos NFTs (créés et illustrés auparavant) pour ensuite les instaurer dans la Candy Machine afin d'être mint. Veillez à bien respecter les étapes ci-dessous pour ne rien manquer.

Installation du dossier “Hashlips”

  • Pour commencer, ouvrez votre logiciel “Visual Studio Code”, cliquez sur “File” puis sur “Open Folder“.
  • Cliquez sur votre “Bureau principal (desktop)”, puis sur “Sélectionner un dossier“.
  • Ouvrez un nouveau terminal en cliquant sur “Terminal” puis sur “New Terminal“, ou alors faites : Ctrl+Shift+ù (sur votre clavier)

    Important : Veillez à bien utiliser l'invite de commandes “CMD” (Command Prompt) et non “Powershell“, et ceux pour l'ensemble des méthodes utilisées dans cet article. Pour ce faire, cliquez simplement sur la petite flèche à droite de votre terminal, puis sur “Command Prompt“.
  • Si le “Git” n'est pas déjà installé sur votre ordinateur, entrez dans votre terminal la commande : npm install git (puis appuyez sur la touche entrée de votre clavier).
Résultat de la commande : npm install git
  • Installez maintenant le fichier “HashLips” sur votre bureau en entrant la commande : git clone (le lien que vous avez copié sur Github)

    À noter que vous pouvez également installer ce fichier directement via Github, en cliquant à droite de votre écran sur la version indiquée (veillez à bien choisir la dernière version). Installez ensuite le fichier “Source Code.zip” sur votre bureau.
Résultat de la commande : git clone https://github.com/HashLips/hashlips_art_engine.git

Configuration du fichier “Config.js”

  • Une fois votre dossier installé, ouvrez-le sur VSC (Visual Studio Code) en cliquant sur “File“, “Open Folder“, puis en sélectionnant le dossier “hashlips_art_engine“.
  • Vous pouvez apercevoir le contenu du fichier HashLips (layers, modules, src…) à droite du logiciel VSC. Ouvrez un nouveau terminal puis mettez-le en “CMD” (détailler plus haut).

    Installer maintenant le “npm” en entrant : npm install
Résultat de la commande : npm install
  • Cliquez sur “SRC” (à droite de votre écran) puis sur le fichier “Config.js“. C'est à cet endroit que vous allez configurer votre collection (nombre de NFT, nom, description, attributs…).

Voici les modifications que vous allez devoir effectuer sur ce fichier (“CRTL F” pour rechercher plus rapidement) :

  • const network = NETWORK.eth; (pour Ethereum) / NETWORK.sol; (pour Solana), donc dans notre cas, il faut remplacer “Const network = NETWORK.eth” par “Const network = NETWORK.sol;”
  • const namePrefix = “Your Collection”; : remplacez “Your Collection” par le nom de votre collection NFT.
  • const description = “Remember to replace this description”; : remplacez la phrase entre guillemets par la description de votre collection. Celle qui apparaîtra en l'occurrence sur Phantom Wallet une fois le mint effectué.
  • seller_fee_basis_points: 1000, : Définissez les frais (que vous recevrez) qui seront appliqués aux acheteurs lors des ventes sur les marketplaces secondaires (Solanart, Magic Eden, Alpha.art…). Notez que 1000 points équivalent à 10% (500 = 5%, 250 = 2.5%…).
  • Il est maintenant important que vous remplaciez “l'adresse créateur” indiquée par la vôtre, afin d'obtenir les SOL sur votre portefeuille lors du mint.

    Attention : si vous êtes plusieurs à créer cette collection, veillez à copier puis coller juste dessous la partie “address : (votre adresse) et “share : 100″. Il vous faut maintenant diviser “100” par le nombre de créateurs (pour que les gains soient répartis équitablement lors du mint) puis remplacer les parties “address” par celles de tous les créateurs.
  • Passons maintenant à la configuration des attributs (traits) de vos NFT. Tout d'abord, définissez le nombre d'images (NFT) que vous souhaitez générer dans “growEditionSizeTo“. Dans notre cas, nous allons créer une collection contenant 50 NFT, donc le nombre sera de “50“.
  • Définissez les attributs de vos NFT en modifiant ceux indiqués sur votre écran. Si ces derniers regroupent 4 attributs, alors indiquez leur “nom/catégorie” (exemple : “Background” pour le décor, “Eyes” pour les yeux, “Head” pour les chapeaux ou autres accessoires sur la tête…) sur le fichier, à la place de ceux déjà inscrits. Si vous souhaitez ajouter une ou plusieurs “classes”, entrez simplement (juste en dessous de la dernière) : { name: “le nom de la catégorie d'attributs” },

    Voici ce que ça donne pour nous :
  • Rendez vous dans votre dossier “hashlips_art_engine“, dans “layers“, puis renommez les fichiers présents exactement comme les catégories (background…) de vos NFT situées dans le “Config.js” (ci-dessus).
  • Supprimez les images initiales que contiennent chacun de ces fichiers, puis remplacez-les par vos attributs (en .PNG) dans les fichiers qui leur sont attribués. Si ce n'est pas déjà le cas, renommez TOUS les attributs de votre collection en : “Nom de l'attribut”#”indice de rareté” (ex : Cowboy hat#100). L'indice de rareté doit être situé entre 1 et 100.
  • La dimension initiale des NFT est de 512×512. Pour la modifier, trouvez simplement la partie “const format”, puis indiquez la taille de vos images dans “width” et “height“.
  • Dans le cas où vos NFT ne contiennent pas d'attributs “Background”, rendez vous dans la partie “const background“, puis remplacez “true” par “false”.

Génération des NFT

Une fois votre fichier “config.js” configuré, il vous faut maintenant générer l'ensemble de vos NFT. Pour cela, entrez dans votre terminal : node index.js

Bravo, vos NFT ont été générés avec succès. Un fichier “build” a également été généré dans votre dossier hashlips, où la totalité de vos NFT et de vos “metadata.json” y sont présents.

images
Json (associés aux images)

Création du Minting Website (site de Mint)

Maintenant que vos images/Json ont été générés, nous allons vous montrer comment créer votre site où vous allez justement pouvoir les mint. La dernière étape sera d'implémenter à ce site la fameuse “Candy Machine“, utilisée pour générer aléatoirement l'ensemble des NFT.

  • Premièrement, réalisez le même processus que pour le premier chapitre : cliquez sur “File“, “Open Folder“, sélectionnez votre “Bureau” puis cliquez de nouveau sur “Sélectionner un dossier“.
  • Ouvrez un nouveau terminal en cliquant sur “terminal” puis “New terminal“. N'oubliez pas d'utiliser l'invite de commandes “CMD” et non “Powershell“.
  • Comme nous avons déjà installé “GIT” en entrant la commande “npm install git“, nous allons directement passer à l'étape suivante. Si ce n'est pas votre cas, veuillez donc l'entrer dans votre terminal afin de l'installer.
Résultat de la commande : git clone https://github.com/metaplex-foundation/metaplex.git
  • Une fois votre fichier Metaplex installé sur votre ordinateur, ouvrez-le en cliquant sur “File“, “Open Folder“, puis en le sélectionnant. Après cela, ouvrez un nouveau terminal sur VSC (toujours en CMD).
  • Entrez la commande : npm install -g ts-node
Résultat de la commande : npm install -g ts-node

Installation de Solana CLI

  • Vous devez désormais installer le “Solana Tool Suite” (solana CLI) sur votre PC. Pour cela, cliquez sur ce lien :

    https://docs.solana.com/cli/install-solana-cli-tools, puis, selon votre système d'exploitation (Windows, macOS, Linux…), copiez la commande qui lui correspond.

    Je réalise cet article sur “Windows” donc je dois copier la commande :

    curl https://release.solana.com/v1.8.2/solana-install-init-x86_64-pc-windows-msvc.exe –output C:\solana-install-tmp\solana-install-init.exe –create-dirs

    En revanche, pour une raison qui m'est inconnue, la commande m'indique une erreur. Pour la résoudre, je vais donc remplacer “curl” par “curl -k” en début de code.
Résultat de la commande : curl -k https://release.solana.com/v1.8.2/solana-install-init-x86_64-pc-windows-msvc.exe –output C:\solana-install-tmp\solana-install-init.exe –create-dirs
  • Toujours sur le lien “Solana Tools“, copiez la commande suivante (pour installer la dernière version de Solana) puis collez là sur VSC.
Résultat de la commande : C:\solana-install-tmp\solana-install-init.exe v1.8.2
  • Vérifiez que Solana a bien été installé avec : solana –version (si la version s'affiche, tout est bon)
  • Entrez la commande : solana config set –url https://api.devnet.solana.com

    (remplacez “devnet” par “mainnet-beta” si vous réalisez cela sur votre portefeuille principal).
Résultat de la commande : solana config set –url https://api.devnet.solana.com

Création de votre wallet

  • Créez un wallet (dédié à votre collection) avec la commande : solana-keygen new –outfile ~/.config/solana/devnet-test.json
Résultat de la commande : solana-keygen new –outfile ~/.config/solana/devnet-test.json
  • Définissez le mot de passe de votre choix, puis confirmez-le juste après (c'est normal qu'il n'apparaisse pas).
(après avoir confirmé votre mot de passe)
  • Mettez les données (pubkey…) générées en sécurité. Pour cela, créez à droite de votre terminal dans le dossier “metaplex”, un nouveau fichier (clic-droit avec votre souris / new file), puis renommé le “Important“.
  • Ouvrez ce fichier, puis stockez-y les informations importantes (pubkey / seed phrase) affichées sur votre terminal.
  • Ajoutez des SOL sur votre balance avec : solana airdrop (le nombre de SOL que vous souhaitez recevoir). À noter que cette méthode ne fonctionne qu'en Devnet. En mainnet, vous devrez utiliser votre vrai portefeuille (phantom…) pour envoyer des SOL.

    Vérifiez ensuite votre balance avec : solana balance
Résultat de la commande : solana airdrop 5
  • Créez un nouveau dossier nommé “assets” (clic-droit / new folder) et stockez-y la totalité de vos images (.PNG) ainsi que vos fichiers JSON que vous avez générés au préalable. Ces derniers se trouvent dans votre dossier “Hashlips” situé sur votre bureau.
  • Entrez la commande : cd js

    Entrez la commande : yarn build
cd js + résultat de la commande : yarn build
  • Restez dans le dossier “js” (si ce n'est pas le cas ré-entrez : “cd js“), puis entrez la commande : yarn install

    L'installation devrait prendre entre 10 et 20 minutes. Le résultat final doit être de : Done in (la durée d'installation en secondes)
  • Entrez la commande : yarn bootstrap
Résultat de la commande : yarn bootstrap

Installation de la Candy Machine

Maintenant que le site de mint (minting website) a été configuré, nous allons passer à l'installation de la Candy Machine.

  • Avant tout, retournez dans le fichier metaplex principal, avec la commande : cd (copiez la partie juste avant “js” puis collez-la après le “cd”).
  • Téléchargez la Candy Machine avec la commande : ts-node js/packages/cli/src/candy-machine-cli.ts upload ./assets –env devnet –keypair ~/.config/solana/devnet-test.json

    (remplacer “devnet” par “mainnet-beta” dans le cas où ce n'est pas un test)
  • Copiez votre “wallet public key” et “candy machine with publickey” (encadré en rouge ci-dessus) puis collez ces données dans votre dossier “important“, car elles vous seront utiles par la suite.
  • Après l'installation de la Candy Machine, un fichier “.cache” a, normalement, été généré dans votre dossier Metaplex. Cliquez dessus, puis ouvrez le fichier “devnet-temp” qui se trouve à l'intérieur.
  • Une fois dedans, vous apercevrez une longue ligne de code que vous devez copier puis coller dans votre dossier “important“.
  • Créer votre Candy Machine et configurer le prix de “mint” (1 = 1 SOL…) de vos NFT avec la commande :

    ts-node js/packages/cli/src/candy-machine-cli.ts create_candy_machine ./assets –env devnet –keypair ~/.config/solana/devnet-test.json 1

    (remplacez le “1” par le prix de votre mint)
  • Mettez la “candy machine pubkey” générée, dans votre fichier “Important“.
  • Configurez la date de votre mint avec la commande :

    ts-node js/packages/cli/src/candy-machine-cli.ts update_candy_machine –keypair ~/.config/solana/devnet-test.json –date ‘3 Nov 2021 00:00:00 GMT'

    Remplacez le “3 Nov 2021 00:00:00 GMT” par votre date et le “local time” (GMT, PST…) par celui dans lequel vous êtes situés. À noter que pour le tutoriel, nous l'avons configuré à une date qui est déjà passée, afin de pouvoir mint directement nos NFT.
Résultat de la commande : ts-node js/packages/cli/src/candy-machine-cli.ts update_candy_machine –keypair ~/.config/solana/devnet-test.json –date ‘3 Nov 2021 00:00:00 GMT'
  • Copiez le code qui apparait à droite de “– updated startDate timestamp :” (encadré en rouge ci-dessus), puis collez-le dans votre dossier “Important“.
  • Retournez sur votre “Desktop” avec la commande : cd (copiez la partie juste avant “metaplex” puis collez-la après le “cd”).
Résultat de la commande : cd C:\Users\Flaydem\Desktop
  • Installez le dossier “Candy Machine Mint” avec la commande : git clone https://github.com/exiled-apes/candy-machine-mint.git

    En cas de changement, allez sur ce lien Github (https://github.com/exiled-apes/candy-machine-mint) pour vérifier la commande.
Résultat de la commande : git clone https://github.com/exiled-apes/candy-machine-mint
  • Maintenant que le dossier a été installé sur votre ordinateur, ouvrez-le en cliquant sur “File“, “Open Folder” puis sélectionnez “candy-machine-mint“.
  • Ouvrez un nouveau terminal (toujours en CMD), puis entrez la commande : yarn install
Résultat de la commande : yarn install
  • Entrez la commande : yarn build
  • Renommez le fichier “.env.example” en : .env
Contenus du fichier : .env
  • Vous avez besoin des informations que vous avez stockées dans votre fichier “important”.

    Pour cela, ouvrez une deuxième fenêtre VSC sans fermer la première (clic droit sur l'icône VSC dans votre barre des tâches + New Window), réouvrez votre dossier “metaplex“, puis allez dans le fichier “Important“.
  • Importez les informations situées dans “Important” vers votre fichier “.env” en remplaçant “__PLACEHOLDER__” par :
  • 1 – REACT_APP_CANDY_MACHINE_CONFIG= votre “Candy Machine with Publickey
  • 2 – REACT_APP_CANDY_MACHINE_ID= votre “Candy Machine Pubkey
  • 3 – REACT_APP_TREASURY_ADDRESS= votre “Pubkey
  • 4 – REACT_APP_CANDY_START_DATE= votre “Timestamp” (code associé à la date de votre mint)

Voici le résultat que ça nous donne (dans notre cas) :

À noter que si vous réalisez cela sur votre “mainnet”, remplacez sur les lignes 6 et 7 les mots “devnet” par “mainnet-beta“.

Publiez votre Candy Machine

  • Entrez la commande : yarn start

Bravo, votre Candy Machine a été publiée avec succès. Vous pouvez désormais vous rendre sur votre site afin de “Mint” (si c'est un test) vos NFTs.

Vous devez simplement cliquer sur le lien “Local” qui a été généré : http://localhost:3000

Connectez ensuite votre portefeuille, puis cliquez sur le bouton “Mint” (vérifiez que votre balance contient assez de SOL) :

Il vous reste plus qu'à aller dans votre portefeuille pour découvrir votre NFT (avec tous ses attributs associés). Enfin, les informations affichées (balance, remaining…) se mettront à jour lors de chaque mint effectué.

Les vidéos YouTube que nous vous conseillons :

Voici quelques vidéos YouTube qui pourront grandement vous aider pour la génération des NFT, ainsi que l'installation de la Candy Machine :

  • Génération de vos NFT : https://www.youtube.com/watch?v=lFDpBmoD62A

Messages d'erreur – Comment les résoudre ?

Pour faire simple, chaque cas est différent, nous ne sommes donc pas en mesure de résoudre la totalité de vos “Erreurs”. C'est pourquoi nous vous conseillons fortement de vous rendre sur le discord “Metaplex”, où de nombreuses personnes (développeurs…) sont présentes pour résoudre GRATUITEMENT vos problèmes.

Pour rejoindre le serveur Metaplex, cliquez sur ce lien.