Get User Account

In order for web3 to work and grab the end-users' Ethereum wallet addresses, the users have to login first (similar to unlocking account in MetaMask). You can simply trigger the login for users with the web3 function call below.

Trigger User Login Modal

In accordance with the EIP-1102 update, developers who are using web3 can trigger user login modal with the enable() method in the provider.

// Initialize provider
import Fortmatic from 'fortmatic';
import Web3 from 'web3';

const fm = new Fortmatic('YOUR_API_KEY');
window.web3 = new Web3(fm.getProvider());

// Request user login if needed, returns current user account address
web3.currentProvider.enable();

Web3 Methods

User login modal can also be triggered through web3 accounts and coinbase functions.

// Initialize provider
import Fortmatic from 'fortmatic';
import Web3 from 'web3';

const fm = new Fortmatic('YOUR_API_KEY');
window.web3 = new Web3(fm.getProvider());

// Sync functions that returns users' addresses if they are already logged in with enable().
// Not recommended as sync functions will be deprecated in web3 1.0
console.log(web3.eth.accounts); // ['0x...']
console.log(web3.eth.coinbase); // '0x...'

// Async functions that triggers login modal, if user not already logged in
web3.eth.getAccounts((error, accounts) => {
  if (error) throw error;
  console.log(accounts); // ['0x...']
});
web3.eth.getCoinbase((error, coinbase) => {
  if (error) throw error;
  console.log(coinbase); // '0x...'
});

A modal will open to ask users to sign up for an account or login with their mobile phone number.

Last updated