Comment créer une cryptomonnaie : Exemple sur Solana (SOL) – Tutoriel complet

Après avoir appris à vous créer un wallet Phantom dédié à la finance décentralisée sur Solana, puis après vous avoir expliqué comment suivre vos différents investissements sur cette curieuse DeFi avec Sonar Watch, il fallait que je passe à la vitesse supérieure. Certains diront que ce tutoriel aura un peu des allures d'un dépassement drifté sur un quatre voies autoroutier un 15 août de retour de vacances, mais tant pis : aujourd'hui, je vais vous apprendre à émettre votre propre cryptomonnaie sur le réseau Solana. Comme vous allez le voir, même si le processus est loin d'être ultra complexe, il va tout de même vous falloir avoir recours à un peu de ligne de commande : mais pas de panique, en théorie (et, espérons, en pratique), il vous suffira de copier/coller les différentes commandes de ce tutoriel, en les adaptant à l'occasion à votre propre situation.

Alors, prêts à vous lancer dans la course aux meme tokens ? Si vous avez une idée de génie, et envie d'aller battre le Dogecoin (DOGE) et son alter-égo un peu retardé le Shiba Inu (SHIB), suivez-moi dans la création d'une nouvelle cryptomonnaie pas comme les autres, sur Solana !

Cet article n’est pas sponsorisé : il s’inscrit dans mes expérimentations spontanées sur la DeFi de Solana, menées de façon totalement degen.

Les pré-requis pour émettre votre cryptomonnaie sur Solana

Avant de se lancer dans cette drôle d'entreprise qu'est l'émission d'une nouvelle cryptomonnaie, et de vous pouvoir vous rêver - quelques secondes - en nouveau Vitalik Buterin du shitcoin à tête d'animal chelou, il va falloir s'assurer que vous ayiez installé les outils nécessaires aux quelques bricolages auxquels nous allons nous livrer.

Le présent tutoriel est pensé en premier lieu pour les utilisateurs de Mac (et dans mon cas, d'un Mac M1 avec quelques particularités structurelles), mais de rapides recherches vous permettront de l'adapter quand cela sera nécessaire à votre système d'exploitation s'il est différent.

Pour commencer, ouvrez un terminal de commande (souvent simplement appelé Terminal).

A l'intérieur de ce joyeux terminal, nous allons lancer un certain nombre de commandes, qu'il vous suffit de copier/coller, pour s'assurer d'être équipés pour la suite de l'aventure. Pour pouvoir exécuter les commandes utiles, il va d'abord nous falloir installer proprement Homebrew, la référence sur Mac pour tout ce qui concerne la gestion de paquets (logiciels).

Pour ce faire, assurons-nous de repartir d'une installation propre, en désinstallant une précédente installation aventureuse de l'outil que vous auriez pu tenter, puis en installant de zéro Homebrew.

Pour ce faire, taper les commandes suivantes dans le terminal :

/bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh>)"
git config --global core.compression 0
git config --global http.postBuffer 1048576000
/bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/master/install.sh>)"

Ensuite, entrez les commandes suivantes :

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/VOTRE_NOM_USER/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Ensuite, installons certains des outils dont nous aurons besoin plus loin, notamment Rust, OpenSSL, npm ou encore yarn. Pour le cas d'un Mac M1, il faudra rajouter l'architecture arch -x86_64 avant les commandes utiles - si vous êtes donc sur un Mac non M1, appliquez les mêmes commandes qu'en suivant, mais sans le arch -x86_64 introductif.
Commençons par installer OpenSSL, puis l'ensemble Rust (et Cargo) :

arch -x86_64 brew install [email protected]curl https://sh.rustup.rs -sSf | sh $ source $HOME/.cargo/env $ rustup component add rustfmt
rustup update

Un message va s'afficher pour vous féliciter de l'installation réussie, si tout s'est bien passé.

Ensuite, installons npm et yarn, qui nous permettront juste après de récupérer et d'installer les paquets solana, à proprement parler :

