Metamask
Metamask is a Chromium (Chrome, Brave, and Edge) and Firefox browser add-on that provides a non-custodial Ethereum wallet. An end-user’s private key is stored in an encrypted Vault data stored in the browser.
It can also connect to hardware based wallets such as Ledger.
Metamask allows you to integrate your dApp with SKALE by setting the Network RPC endpoint for your users. For more information and support, see https://consensys.net/blog/metamask/connect-users-to-layer-2-networks-with-the-metamask-custom-networks-api
Example Code
import Web3 from 'web3';
let web3 = "";
let switchToSKALE = {
chainId: "0x50877ed6", //decodes to 1351057110
chainName: "SKALEChaos Testnet",
rpcUrls: ["https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix"],
nativeCurrency: {
name: "SKALE FUEL",
symbol: "sFUEL",
decimals: 18
},
blockExplorerUrls: [
"https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com"
]
};
web3 = window.web3;
if (window.ethereum) {
window.web3 = new Web3(window.ethereum);
try {
// Request account access if needed
await window.ethereum.enable();
console.log("MetaMask - Web3 Initialized!");
//Get user wallet accounts
window.web3.eth.getAccounts((error, accounts) => {
if (error) {
console.error(error);
}
console.log(accounts);
//request change to SKALE Network
window.ethereum
.request({
method: "wallet_addEthereumChain",
params: [switchToSKALE, accounts[0]]
})
.catch((error) => console.log(error.message));
});
} catch (error) {
// User denied account access...
}
}
// Legacy dapp browsers...
else if (window.web3) {
window.web3 = new Web3(web3.currentProvider);
console.log("MetaMask - Web3 Initialized!");
}
// Non-dapp browsers...
else {
console.log(
"Non-Web3 browser detected. You should consider trying MetaMask!"
);
}