Créer son token et son ICO avec Ethereum
Introduction
Ce chapitre s’adresse aux porteurs de projets souhaitant se financer grâce à une ICO. Ce chapitre est conçu pour donner un premier aperçu du langage de programmation Solidity, langage orienté smart contracts ou contrats intelligents, et pour décrire les quelques étapes nécessaires à l’élaboration d’un token et à la mise en œuvre technique d’une ICO sur le protocole Ethereum. Ce chapitre n’a absolument pas pour vocation de vous apprendre à coder en Solidity ou en JavaScript, mais simplement de vous donner la possibilité d’expérimenter par vous-même les modalités de création d’un token et d’émission de tokens par voie d’ICO.
Focus
Solidity : ce langage informatique permet la mise en place de contrats intelligents (smart contracts). D’après ses créateurs, ce langage est influencé principalement par les langages C++, Python et JavaScript et conçu spécifiquement pour fonctionner avec la machine virtuelle Ethereum (EVM).
Créer à des fins non commerciales un token ERC20 et réaliser une ICO test est en réalité plus simple qu’il n’y paraît. Mais au-delà du test de création qui peut être réalisé grâce à cet ouvrage fondé sur les outils et codes...
Préalable : Utiliser un serveur test
Afin de pouvoir tester votre token et ne pas réaliser une ICO réelle, il est nécessaire d’utiliser un serveur test, par exemple Rinkeby Test Network. La méthode proposée dans ce chapitre pour créer un token et une ICO est une simulation. Pour réaliser ces opérations en mode réel, il suffit d’utiliser des "vrais Ether" et de déployer les contrats non pas sur le Rinkeby Test Network mais sur le Main Ethereum Network.
Il convient en premier lieu de vous connecter à MetaMask (cf. chapitre Créer un portefeuille (wallet) de crypto-actifs), puis de sélectionner le serveur Rinkeby Test Network.
Il existe d’autres serveurs test comme Ropsten ou Kovan, mais avec Rinkeby il est très simple d’obtenir des Ethereum de test.
Ensuite, si vous n’avez pas déjà utilisé le serveur Rinkeby Test Network, il vous faudra détenir des tokens test. Ceux-ci vous sont attribués gratuitement sur demande en vous rendant à l’adresse : https://faucet.rinkeby.io/
Une fois sur cette page, il vous est demandé de publier votre adresse Ethereum sur un réseau social, par exemple Twitter.
Une fois le post réalisé, il suffit de copier l’adresse URL du post dans le champ Rinkeby Authenticated Faucet.
Les Ethers...
Création d’un token
Pour créer un token, accédez à la page https://ethereum.org/token (ou plus précisément https://ethereum.org/token#the-code).
Ce code est un modèle pour créer un token ERC20.
Il convient maintenant de vous rendre sur le site http://remix.ethereum.org/ vous permettant de déployer un code, à partir d’une page web, en langage Solidity.
Il est également possible, si vous souhaitez bénéficier d’un environnement de programmation plus complet, d’installer Truffle (http://truffleframework.com).
Une fois sur le site de Remix, il est préférable de créer un nouveau fichier, par exemple ICOGuideToken.sol (.sol étant l’extension Solidity).
Pour ce faire, cliquez sur l’icône et précisez le nom du fichier.
Ensuite, si vous souhaitez utiliser le modèle proposé par le site d’Ethereum, copiez-le ([Ctrl] C) depuis le site Ethereum et collez-le ([Ctrl] V) sur la page de Remix.
Vous pouvez supprimer les commentaires en vert ou les maintenir, cela ne change rien.
À ce stade, renommez le contrat (contract) et la fonction (function) indiquant le nom de votre token (dans l’exemple, en le remplaçant par ICOGUIDETOKEN).
Avant de compiler, assurez-vous d’être dans la même version que dans ce livre pour pouvoir procéder...
Création d’une ICO
1. Avec l’interface Remix
Avant d’envisager la création d’une ICO, il convient de décider si vous souhaitez créer le token au préalable et approvisionner le contrat qui distribuera vos tokens nouvellement créés contre de l’Ether (dans ce cas, il s’agira plus d’une crowdsale ou vente participative que d’une ICO) ou si, au contraire, vous souhaitez que le token et les conditions de sa distribution soient créés simultanément, sans besoin d’approvisionnement depuis un portefeuille (dans ce cas, il s’agit d’une ICO au sens plein).
Par ailleurs, plusieurs caractéristiques de votre ICO doivent être envisagées, notamment la création préalable d’une Decentralized Autonomous Organization (DAO) pour permettre aux détenteurs de tokens de prendre des décisions au cours de la vente. Le modèle proposé par le site officiel d’Ethereum (https://ethereum.org/crowdsale) est une crowdsale avec DAO (une sorte de DAICO). Le modèle proposé se caractérise également par la fixation d’un hard cap et d’une limite de durée.
Comme dans l’exemple précédent, l’objectif est de créer un token (ou réutiliser le token préalablement créé). Pour cet exemple, j’ai créé un token avec les caractéristiques suivantes :
-
Émission initiale : 10 000 unités
-
Nom : LeFameuxTokenERC20
-
Abréviation : Fameux
Les seules manipulations qui diffèrent de l’exemple précédent de création de tokens sont la désignation du fichier, la désignation des tokens dans le code pour le contrat (contract) et la fonction (function) : remplacez ICOGUIDETOKEN par LeFameuxTokenERC20 et insérez les spécifications à côté du bouton Deploy : 10000, "LeFameuxTokenERC20"," Fameux".
Ensuite, il convient de créer une communauté selon le modèle d’Ethereum.org.
La première étape consiste à copier le code sous The Shareholder Association (https://ethereum.org/dao#the-shareholder-association) et à le coller dans un nouveau fichier dans Remix , nommé...