arch -arm64 brew install node
arch -arm64 npm install --global yarn
arch -arm64 npm install -g [email protected]

Diverses choses peuvent s'afficher pendant ces installations, mais normalement tout se passe bien. Vérifiez la bonne installation avec un --version, avec la commande suivante :

yarn --version

Maintenant, installons les pré-requis pour jouer à l'apprenti sorcier développeur sur Solana, avec les commandes suivantes :

yarn add @solana/web3.js
yarn add @solana/spl-token
yarn add @solana/wallet-adapter-wallets \ @solana/wallet-adapter-base

Une fois ceci fait, par souci de tranquillité, et parce qu'il semblait que j'avais quelques soucis avec cargo, l'utilitaire utilisé pour récupérer la dernière version des outils solana, en cas de besoin, utilisez les commandes suivantes pour vous assurer de la bonne installation des outils Rust et Cargo, et pour dire à votre terminal de se placer dans le bon répertoire :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

Ensuite, allez chercher le numéro de la dernière release officielle de Solana, dans le GitHub officiel : https://github.com/solana-labs/solana/releases ; en prenant garde à choisir une release Mainnet, et de préférence la dernière stable (à l'heure actuelle, la v1.8.10).

sh -c "$(curl -sSfL https://release.solana.com/NuméroDeVersion/install)"
Téléchargez la dernière version du client Solana sur le Mainnet

A titre personnel, j'ai téléchargé la dernière pré-version de mainnet disponible :

sh -c "$(curl -sSfL https://release.solana.com/v1.8.9/install)"

Ensuite, dites à votre terminal de se placer avec les bons droits, dans le bon répertoire :

export PATH="/Users/VOTRE NOM D'UTILISATEUR/.local/share/solana/install/active_release/bin:$PATH"

Donc, me concernant :

export PATH="/Users/greg/.local/share/solana/install/active_release/bin:$PATH"

Puis vérifier que tout s'est bien passé en vérifiant la version de Solana disponible et installée :

solana --version

Si tout va bien, vous devriez voir précisé la version de solana installée sur votre ordinateur.

Vérifiez la dernière version de Solana installée sur votre ordinateur

Vous êtes donc prêts pour passer aux choses sérieuses !

Créer et émettre votre cryptomonnaie sur Solana

Installer votre wallet Solana en ligne de commande

Maintenant que nous sommes équipés en outils Solana, nous pouvons passer au coeur du sujet : vous permettre de créer et de générer votre propre cryptomonnaie sur Solana. Pour ce faire, finalisons l'installation du client Solana avec la commande suivante :

solana-install update

Puis, dans la joie et la bonne humeur, générons un wallet en ligne de commande (notre wallet CLI, pour command line interface) :

solana-keygen new
Créez un wallet en ligne de commande directement depuis votre terminal

Votre terminal va donc générer un wallet Solana. Précisez si vous le souhaitez une passphrase, ou pas, puis vous obtiendrez une clé publique (PubKey) qui correspond à votre adresse de réception publique et que vous pouvez utiliser pour recevoir du Solana (SOL), ainsi qu'une seed de 12 mots qui correspond à votre clé privée (et qui donne l'accès intégral aux fonds stockés à l'avenir sur ce wallet). Dans mon cas, cette adresse prend la forme suivante, que je raccourcis volontairement par commodité, mais que vous aurez en version intégrale comme dans le terminal illustré ci-dessus :

F8fR(...)udtqz

Vérifiez le solde de ce compte vide avec la commande suivante :

solana balance AdresseWalletCLI

Ce qui dans mon cas donnera :

solana balance F8fR(...)udtqz

Envoyez un peu de SOL (idéalement 0.1 SOL) sur cette adresse depuis votre compte FTX ou depuis votre wallet (Phantom, Sollet, ou autre), puis réutilisez cette commande pour vérifier la bonne arrivée des fonds.

Installer les outils solana SPL et générer votre cryptomonnaie sur Solana

