MetaMask Γ¨ unβestensione del browser e wallet che consente agli utenti di interagire facilmente con gli smart contract della blockchain, quindi le DApp. Potremmo dire che MetaMask connette il web tradizionale con Web3.
MetaMask Γ¨ Ethereum Virtual Machine (EVM) compatibile, quindi compatibile Ethereum e tutte le chain βsimiliβ a Ethereum (come Binance Smart Chain (BSC) o Avalanche. Non Γ¨ quindi compatibile con Solana, Terra, Cardano, Atomβ¦
Lβidea geniale dietro MetaMask Γ¨ utilizzare il proprio browser come wallet che quindi non appartenga ad una determinata piattaforma come Binance o Crypto.com, ma sia possibile interagire con qualsiasi sito di DeFi; MetaMask inoltre non Γ¨ solo un wallet, ma controlla anche lβinterazione dellβutente con la DApp: fornisce i token, paga le fee, indica la disponibilitΓ .
MetaMask funziona grazie allβutilizzo di web3.js, un insieme di librerie per interagire con la blockchain Ethereum.
Per aumentare la sicurezza Γ¨ possibile usare MetaMask solo come bridge per la DeFi collegandolo con un Wallet crypto esterno, in modo da evitare che il nostro wallet sia online.
Installazione
Una volta installato dal Chrome store MetaMask fornirΓ una lista di parole. Quello Γ¨ il seed del nostro portafoglio, che lo identifica univocamente. Essendo un wallet non custodial, perso il seed non si ha alcun modo di recuperare il wallet.
Una volta che MetaMask fornisce il seed verrΓ richiesto di inserire anche una password, che Γ¨ la password per poter accedere a quel determinato wallet in quel PC.
Quindi se io vengo a conoscenza di una password MetaMask ma provo ad accedere da un PC diverso, dovrΓ² inserire prima il seed (altrimenti se due persone scelgono la stessa password potrebbero accedere lβuno ai contenuti dellβaltro).
Ripeto che se invece venissi a conoscenza del seed di qualcun altro potrei accedere al suo wallet anche senza conoscere la password.
Interfaccia iniziale
Una volta installato mi verrΓ fornito un address pubblico sulla rete Ethereum (nellβimmagine sopra inizia con 0x692β¦) con, ovviamente, 0 ETH.
Nel menu a tendina in alto a destra Γ¨ possibile vedere tutte le reti a cui MetaMask si puΓ² collegare, di default la rete Ethereum e le varie testnet.
Selezionando una blockchain diversa ovviamente il bilancio cambia.
Account
In centro in alto Γ¨ indicato βAccount 1β sopra la chiave pubblica del vostro wallet.
MetaMask permette di definire piΓΉ βaccountβ per ogni profilo, quindi legati al seed generato sopra. Infatti un account Γ¨, di fatto, una coppia di chiavi pubbliche/private e non cβΓ¨ limite al numero di coppie di chiavi che posso generare.
Per generare un secondo account basta cliccare sullβicona circolare di fianco al menu a tendina e cliccare su βCreate Accountβ, inserito il nome e il gioco Γ¨ fatto.
In MetaMask quindi Account == Address.
Eβ possibile anche importare anche un account esterno inserendone la chiave privata (non il seed, proprio la stringa RSA). Questo account non Γ¨ legato perΓ² al seed iniziale, Γ¨ esterno. Se quindi usassi il mio MetaMask su un altro PC inserendo il seed non vedrei gli account importati.
Eβ infine possibile connettere a MetaMask un hardware wallet. Questa Γ¨ la modalitΓ piΓΉ sicura in quanto la chiave privata del wallet Γ¨ su un dispositivo esterno e non online ma comunque senza rinunciare alla comoditΓ di MetaMask: questo ultimo infatti firma le transazioni come se il wallet fosse suo.
MetaMask legge automaticamente i wallet presenti nel Ledger e li aggiunge al proprio account con lβetichetta βhardwareβ: queste sono perΓ² sempre le chiavi pubbliche, mai le chiavi private. Quando devo effettuare una operazione come lβinvio di ETH ad un account devo confermare la transazione sia su MetaMask ma soprattutto sul ledger: Γ¨ lui che firma la transazione con le sue chiavi private che non escono mai.
Ovviamente la soluzione hardware wallet Γ¨ la consigliata qualora il capitale sia notevole: non essendoci un ente centrale che gestisce la sicurezza, la sicurezza sei tu ;)
Utilizzo
Lβutilizzo di MetaMask Γ¨ estremamente semplice: quando accedo ad una piattaforma di DeFi questa avrΓ una specie di pulsante di βloginβ che di fatto cercherΓ di connettersi ad un wallet.
Prendiamo ad esempio Uniswap, una volta entrati in alto a destra premere Connect, selezionare MetaMask ed inserire la password. ComparirΓ un prospetto per poter selezionare lβaccount, nel mio caso ho una unica opzione.
Una volta concessa lβautorizzazione di avere lβaddress dellβaccount (Γ¨ una chiave pubblica, non cβΓ¨ problema) avrΓ² effettuato il login. Posso verificare che sia connesso se compare Connesso nellβinterfaccia di MetaMask.
Inoltre Uniswap mostrerΓ parte dellβaddress del mio wallet in alto a destra
Le piattaforme di DeFi possono effettuare sia operazioni in lettura (per esempio mostrare il numero di token presenti nel wallet) che in scrittura, quindi prelevare o aggiungere token.
Per ogni operazione Γ¨ necessario pagare delle gas fee (siamo su Ethereum, no?) che vengono gestite da MetaMask.
Per esempio proviamo a fare uno swap su Uniswap da ETH a UNI usando la rete di test Ropsten di Ethereum, a cui ho caricato 0.3 ETH finti (per ricaricare Ropsten puoi utilizzare questo faucet).
Una volta premuto swap MetaMask mostrerΓ un prospetto con le gas fee da utilizzare per poter firmare la transazione
Una volta confermato lo swap sarΓ stato effettuato e avrΓ² i miei due token, per esempio ETH e UNI.
Aggiungere altre chain
Di default, oltre alle chain di test, Γ¨ presente solo la chain Ethereum.
Come abbiamo visto in precedenza, MetaMask Γ¨ compatibile con tutte le chain EVM compatibili. Per aggiungere una chain Γ¨ necessario premere il menu a tendina e cliccare su βAdd networkβ.
ComparirΓ una interfaccia dove inserire il nome della rete, lβRPC URL e il Chain Id. Queste informazioni si possono recuperare su Google, ma ancor meglio dal sito ufficiale della chain. Eβ fondamentale che siano inseriti correttamente, quindi verifica sempre le fonti.
Spostare liquiditΓ tra le chain
Per spostare una valuta o token tra le varie chain di MetaMask Γ¨ necessario usare i Bridge di cui ho approfondito il funzionamento in WBTC.
Assumiamo che voglia spostare ETH sulla rete Avalanche: il bridge di Avalance tratterrΓ (Collateralizzazione) i miei ETH fornendomi una loro versione wrappata WETH compatibile con la rete Avalanche.
in questo modo avrΓ² βspostatoβ i miei ETH dalla rete Ethereum alla rete Avalanche sotto forma di WETH.
Come ottenere ETH di test
Oltre alle blockchain vere MetaMask permette anche di avere dei wallet su delle βtest networkβ che sono delle blockchain Ethereum a tutti gli effetti ma i cui token al loro interno non hanno valore, per definizione.
Per ottenere dei token finti da utilizzare sulle test network esistono i cosiddetti βfaucetβ (rubinetto in italiano) che sono dei siti che inviano gratuitamente ETH a delle test network a partire dal proprio address.
La test network piΓΉ famosa Γ¨ Ropsten e un suo faucet Γ¨: https://faucet.ropsten.be/