How to connect ReactJS with MetaMask ?
Last Updated :
12 Apr, 2025
To Connect React JS with MetaMask is important while making Web 3 applications, It will be done with Meta mask wallet which is the most used browser tool for sending and receiving signed transactions .
MetaMask is a crypto wallet and a gateway to blockchain DAPP. It is used to connect our app to web3. It is just a Chrome extension that is used to access and interact with the Ethereum blockchain. Its features support tokens and digital assets in the Ethereum ecosystem. It is also used as a primary wallet to store the balance in Ethereum.
For connection, we are using ethers.js, in order to connect to the Ethereum wallet.
Approach to connect React JS with MetaMask
We will connect MetaMask to React using Ether library which can be used to initialize the authentication using MetaMask wallet browser extention. Then a request will be made to acces the account info e.g. current balance, last transections etc.
Steps to create React Application
Step 1: Creating a react project with CLI
npx create-react-app eth_app
Step 2: Move to the project directory
cd eth_app
Step 3: Install these packages to run the application
npm i react-bootstrap bootstrap [email protected]
Project Structure:

The updated dependencies in package.json file will look like:
{
"dependencies": {
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"bootstrap": "^5.3.2",
"ethers": "^5.7.2",
"react": "^18.2.0",
"react-bootstrap": "^2.9.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
}
}
Example: Initiallize metamask authentication usign browser extention when clicked on Connet button.
JavaScript
// Filename - App.js
// Importing modules
import React, { useState } from "react";
import { ethers } from "ethers";
import "./App.css";
import { Button, Card } from "react-bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
function App() {
// usetstate for storing and retrieving wallet details
const [data, setdata] = useState({
address: "",
Balance: null,
});
// Button handler button for handling a
// request event for metamask
const btnhandler = () => {
// Asking if metamask is already present or not
if (window.ethereum) {
// res[0] for fetching a first wallet
window.ethereum
.request({ method: "eth_requestAccounts" })
.then((res) =>
accountChangeHandler(res[0])
);
} else {
alert("install metamask extension!!");
}
};
// getbalance function for getting a balance in
// a right format with help of ethers
const getbalance = (address) => {
// Requesting balance method
window.ethereum
.request({
method: "eth_getBalance",
params: [address, "latest"],
})
.then((balance) => {
// Setting balance
setdata({
Balance:
ethers.utils.formatEther(balance),
});
});
};
// Function for getting handling all events
const accountChangeHandler = (account) => {
// Setting an address data
setdata({
address: account,
});
// Setting a balance
getbalance(account);
};
return (
<div className="App">
{/* Calling all values which we
have stored in usestate */}
<Card className="text-center">
<Card.Header>
<strong>Address: </strong>
{data.address}
</Card.Header>
<Card.Body>
<Card.Text>
<strong>Balance: </strong>
{data.Balance}
</Card.Text>
<Button
onClick={btnhandler}
variant="primary"
>
Connect to wallet
</Button>
</Card.Body>
</Card>
</div>
);
}
export default App;
Step to run the application: Open the terminal and type the following command.
npm start
Output: Open the browser and our project is shown in the URL http://localhost:3000/
Similar Reads
How To Connect Node with React?
To connect Node with React, we use React for the frontend (what users see) and Node.js for the backend (where the server logic lives). The frontend sends requests to the backend, and the backend responds with data or actions. There are many ways to connect React with Node.js, like using Axios or Fet
4 min read
How To Connect MongoDB with ReactJS?
MongoDB is a popular NoSQL database known for its scalability, flexibility, and high performance. When building modern web applications with ReactJS, itâs common to connect your frontend with a backend server that interacts with a database like MongoDB. PrerequisiteReact JSNode JSMongo DBApproach to
5 min read
How to Connect Django with Reactjs ?
Connecting Django with React is a common approach for building full-stack applications. Django is used to manage the backend, database, APIs and React handles the User Interface on frontend. Prerequisites:A development machine with any OS (Linux/Windows/Mac).Python 3 installed.Node.js installed (ver
9 min read
How to connect ReactJS with flask API ?
Connecting React with Flask API allows us to create a full-stack web application with React handling the user interface at frontend and Flask serving the data in backend. Here React makes the HTTP request to interact with the flask API to perform operations with the database. ApproachTo connect Reac
4 min read
How to write comments in ReactJS ?
When working with ReactJS or any other programming language, making the code easy to understand is essential. One of the best ways to do this is by using comments. Comments are simple notes within the code that help to explain what is happening or why something was done in a specific way. To write c
3 min read
How to use React Context with React-Redux ?
React context with React-Redux is a popular state management library for React applications. Using React context with React-Redux is a powerful way to provide the Redux store to components deep within your component tree without manually passing it down through props. PrerequisitesNode.js and NPMRea
3 min read
How To Create a Website in ReactJS?
ReactJS is one of the most popular JavaScript libraries for building user interfaces. It allows you to create dynamic, reusable UI components and efficiently manage state and events. In this article, we'll walk through the steps to create a basic website using ReactJS. PrerequisitesNPM & Node.js
5 min read
How to use Modal Component in ReactJS ?
Modals are a popular UI component used to display content in a pop-up window like alerts, forms, or additional information. In ReactJS, there are multiple ways to implement a modal. In this article, we will discuss two common approaches: using reusable functional components and using the Material-UI
4 min read
How to use Portal Component in ReactJS ?
The portal component renders its children into a new subtree outside the current DOM hierarchy. Material UI for React has this component available for us, and it is very easy to integrate. We can use the Portal Component in ReactJS using the following approach. Prerequisites:NodeJS or NPMReact JSMat
2 min read
How to write ReactJS Code in Codepen.IO ?
Now everything is online, some people use VScode to write react.js code and face most of the difficulty. The VScode requires setting for writing React.js code and Many beginners faced difficulty to use VScode so, for them, it is good and easy to use codepen. The codepen provide you with an online pl
2 min read