Maintenant, installons les outils solana dédiés aux tokens SPL, l'équivalent des jetons ERC-20 d'Ethereum pour Solana. Utilisez la commande suivante :

cargo install spl-token-cli

Maintenant, créons le token à proprement parler, ou à tout le moins préparons-nous à l'inscrire dans la blockchain Solana :

spl-token create-token 

Cette commande va créer le token et une adresse correspondante AdresseToken, dans mon cas :

3BQ(...)mBTX

Vérifions la balance de votre adresse initiale pour voir que du Solana a été consommé par cette opération :

solana balance AdresseWalletCLI

C'est pour cela qu'il vous fallait déposer un peu de SOL en début de tutoriel, car chaque étape ou presque de la création de votre cryptomonnaie engendrera quelques frais en SOL.

Pour continuer, associons une adresse de compte AdresseCompte à cette adresse de token, à l'aide de la commande suivante :

spl-token create-account AdresseToken

Ce qui chez moi donnera :

spl-token create-account 3BQ(...)mBTX

Vous allez donc obtenir une nouvelle adresse (ne partez pas en courant, ça va bien se passer !). Cette AdresseCompte aura chez moi la forme suivante :

J7hc(...)W1LE6

Vérifiez le solde de votre AdresseToken :

solana balance AdresseToken

Enfin, générez les jetons qui constitueront les unités de votre cryptomonnaie, à l'aide de la commande suivante :

spl-token mint AdresseToken NombreDeTokens AdresseCompte

Ainsi, pour générer 10 unités de ma propre cryptomonnaie, de mon côté, j'utilise la commande de cette façon :

spl-token mint 3BQ(...)mBTX 10 J7hc(...)W1LE6

Puis, après quelques validations de transactions, et une fois les tokens générés, il va nous falloir nous assurer que plus personne ne pourra créer de nouvelles unités à ce token. Pour ce faire, désactivez le mint avec la commande suivante :

spl-token authorize AdresseToken mint --disable

Chez moi, sous cette forme :

spl-token authorize 3BQ(...)mBTX mint --disable

Vérifiez que la cryptomonnaie en question est bien présente en vérifiant tous les comptes SPL locaux avec la commande suivante :

spl-token accounts

Maintenant, envoyons les mystérieux tokens sur un wallet plus facile d'accès, comme Phantom, à l'aide de la commande suivante :

spl-token transfer --fund-recipient AdresseToken NombreDeTokens AdresseWalletPhantomRéception

Ce qui chez moi donnera :

spl-token transfer --fund-recipient 3BQ(...)mBTX 10 EKyNT(...)GJDwo2XEk

Ensuite récupérez vos restes de SOL depuis votre wallet en ligne de commande vers votre wallet Phantom :

solana transfer AdresseWalletPhantomRéception MontantSOLàRécupérer --from /Users/VOTRE NOM D'UTILISATEUR/.config/solana/id.json

Et voilà, vous devriez avoir reçu de curieux jetons au nom long, complexe et peu engageant, et apparaissant sans logo dans votre wallet Phantom. Pas de panique, dans la seconde partie de cet article, nous avons maintenant graver dans la blockchain Solana le nom et le logo de votre cryptomonnaie, afin que tout le monde puisse en profiter... si l'on peut dire !

Lister la cryptomonnaie créée sur Solana

Vous l'aurez compris, vous avez fait le plus dur... mais ce n'est pas fini ! Il va maintenant falloir soumettre au réseau Solana le nom et le logo de votre précieuse nouvelle cryptomonnaie. Mais comment faire ? Eh bien, en allant batailler directement sur votre ordinateur... et sur le GitHub de Solana ! De quoi - presque - vous sentir l'âme d'un développeur open source de légende, peut-être pas, mais certainement de quoi vous occuper encore un peu !

Préparer votre crypto localement

Revenez à votre terminal de commande, et récupérer le répertoire officiel contenant tous les tokens émis sur la blockchain Solana, à l'aide de la commande suivante :

