This project is a secure, decentralized password management system utilizing blockchain technology, IPFS, and cryptographic protocols. The system provides enhanced security, user autonomy, transparency, and scalability.
- Secure storage of credentials using Lit Protocol and IPFS.
- Smart contracts on the blockchain for secure referencing of stored data.
- Decentralized indexing and querying using The Graph.
- Easy access and decryption of credentials through a web3 browser interface.
- User Interface: Web3 Browser for credential input and access.
- Data Encryption and Storage: Lit Protocol for encryption and ACLs; IPFS for decentralized storage.
- Data Retrieval and Processing: The Graph for indexing and processing blockchain events; Smart Contracts for storing IPFS hashes.
- User enters credentials in the web3 browser.
- Credentials are encrypted using Lit Protocol and ACLs.
- Encrypted content and keys are saved to IPFS.
- IPFS hash is stored in a smart contract on the blockchain.
- The Graph listens to blockchain events and processes data.
- Processed data is delivered back to the client's web3 browser.
- Client checks authorization and decrypts data if authorized.
- Decrypted credentials are displayed to the user.
- Node.js=18.20.1
- Yarn=1.22.22
- Hardhat
- IPFS
- The Graph
PRIV_KEY=
FUJI_RPC_URL=
NEXT_PUBLIC_PINATA_API_KEY=
NEXT_PUBLIC_PINATA_API_SECRET_KEY=
NEXT_PUBLIC_API_URL=
NEXT_PUBLIC_CONTRACT_ADDRESS=
- Install dependencies:
yarn install
- Compile the smart contracts:
yarn hardhat compile
- Deploy the contracts to the Fuji test network:
yarn hardhat deploy --network fuji
- Copy the deployed contract address and paste it in the
Client/.env
file asNEXT_PUBLIC_CONTRACT_ADDRESS
.
Note: Update the subgraph.yaml file with the deployed contract address. Update the deploy script with your own subgraph name.
- Navigate to the indexer directory:
cd indexer
- Install dependencies:
yarn install
- Generate code:
yarn codegen
- Deploy the subgraph:
yarn deploy
- Copy the subgraph URL and paste it in the
Client/.env
file asNEXT_PUBLIC_API_URL
.
- Fill in the required values in the Client/.env file.
- Navigate to the client directory:
cd client
- Install dependencies:
yarn install
- Start the development server:
yarn dev
- Lit Protocol: For encryption and access control.
- IPFS: For decentralized storage.
- The Graph: For data indexing and querying.
- Smart Contracts: For secure and immutable data referencing.
This decentralized password management system leverages blockchain technology, IPFS, and cryptographic protocols to provide a highly secure and user-controlled solution for credential management. By following the setup instructions, you can deploy and run the system in a development environment.