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/