git clone <https://github.com/solana-labs/token-list>

Retrouvez ensuite ce nouveau dossier sur votre ordinateur, et ouvrez-le, pour pour aller créer un répertoire dédié à votre nouvelle cryptomonnaie directement à l'intérieur et dans un dossier dédié. Pour ce faire, rendez-vous dans le dossier token-list/assets/mainnet/

Créez un répertoire dont le nom sera l'adresse de compte utilisée pour générer votre crypto

Ici, créez un dossier dont le nom sera AdresseCompte, l'adresse de compte utilisée pour générer votre crypto. Rappelons, pour l'exemple, que dans mon cas il faudra donc renommer le fichier : 3BQ(...)mBTX

Concevez puis copiez le logo de votre crypto au format .png dans ce répertoire nouvellement créé, sous le nom de logo.png. Pour ma cryptomonnaie, j'ai personnellement donc choisi de m'inspirer du lamentable Shiba Inu, mais de le rendre à la fois un plus fun et un peu funky.

Le magnifique logo du Sharki Inu ($SHARKI)
Le magnifique logo du Sharki Inu ($SHARKI)

J'ai donc pu demander à Swann, le graphiste du JDC, de concevoir ce logo qui envoie du poney, avant de le copier dans le répertoire en question.

Attention cependant : veillez à compacter votre logo au besoin, car sa taille ne devra pas dépasser les 200ko si vous voulez pouvoir l'intégrer à la blockchain Solana.

Exemple d'erreur plus tard dans le processus, si votre logo pèse trop lourd
Exemple d'erreur plus tard dans le processus, si votre logo pèse trop lourd

Si vous vous en êtes sortis jusque là, continuons ! Ouvrez token-list/src/tokens/solana.tokenlist.json avec un éditeur de texte pour ajouter votre token et ses caractéristiques à la longue liste des tokens de Solana, en l'espèce avec un :

