# 2. Configurer le projet

## Créer le fichier de configuration JSON

Avant de créer le fichier de configuration JSON qui regroupe les informations concernant votre collections (nom de la collection, auteur, royalties, rareté des traits, etc…), copiez-collez le dossier qui comporte tous les traits de vos NFTs dans le dossier situé à l’adresse `metaplex/js/packages/cli`

![Copier-coller le dossier comportant les traits](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2FzsC4eAm1db7w9LNkbZT4%2Fimage.png?alt=media\&token=c56b8bcb-63b0-4bfd-a664-16006fe63b69)

Créez enfin le fichier de configuration JSON avec la commande :

### Pour windows

```
ts-node chemin_d_accès_candy-machine-cli.ts generate_art_configurations ./Nom_du_dossier_comportant_les_traits
```

Avec :&#x20;

* `chemin_d_accès_`*`candy-machine-cli.ts`* qui est le chemin qui pointe vers l’endroit où est situé le fichier `candy-machine-cli.ts`.

  Pour trouver ce chemin d’accès, déroulez sur Visual Studio Code l’arborescence de *`js`* puis *`packages`*, *`cli`* et enfin *`src`*. Faites ensuite un clic-droit sur le fichier *`candy-machine-cli.ts`* puis *`Copy Path`*. Ce chemin d’accès devrait ressembler à ce qui suit : \
  \
  \&#xNAN;*`C:\Users\...\metaplex\js\packages\cli\src\candy-machine-cli.ts`*
* *`Nom_du_dossier_comportant_les_traits`* qui est le nom du dossier qui comporte tous les traits de vos NFTs et que vous avez copié-collé précédemment. Dans mon cas, ce dossier s’appelle `traits`

Ainsi, dans mon cas cette commande est :&#x20;

```
ts-node D:\Metaplex\GenerativeART\metaplex\js\packages\cli\src\candy-machine-cli.ts generate_art_configurations ./traits
```

### Pour MAC

```
ts-node ~/DOSSIER_LOCAL_DEVELOPPEMENT/metaplex/js/packages/cli/src/candy-machine-cli.ts generate_art_configurations ./Nom_du_dossier_comportant_les_traits
```

Avec :&#x20;

* *`DOSSIER_LOCAL_DEVELOPPEMENT`* le nom du dossier dans lequel vous avez téléchargé le code de Metaplex
* *`Nom_du_dossier_comportant_les_traits`* qui est le nom du dossier qui comporte tous les traits de vos NFTs et que vous avez copié-collé précédemment. Dans mon cas, ce dossier s’appelle `traits`

## Modifier le fichier de configuration JSON

Le fichier de configuration JSON créé, il faut maintenant le modifier avec les informations concernant votre collection. Pour cela, ouvrez le fichier qui a été créé.

![Ouvrir le fichier de configuration JSON créé](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2FPzf1CKVnTpbIqv8WO93z%2Fimage.png?alt=media\&token=8d327641-c906-4bc1-ab50-24d94e4e0412)

Pour faciliter la modification, faites `MAJ+ALT+f` pour formater le fichier.

![Fichier une fois formaté](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2F4GcHn9UZpW7YzdXmLqrq%2Fimage.png?alt=media\&token=aa756d84-26d5-4fb7-bc71-d0d25d5addae)

Dans ce fichier modifiez les champs suivants :&#x20;

* *`name`*: nom de vos NFTs
* *`symbol`*: symbole de vos NFTs à l’instar des symboles des tokens. Pour l’instant, celui-ci n’est pas affiché mais remplissez quand même ce champ
* *`description`* : description de vos NFTs
* *`creators`*: copiez-collez les lignes suivantes en faisant attention de bien copier les accolades et de coller entre les crochets :&#x20;

```json
{
    "address": "votre adresse solana",
    "share": 100
}
```

Renseignez dans *`address`* l’adresse qui va recevoir les royalties des ventes sur le marché secondaire et dans *`share`* le pourcentage des frais perçus (100 correspond à 100%).

Vous pouvez renseigner ici autant de créateurs que vous le souhaitez. Pour cela, copiez-collez plusieurs fois le bloc du dessus en faisant attention de rajouter une virgule après la dernière accolade comme ceci :

```json
"creators": [
    {
      "address": "ALGnJhbN4CZQ61NZQRrvHaoQyUcUv6s46L9pVDZJE9J4",
      "share": 60
      },
      {
        "address": "adresse #2",
        "share": 40
        }   
  ],
```

* *`collection`*: Si le NFT appartient à un groupe d’autres NFTs, vous pouvez les marquer avec un champ de collection supplémentaire qui contient le nom de la collection. Pour cela, copiez-collez les lignes suivantes :

