3. Uploader vos NFTs
Uploader vos NFTs
Avant d’upload les NFTs, il est nécessaire de créer le fichier JSON qui comporte les paramètres de la Candy Machine. Pour cela, créer un nouveau fichier en faisant clic droit->New file
sur le dossier metaplex/js/packages/cli/src
et appelez le config.json
.

config.json
Ouvrez ensuite ce fichier, copiez les lignes suivantes et modifiez les suivant votre projet :
{
"price": ,
"number": ,
"gatekeeper": ,
"solTreasuryAccount": "",
"splTokenAccount":"",
"splToken":"",
"goLiveDate": "",
"endSettings": ,
"whitelistMintSettings": ,
"hiddenSettings":,
"storage": "arweave",
"ipfsInfuraProjectId": null,
"ipfsInfuraSecret": null,
"awsS3Bucket": null,
"noRetainAuthority": false,
"noMutable": false
}
Avec :
price
: prix des NFTs en $SOL ou en tokens SPLnumber
: nombre de NFTs à mettre en ventegatekeeper : permet d’ajouter un captcha. Si vous en souhaitez un, ajoutez les lignes suivantes en prenant bien les accolades :
{
"gatekeeperNetwork": "ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6",
"expireOnUse": true
}
solTreasuryAccount
: adresse qui va recevoir les paiements en $SOLsplTokenAccount
: adresse qui va recevoir les paiements en token SPLsplToken
: adresse du token SPL avec lequel le paiement est possiblegoLiveDate
: date au format"11 Dec 2021 13:00:00 CST"
à partir de laquelle le mint est possible. Mettre"now"
si vous voulez que le mint soit possible à partir du moment où la Candy Machine est crééeendSettings
: date ou quantité de NFTs mintés après quoi la Candy Machine est fermée et le mint plus possible.
Si vous voulez terminer le mint à une date précise, ajoutez les lignes suivantes :
{
"endSettingType": { "date": true },
"value": "date au format “11 Dec 2021 13:30:00 CST”"
}
Si vous voulez terminer le mint après une certaine quantité de NFTs vendue, ajoutez les lignes suivantes :
{
"endSettingType": { "amount": true },
"value": quantité voulue
}
whitelistMintSettings
: paramètres de la whitelist. Vous pouvez ici ajouter des options pour burn ou non le token de whitelist, ajouter un discount sur le prix du mint, faire une pre-sale,…Si vous souhaitez ajouter une whitelist uniquement pour faire une prévente (c'est à dire permettre aux personnes whitelistées de mint avant la date définie dans
goLiveDate
), que le token de whitelist soit brulé à chaque fois (un token permet ainsi de mint une seule fois) et qu'une fois la vente publique lancée, les whitelistés n'ont pas d'avantages, renseignez les paramètres suivants:
"whitelistMintSettings": {
"mode" : { "burnEveryTime": true },
"mint" : "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf",
"presale" : true,
"discountPrice" : null
}
En renseignant dans mint
l'adresse du token de whitelist. Vous pouvez apprendre à créer un token de whitelist ici.
Si vous souhaitez ajouter une whitelist pour une prévente (c'est à dire permettre aux personnes whitelistées de mint avant la date définie dans
goLiveDate
), que le token de whitelist soit brulé à chaque fois et que la whitelist permette d'avoir une réduction (une fois la vente publique lancée, les whitelistés garde la réduction sur le prix du mint), renseignez les paramètres suivants:
"whitelistMintSettings": {
"mode" : { "burnEveryTime": true },
"mint" : "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf",
"presale" : true,
"discountPrice" : 0.5
}
En renseignant dans mint
l'adresse du token de whitelist et dans discountPrice
le prix que les whitelistés vont payer.
Si vous souhaitez ajouter une whitelist pour une prévente (c'est à dire permettre aux personnes whitelistées de mint avant la date définie dans
goLiveDate
), que le token de whitelist ne soit pas brulé à chaque fois (un token de whitelist permet de mint plusieurs NFTs) et que la whitelist permette d'avoir une réduction (une fois la vente publique lancée, les whitelistés garde la réduction sur le prix du mint), renseignez les paramètres suivants:
"whitelistMintSettings": {
"mode" : { "neverBurn": true },
"mint" : "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf",
"presale" : true,
"discountPrice" : 0.5
}
En renseignant dans mint
l'adresse du token de whitelist et dans discountPrice
le prix que les whitelistés vont payer.
Si vous souhaitez ajouter une whitelist où le token de whitelist n'est pas brulé à chaque fois (un token de whitelist permet de mint plusieurs NFTs) et que la whitelist permette d'avoir une réduction (Ici, la whitelist permet seulement d'avoir une réduction sur le prix du mint), renseignez les paramètres suivants:
"whitelistMintSettings": {
"mode" : { "neverBurn": true },
"mint" : "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf",
"presale" : false,
"discountPrice" : 0.5
}
En renseignant dans mint
l'adresse du token de whitelist et dans discountPrice
le prix que les whitelistés vont payer.
Si vous souhaitez que le mint soit uniquement destiné aux personnes whitelistées, renseignez les paramètres suivants:
"whitelistMintSettings": {
"mode" : { "burnEveryTime": true },
"mint" : "7nE1GmnMmDKiycFkpHF7mKtxt356FQzVonZqBWsTWZNf",
"presale" : false,
"discountPrice" : null
}
En renseignant dans mint
l'adresse du token de whitelist.
hiddenSettings
: si vous comptez mint plus de 20k NFTs, considérez cette option. Etant également assez spécifique, je vous renvoie vers la documentation de Metaplex disponible ici afin d’en savoir plus.
Pour les autres points, la documentation ne donne pas de détails sur leur utilité et le champ des possibles permis. Laissez donc les valeurs par défaut.
Une fois le fichier config.json
modifié vous pouvez uploader vos NFTs. Pour cela, lancez tout d’abord plusieurs fois la commande cd..
afin de retourner dans votre fichier local de développement.

Pour Windows
Uploadez ensuite vos NFTs avec la commande :
ts-node chemin_d_accès_candy-machine-v2-cli.ts upload ./assets -e devnet -k <PATH_keypair.json> -cp <PATH_config.json>
Avec :
chemin_d_accès_
candy-machine-v2-cli.ts
qui est le chemin qui pointe vers l’endroit où est situé le fichiercandy-machine-v2-cli.ts
.Pour trouver ce chemin d’accès, déroulez sur Visual Studio Code l’arborescence de
js
puispackages
,cli
et enfinsrc
. Faites ensuite un clic-droit sur le fichiercandy-machine-v2-cli.ts
puisCopy Path
. Ce chemin d’accès devrait ressembler à ce qui suit :C:\Users\...\metaplex\js\packages\cli\src\candy-machine-v2-cli.ts
<PATH_keypair.json>
le chemin qui pointe vers l’endroit où est situé le fichierkeypair.json
créé au chapitre Créer un wallet Solana<PATH_config.json>
le chemin qui pointe vers l’endroit où est situé le fichierconfig.json
Ainsi, dans mon cas cette commande est :
ts-node D:\Metaplex\Tuto_CandyMachine\metaplex\js\packages\cli\src\candy-machine-v2-cli.ts upload ./assets -e devnet -k D:\Metaplex\Tuto_CandyMachine\keypair.json -cp D:\Metaplex\Tuto_CandyMachine\metaplex\js\packages\cli\src\config.json
Pour MAC
Uploadez ensuite vos NFTs avec la commande :
ts-node ~/DOSSIER_LOCAL_DEVELOPPEMENT/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts upload ./assets -e devnet -k <PATH_keypair.json> -cp <PATH_config.json>
Avec :
DOSSIER_LOCAL_DEVELOPPEMENT
le nom du dossier dans lequel vous avez téléchargé le code de Metaplex<PATH_keypair.json>
le chemin qui pointe vers l’endroit où est situé le fichierkeypair.json
créé au chapitre Créer un wallet Solana<PATH_config.json>
le chemin qui pointe vers l’endroit où est situé le fichierconfig.json
Une fois la commande lancée, vous aurez un résultat similaire à la figure suivante :

Dans ces lignes se trouve la clé publique de la configuration de votre Candy Machine. Copiez-la et collez-la dans un fichier texte car vous en aurez besoin pour la suite.
Vérifier l'upload
Vos NFTs devraient maintenant être uploadés sur la blockchain. Pour le vérifier, appuyez sur la flèche du haut de votre clavier pour faire apparaitre la commande précédemment utilisée. Dans cette commande remplacez upload
par verify_upload
supprimez ./assets
et tout ce qui suit à partir de – cp
puis appuyez sur « Entrée ».
Ainsi, dans mon cas cette commande est :
ts-node D:\Metaplex\Tuto_CandyMachine\metaplex\js\packages\cli\src\candy-machine-v2-cli.ts verify_upload -e devnet -k D:\Metaplex\Tuto_CandyMachine\keypair.json
Si vous avez le message suivant alors vous pouvez passer au chapitre suivant :

Sinon, réexécutez de nouveau la commande pour recommencer l’upload.
Last updated