{ "chainId": 101, "address": "AdresseCompte", "symbol": "SymboleDeVotreCrypto", "name": "NomDeVotreCrypto", "decimals": 0, "logoURI": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/AdresseCompte/logo.png", "tags": [ "social-token", ] },

Pensez bien à rajouter cet élément à la toute fin de la liste sans modifier les autres cryptomonnaies de la très longue liste. Ajoutez bien votre AdresseCompte, le symbole de votre crypto et son nom, ainsi que l'AdresseCompte dans le chemin de destination vers le logo. Enfin, décidez du type de token de votre cryptomonnaie : personnellement, devant l'inutilité finie de ma crypto requin et de son nombre d'unités très limité (10, so much rare, bro), j'ai choisi un social token (social-token), mais il est possible de générer un jeton utilitaire (utility-token) ou un coin à proprement parler (coin).

Pour illustrer, me concernant, j'ai donc rajouté cette mention :

{ "chainId": 101, "address": "3BQ(...)fdmBTX", "symbol": "SHARKI", "name": "Sharki Inu", "decimals": 0, "logoURI": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/3BQCm29nq5TincBd3bGrJGu5GJxyxoi43fMUsKfdmBTX/logo.png", "tags": [ "social-token", ] },
Rajoutez la mention adaptée pour faire reconnaître votre cryptomonnaie par le réseau Solana

C'est maintenant que les choses se compliquent un poil !

Intégrer votre cryptomonnaie au dépôt Solana officiel sur GitHub

En effet, il va falloir forker le répertoire Github de Solana et de ses tokens avec un compte GitHub créé pour l'occasion. Pour ce faire, suivez juste le guide ;)

Créez-vous un compte sur GitHub, pour commencer.

Créez votre compte sur GitHub

Une fois ceci-fait, connectez-vous et rendez-vous sur le projet Solana, dans le répertoire de la liste des tokens, solana-labs/token-list.

Forkez le projet dans votre propre espace personnel, en cliquant simplement sur le bouton Fork, en haut à droite :

Forkez le token-list de Solana sur GitHub

Avant de poursuivre et de revenir à quelques manipulations en ligne de commande, il va falloir aller régler l'accès aux permissions de votre compte GitHub : nous allons en effet faire quelques bricolages depuis le terminal, et vous aurez besoin de vous identifier avec votre compte GitHub à l'aide d'un personal access token. Pas de panique, je vous explique !

Rendez-vous dans les paramètres de votre compte GitHub :

Recherchez et cliquez sur l'icône de "Developer settings" :

Cliquez sur "Personal access tokens" :

Rendez-vous dans le menu de génération d'un personal access token en cliquant sur "Generate new token". De là, en théorie, vous n'avez pas besoin de donner un accès complet en cochant tout, mais à titre personnel j'ai rencontré des difficultés de droits par la suite si je ne le faisais pas. Cochez donc la totalité des cases disponibles, puisque de toute façon votre compte GitHub est un compte très probablement créé pour l'occasion. Nommez cette clé comme vous le souhaitez, et donnez-lui une validité limitée (par exemple 7 ou 31 jours de validité).

Validez l'opération en cliquant sur le bouton vert "Generate token", puis copiez/collez et stockez la clé obtenue, qui aura la forme d'une longue suite de chiffres et de lettres.

Ce mot de passe complexe nous sera utile en suivant, pour soumettre notre version modifiée de la liste de tokens du réseau Solana... au réseau Solana, sur GitHub.

Justement, rouvrez votre terminal, et entrez la ligne de commande suivante pour vous replacer dans votre fichier local modifié :

cd token-list

Ensuite, rentrez dans le terminal la commande suivante, vous permettant de lui préciser où trouver les fichiers locaux à envoyer au GitHub de Solana.

git remote set-url origin <https://github.com/><VOTRE NOM D'UTILISATEUR GITHUB>/token-list

Ce qui dans mon cas a donné :

git remote set-url origin <https://github.com/gregJDC/token-list>

Ensuite, les commandes à venir vont tour à tour préparer la soumission de votre modification au GitHub de Solana (un commit), mais aussi l'envoyer au GitHub au question.

git add .
git commit -m "first commit for <SYMBOLE DE VOTRE TOKEN & SON NOM COMPLET>"

Dans mon cas, cela aura donc donné :

git commit -m "first commit for SHARKI Sharki Inu"

Avant de poursuivre, je précise que j'ai eu quelques soucis avec la commande suivante, qui ne voulait pas s'enclencher. Elle est censée vous permettre d'envoyer votre fichier modifié des tokens de Solana au GitHub de Solana. Lorsque vous l'aurez validée, il vous faudra fournir au terminal votre identifiant GitHub, et le mot de passe (et c'est là que vous allez copier/coller le personal access token généré précédemment, qui correspond à votre mot de passe en ligne de commande pour GitHub).

Fournissez votre mot de passe GitHub pour vous connecter en CLI

Entrez donc la commande suivante :

git push origin main

Si vous avez de la chance, tout va se passer normalement, et vous n'aurez pas à entrer les prochaines commandes spécifiques, que je précise car elles m'ont permis de débloquer la situation. Si vous n'obtenez pas tranquillement les messages de la capture d'écran précédente, pas de panique, entrez dans l'ordre les commandes suivantes :

git fetch origin main
git merge origin master

Il est alors possible qu'un ennui supplémentaire se présente : pour merge, le terminal peut vous demander de commenter un fichier texte en vous propulsant dans l'éditeur de texte vim (que je déteste tout simplement). Si c'est le cas, ne hurlez pas : entrez une bêtise, puis servez-vous de ce guide pour sortir de l'éditeur sans dommage, car en réalité ce texte ne sert à rien et n'a pas d'impact sur la soumission de votre dossier à GitHub.

Seulement alors vous pourrez rentrer la commande fatidique git push origin main, et là, tout marchera comme par magie, ou presque.

Vous venez de télécharger vos modifications vers votre répertoire GitHub personnel, transformant ainsi votre fork du token-list de Solana en une version intégrant votre propre cryptomonnaie.

Ensuite, laissez votre terminal pour revenir au GitHub de Solana dans votre navigateur. Rendez-vous dans le répertoire officiel de Solana token-list.

Cliquez sur "New pull request" :

Créez une nouvelle pull request sur le GitHub de Solana

Sur le menu suivant, affichez une comparaison entre le fichier principal et classique actuellement hébergé comme référence sur le GitHub Solana et votre dossier local en sélectionnant à droite head repository: VOTRE NOM D'UTILISATEUR/token-list :

Comparez votre fichier modifié et le fichier principal utilisé par Solana

Vérifier que les modifications sont bien présentes, c'est-à-dire la précision d'un first commit, éventuellement le commentaire textuel si vous l'avez fait, et dans les fichiers modifiés (files changed) si le logo et le dossier créé en local pour l'accueillir apparaissent bien.

Ensuite, cliquez sur create pull request

Donnez un titre "Adding NOM DU TOKEN token", et ne modifiez rien à la pull request automatiquement générée avec des sections standard, car son contenu n'a pas d'importance tant qu'il n'est pas modifié.

Validez, et...

Attendez pour que le bot vous liste officiellement 🙂 Après quelques minutes, un bot va passer scanner votre pull request, et si vous avez correctement suivi le présent tutoriel, il devrait vous préciser que tout va bien, et que vous êtes admissibles à un automerge - c'est-à-dire une intégration automatique à la prochaine release automatique de la liste des tokens émis sur Solana, au sein de la blockchain de Solana.

L'automerge : une belle victoire après toutes ces aventures sur Solana !

Vous pouvez maintenant utiliser Solscan, et vérifier avec plusieurs outils de traking : si tous n'arriveront étrangement pas forcément à intégrer votre cryptomonnaie à la volée, Solscan vous permettra de constater que votre token existe désormais bel et bien, et que son logo aussi lui est bien rattaché !

Aperçu de ma cryptomonnaie SHARKI sur Solscan

Précisons pour conclure que, par exemple, tout marche sur Solscan pour moi, mais pas sur d'autres explorers de Solana ; de même que certains aggrégateurs de wallets voient ma crypto d'office, alors que mon wallet Phantom ne voit pas la modification - alors que les wallets Phantom de collègues à qui j'ai envoyé mon précieux token l'affichent correctement ! Mais au delà de ces quelques petits désagréments, l'expérience est une réussite : vous venez de générer votre propre cryptomonnaie sur Solana !

Vous pouvez ensuite partager votre magnifique crypto en l'envoyant aux adresses de réception de vos amis ou collègues assez fous pour en vouloir :

Un Sharki Inu (SHARKI) sauvage apparaît dans votre wallet !

Et ainsi s'achève ce tutoriel, complexe mais en même temps assez sympa : vous êtes donc désormais en théorie capable de générer votre propre cryptomonnaie sur la blockchain de Solana, avec un peu de SOL, de patience... et d'huile de coude !

Pour conclure, la morale de l'histoire : vous aurez constaté ici de votre propre yeux que pour créer une cryptomonnaie aujourd'hui (et en l'espèce sur Solana, mais c'est applicable à bien d'autres blockchains), il n'y a pas besoin d'être un génie. Le tout prend entre 5 minutes à 2 heures, selon le degré de flemme et de maîtrise technique (ou non) de celui qui veut la créer.

Pensez-y, la prochaine fois que vous croiserez quelqu'un qui veut vous vendre le "prochain Bitcoin" et qui vous demande de lui donner votre argent parce qu'il a créé une "cryptomonnaie révolutionnaire" ;)

Grégory Mohet-Guittard

Je fais des trucs au JDC depuis 2018. En ce moment, souvent en podcast et la tête dans le nuage.

Recevez un condensé d'information chaque jour