A Decentralized Password Manager compiled in Remix IDE , deployed on Ethereum BlockChain (Sepolia TestNet). The frontend is designed using ReactJS and CRUD functionalities are implemented. Users can save their passwords securely using blockchain technology.
Visit the live version of the Web3 Vault dApp here.
Experience the functionality of our Web3 Vault dApp by watching the demo
demo.mp4
Alternatively, you can also view the demo on YouTube.
Two Smart Contracts are deployed on the Sepolia test network:
-
Main Contract:
0x659752537DDA80Fb0071DDad74E21cE902aD8e06
-
User Contract:
0x4D9b090a17976068a743fD9ae3BebDB491d25831
-
The Main Contract handles the core functions of the password manager.
-
The User Contract manages user profiles.
-
Both contracts inherit ownership features from
Ownable.sol
by OpenZeppelin, ensuring secure and controlled access. -
The Main and User contracts can communicate with each other to coordinate user and password management functions.
- The smart contracts are compiled using Remix IDE.
- The application is built with a React frontend, using ABI to facilitate communication with the deployed smart contracts.
- User Profile: A user can create a profile, provided they have a MetaMask wallet with some Sepolia ETH.
- Password Management: Users can add, edit, and delete their passwords.
- Timestamps: Each password entry includes a timestamp to track its age.
- Basic CRUD functionality is implemented.
Using a password manager on the blockchain offers several security advantages:
- Decentralization: Data is stored in a decentralized manner, reducing the risk of a single point of failure.
- Immutability: Once data is stored on the blockchain, it cannot be altered, ensuring the integrity of the information.
- Transparency: Blockchain transactions are transparent and can be audited, providing clear accountability.
- Smart Contract Security: The use of smart contracts ensures that the application logic is executed as written, without interference.
- User Control: Users have complete control over their data, secured by their private keys in their MetaMask wallets.
However, it's essential to implement robust security measures, such as regular smart contract audits and secure handling of private keys, to mitigate potential vulnerabilities.
To get started with the Web3 Vault dApp, please follow the steps below:
-
Set Up Metamask Wallet:
- Install the Metamask extension in your preferred web browser.
- Create a new wallet or import an existing wallet.
- Collect some Sepolia ETH using available free faucets.
-
Clone the GitHub Repository:
- Open your terminal.
- Execute the following command to clone the repository:
git clone https://github.com/Nithin1729S/Web3-Vault-dApp.git
-
Install Project Dependencies:
- Navigate to the project's main directory:
cd Web3-Vault-dApp
- Install the necessary dependencies using npm:
npm install
- Navigate to the project's main directory:
-
Start the React Application:
- Run the following command to start the React application:
npm start
- Run the following command to start the React application:
-
Connect to Your Metamask Wallet:
- Open the application in your web browser.
- Use the Metamask extension to connect your wallet.
-
Create Your Account and Add Passwords:
- Once connected, your account will be created automatically.
- You can now start adding and managing your passwords securely.
You can find the Docker image for this project on Docker Hub:
- Using the Image from Docker Hub:
docker pull nithin1729s/web3-vault-dapp:latest docker run -p 3000:3000 nithin1729s/web3-vault-dapp:latest