Davvero stai dicendo che posso emettere la mia moneta personale, magari fare un ICO e fare milioni e milioni di Euro, il tutto impiegando pochi minuti?
Si, forse, ma andiamo con calma…
Sommario
La diffusione delle criptovalute
Negli ultimi mesi termini come criptovaluta, blockchain, Bitcoin, Ethereum, token o ICO stanno diventando sempre più diffusi, così come la conoscenza di un mondo e di una tecnologia che esiste ormai da quasi 10 anni ma che solo nell’ultimo anno, grazie alla crescita esponenziale del valore di Bitcoin&C, è diventato argomento mainstream, con tanto di titoli nei quotidiani, servizi in tv e spazi su tutti gli organi di informazione.
Bolla o non bolla, è alquanto probabile che stiamo vivendo una nuova rivoluzione informatica basata, appunto, sulle blockchain e proprio su una di queste, la blockchain Ethereum e grazie agli Smart Contract, andremo a creare la nostra personale criptovaluta, attraverso una semplice guida passo passo che permetterà di comprendere meglio la tecnologia e ci farà diventare attori della rivoluzione della crypto-economy.
Le uniche competenze richieste saranno una conoscenza di base della terminologia e una certa, e ovvia, dimestichezza con gli strumenti informatici.
Andremo a realizzare un token nello standard ERC20, utilizzerà le funzioni principali e può essere usato come base per progetti più complessi del semplice trasferimento da un wallet all’altro (parecchie ICO “discutibili” utilizzano contracts molto simili).
Ovviamente lo scopo di questo tutorial è puramente didattico; si consiglia quindi la massima attenzione nell’utilizzo dei vostri ETH (che qui non andreamo ad utilizzare veramente).
Per cominciare
Per realizzare il nostro progetto abbiamo bisogno di:
1) Un Ethereum Address (in questo caso del Ropsten Network, test net utilizzata principalmente per verificare il codice prima di immetterlo nella blockchain)
2) Alcuni Ethereum (nuovamente utilizzeremo ETH Ropsten Network quindi nessun costo per ora)
3) Un text editor (Io ho utilizzato Sublime Text ma potete scegliere a piacere)
4) Solidity contract (approfondiremo più avanti)
Ethereum Address
• Per questa guida, come detto, utilizzeremo un test network, Ropsten, per creare il token così da non utilizzare dei veri Ethereum.
Per iniziare vai su MyEtherWallet (MEW) per creare un wallet.
• Nel menu in alto a destra clicca e seleziona Ropsten (myetherapi.com) -> Crea nuovo portafoglio (pulsante centrale) -> Inserisci (e memorizza) una password -> Download File Keystore (salvalo in luogo sicuro) -> Salva la tua chiave privata (nuovamente in luogo sicuro)
• Ora per vedere il tuo wallet e il suo indirizzo vai a Informazioni portafoglio (menu principale) -> Chiave privata -> Inserisci la chiave privata appena salvata -> Sblocca portafoglio.
Ora dovresti visualizzare l’indirizzo del tuo wallet.
Per entrare nel wallet ripetere questa operazione ogni volta necessario.
Smart Contract
• Scaricare lo Smart Contract Ethereum precompilato
• Sarà necessario modificare questo codice per realizzare il tuo token personale (tranquillo, pochi e semplici interventi)
Farsi inviare qualche Ethereum per Ropsten Network
Accedere a https://faucet.bitfwd.xyz/ e inserire l’ethereum address precedentemente creato per ricevere gli ethereum che serviranno come test (si prega di trasferirli solo una volta)
E ora, si parte davvero! Modifichiamo lo Smart Contract
• Aprire il file dello Smart Contract con il text editor
• Vai alle linee 3-15 e guarda la sezione commenti. Sebbene trattasi di soli commenti, queste informazioni possono comunque essere utili. Nel mio caso MY2TOKEN (My second token)
• Linea 4: cambia il titolo del tuo Smart Contract
• Linea 6: sostituire l’address con quello creato in precedenza in MyEtherWallet
• Linea 7: simbolo del token, meglio se corto
• Linea 8: nome del token per esteso
Nome del token, simbolo e total supply
• Linea 102: cambia My2Token con il nome del tuo token
• Lo stesso alla linea 115
• Linea 116 e cambia il nome del simbolo, così come hai messo nella sezione commenti
• Stessa cosa alla linea 117
• Linea 120: cambia l’address con quello generato su MEW
• Stessa cosa per la linea 121
Per i decimali e la disponibilità totale alle linee 118 e 119 puoi lasciare come è.
È bene sapere che lo standard (e massimo) numero di decimali è 18, che significa che ogni token può essere suddivisa fino al diciottesimo decimale.
Sulla quantità di token, supponiamo che vogliamo emettere 100 token totali: dovremo quindi inserire 100 seguito da tanti zeri quanti sono i decimali scelti.
Quindi, per emettere 100 token andremo ad inserire una total supply di 100000000000000000000.
Compilazione del codice e ottenimento del ByteCode
• Vai a http://remix.ethereum.org/
• in browser/ballor.sol (finestra centrale, dove è già presente del codice), incollare il codice appena modificato al posto di quello presente di default. Cliccare “start to compile” in alto a destra. Se nella colonna a destra compaiono avvisi gialli dovrebbe essere tutto a posto.
• Dal menu a tendina scegliere il nome del nostro token
• Cliccare “details” a fianco e nella finestra che appare individuare la sezione Bytecode.
• Copiare il ByteCode attraverso l’apposito pulsante o selezionando il testo col cursore. Quello che servirà è solamente il contenuto di “object”, senza virgolette e aggiungendo 0x all’inizio. In questo modo abbiamo ottenuto il 0xByteCode.
La distribuzione del contract
• Ora torniamo a MyEtherWallet per la distribuzione del contract. Ricordiamo che è necessario essere sul Ropsten Network.
• Clicchiamo sulla voce Contratti del menu principale quindi scegliamo “Pubblica contratto“. Inserire il ByteCode precedentemente creato (il limite di gas viene settato automaticamente)
• Accedere al wallet tramite Chiave Privata (scegliere dalle voci presenti sotto nella pagina) -> Inserire la Private Key per sbloccare il portafoglio
• Ora cliccare “firma transazione” e “pubblica contratto” (confermare nella successiva finestra che appare)
Incrociare le dita, ancora e ancora!
Nella finestra di dialogo verde che compare alla base della pagina cliccare sulla transazione o verificare su https://ropsten.etherscan.io se la procedura è andata a buon fine. Se qualcosa è andato storto verificare tutti i passaggi e ripetere la procedura.
Se invece è andato tutto bene dovresti vedere una schermata come la prossima immagine… complimenti, sei ad un passo dal pubblicare la tua prima criptovaluta! 🙂
La registrazione del contract
Ma non è finita. Ora è necessario registrare il contratto, per fare questo:
• nella tab Overview cliccare sul contract address
• selezionare ora il tab “contract code” e cliccare “verify and publish” (subito sotto la label del tab, non troppo in grande quindi cercate bene)
Ci siamo quasi, ma i prossimi passaggi sono veramente importanti, quindi presta molta attenzione.
Fondamentalmente quello che andiamo a fare è garantire che il codice corrisponde a ciò che stiamo distribuendo e registrando sul network.
E, ricordo, per sempre. Qualsiasi errore venga fatto, questo sarà per sempre .
In questa pagina abbiamo 5 operazioni da svolgere:
• Assicurarci che il contract address riportato nella prima casella corrisponda al contract address appena depositato. Ricordiamo che il contract address è differente da quello creato su MEW quindi attenzione a non fare confusione.
• Inserire il Contract Name, che deve corrispondere a quanto inserito nella riga 102 del codice. Nel mio caso: My2Token
• Verificare la versione del compiler. Torna a http://remix.ethereum.org/ dove hai ottenuto il ByteCode e verifica l’URL dove troverai la versione del compiler (l’ultima parte dell’url. Nel mio caso era v0.4.23+commit.124ca40d.js.) Tornando alla pagina dove stiamo registrando il contratto, nel menu a discesa potrai scegliere quindi la versione corrispondente.
• Optimisation: scegli no (non l’abbiamo abilitata)
• Nello spazio dedicato al codice del contratto (Enter the Solidity Contract Code below) incolla l’intero codice da remix o dal tuo file del codice (attenzione, non il ByteCode).
Lasciare vuoti tutti gli altri spazi sottostanti e cliccare su Verify and Publish.
Di nuovo incrocia le dita, attendi qualche istante e…
Se compare una pagina con segni di spunta verdi e altre info, complimenti, ce l’hai fatta.
Se invece compare un messaggio in rosso, prova nuovamente, probabilmente c’è stato un errore in uno dei suddetti 5 passaggi di verifica.
Per avere ulteriore conferma vai a https://ropsten.etherscan.io/ e il verifica tuo MEW address (non il contratto, proprio il tuo address pubblico). Dovresti visualizzare i tuoi token, ora puoi riposarti e godere in pace il sogno cripto.
Per inviare questi token è necessario accedere a MEW -> Vedi info portafoglio -> Inserisci Private Key -> Sblocca Portafoglio -> Selezione l’opzione Carica Token o, molto probabilmente dovrai impostarli manualmente inserendo tutti i parametri. Una volta visualizzati potranno essere trasferiti.
Considerazioni finali
Abbiamo appena creato la nostra personale criptovaluta. Questo è sicuramente il modo più semplice per farlo, ma si tratta pur sempre del processo di creazione del token e non un progetto di vendita o una ICO, operazioni che necessitano di una idea importante, di conoscenze approfondite del settore, di marketing e un business plan adeguato.
La maggior parte delle ICO non giungono a termine proprio perchè mancano delle conoscenze e dei profili corretti per affrontare il mondo sempre più in espansione delle criptovalute.
Quindi fai buon uso di queste informazioni per trasformare magari buone idee in buoni progetti e non nell’ennesimo scam!
Se questo articolo ti è stato utile o ti è piaciuto e pensi possa meritare un contributo, puoi inviarmi una donazione in criptovaluta al mio indirizzo Ethereum:
ETH: 0xB7e851f89015E88B84068989d6e0F5a672cBfb3E
Fammi sapere se ti ha aiutato e se hai dubbi puoi liberamente commentare.
[Traduzione e adattamento dall’articolo originale in inglese: https://medium.com/bitfwd/how-to-issue-your-own-token-on-ethereum-in-less-than-20-minutes-ac1f8f022793]
seguendo tutte le istruzioni, appare questo errore in Remix:
creation of PROVA pending …
creation of PROVA errored: base fee exceeds gas limit
forse c’è qualcosa che non sappiamo sulle fee e i gas limit?
P.S: sto testando direttamente sulla mainnet
La mia prova si è fermata alla testnet e non ho poi effettivamente provato sulla mainnet, anche se i passaggi dovrebbero essere circa gli stessi. Mi viene un dubbio: stai usando ETH reali o quelli “finti” per Ropsten Network? Ho come l’impressione che su mainnet servano veri Ethereum 😉