```json
"collection": {
      "name": "Nom de votre collection",
      "family": "Nom du plus grand ensemble auquel appartient votre collection"
  },
```

Renseignez dans *`name`*&#x6C;e nom de votre collection. Si votre collection appartient à un ensemble de NFTs plus grand, par exemple si vous faites plusieurs variations d’un thème, vous pouvez ajouter dans *`family`* le nom de cet ensemble.

* *`breakdown`* : Vous retrouvez ici les différents traits que possèdent vos NFTs ainsi que les attributs qu’ils peuvent prendre. A droite de chaque attribut vous retrouvez le poids de la rareté de cet attribut. Plus ce poids est faible, plus l’attribut associé est rare. Vous devez donc jouer avec ces poids pour obtenir la rareté souhaitée. Ce poids est un pourcentage ainsi 0.01 correspond à 1%, 0.35 à 35%, etc...

![Assigner une rareté à chaque attribut](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2F5hnTR2saIyForhG7CLxY%2Fimage.png?alt=media\&token=cc746ae0-e200-4da8-b775-a074e6305e83)

*`order`*: cette section détermine l’ordre dans lequel les couches, et donc vos traits, qui composent votre NFT est assemblé. Les couches seront assemblées de haut en bas (background en 1er, skin en 2ème, etc…). Veillez donc à ce que l’ordre soit le bon afin d’éviter qu’un trait en cache un autre.

![Couches dans le bon ordre](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2FKZXxYxnU5MoSBE3vtYf7%2Fimage.png?alt=media\&token=2cc7379e-24ae-418e-b0c8-07df0b774810)

![Couches pas dans le bon ordre](https://3811890722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyUHtDtFK1E3oLCjuTJl%2Fuploads%2F8JJRdzAU8g1OmQNasdAu%2Fimage.png?alt=media\&token=40f04c56-c0b8-472e-8403-084e49d5e1e1)

* *`width`* et *`height`* : correspond respectivement à la largeur et à la hauteur en pixel de vos NFTs.

Enfin, rajoutez après la ligne *`description`*, la ligne suivante :&#x20;

```json
"seller_fee_basis_points": 500, //500 correspond à 5%, 10000 à 100% etc
```

Cette ligne va vous permettre de définir le pourcentage de royalties que vous allez toucher sur les ventes du marché secondaire. Pour cela, ajoutez après les deux points le pourcentage de royalties souhaité sachant que 10000 correspond à 100% de royalties. Par exemple, si vous souhaitez toucher 5% de royalties, il faut mettre 500.

Si votre collection possède un site internet, vous pouvez l’ajouter dans les métadonnées. Pour cela, rajoutez la ligne suivante après la ligne précédente :&#x20;

```json
"external_url": "https://votresiteinternet.com",
```

Vous pouvez également ajouter d’autres métadonnées à vos données mais ceux-ci étant plus spécifiques à certains projets je vous laisse lire la documentation de Metaplex disponible [ici](https://docs.metaplex.com/nft-standard).

Une fois toutes vos modifications apportées, sauvegardez en faisant `ctrl+s`.

A la fin votre fichier de configuration devrait ressembler au code suivant :&#x20;

```json
{
  "name": "Generative Otter #",
  "symbol": "gOTTER",
  "description": "Generative Otter NFT made for a tutorial about Metaplex Candy Machine",
  "seller_fee_basis_points": 500,
  "external_url": "bit.ly/CandyMachine",
  "creators": [
    {
      "address": "ALGnJhbN4CZQ61NZQRrvHaoQyUcUv6s46L9pVDZJE9J4",
      "share": 60
      },
      {
        "address": "adresse #2",
        "share": 40
        }   
  ],
  "collection": {
      "name": "Cute Otter",
      "family": "Otter Crypto Universe NFT"

  },
  "breakdown": {
    "Background": {
      "Blue.png": 0.4,
      "Green.png": 0.3,
      "Lavender.png": 0.06,
      "Pink.png": 0.1,
      "Solana.png": 0.02,
      "Yellow.png": 0.12
    },
    "Bubble": {
      "Blue.png": 0.05,
      "Green.png": 0.15,
      "Orange.png": 0.30,
      "Red.png": 0.5
    },
    "Crypto": {
      "AVAX.png": 0.15,
      "BNB.png": 0.2,
      "BTC.png": 0.10,
      "DOGE.png": 0.35,
      "ETH.png": 0.15,
      "SOL.png": 0.05
    },
    "Skin": {
      "Alien.png": 0.12,
      "Green.png": 0.2,
      "Original.png": 0.30,
      "Pink.png": 0.25,
      "Solana.png": 0.05,
      "Zombie.png": 0.08
    }  
  },
  "order": ["Background", "Bubble", "Skin", "Crypto"],
  "width": 3000,
  "height": 3000
}
```
