Pehchan-Kon | Web 3 Digital Identity Dapp
Introduction
In the current digital landscape, managing and verifying identities across different platforms is often fragmented and insecure. Pehchan-Kon aims to revolutionize digital identity management by leveraging the power of blockchain technology to create a unified, secure, and verifiable digital identity solution. This project empowers users to seamlessly manage their identities, ensuring both security and privacy.
Tech Stack
-
Frontend: Next.js, TypeScript
-
Smart Contracts: Solidity, Hardhat
-
Blockchain Integrations: Chainlink VRF
-
Storage: IPFS
Features
-
Decentralized Identifiers (DIDs): Create and manage unique DIDs on the blockchain.
-
Identity Verification: Submit identity documents for verification by trusted third parties.
-
Credential Verification: Verify the authenticity of credentials.
-
User Profile Management: Update personal details and manage credentials easily.
-
Privacy Controls: Control who can access identity information and under what circumstances.
-
Security Measures: Implement strong security measures including encryption and secure key management.
-
Social Media Integration: Share your verified digital identity on various social media platforms.
-
Profile Editing: Easily update and manage your digital identity profile.
Quick Start
Follow these steps to set up the project locally on your machine.
Prerequisites
Ensure you have the following installed on your machine:
- Git
- Node.js
- npm
- Hardhat
- Metamask (or any other Ethereum wallet)
- Chainlink VRF setup
- IPFS setup
Cloning the Repository
git clone https://github.com/themihirmathur/Pehchan-Kon.git
cd Pehchan-Kon
Installation
Install the project dependencies using npm:
npm install
Compile the Contracts
npx hardhat compile
Deploy the Contracts
Replace yourNetwork
with the desired network configuration:
npx hardhat run scripts/deploy.js --network yourNetwork
Run the Development Server
npm start
Open http://localhost:3000 in your browser to view the project.
Smart Contract Overview
The main contract, IdentiFi
, manages user profiles, DIDs, and credentials.
Key Functions
-
createUser: Creates a new user profile and requests a new DID using Chainlink VRF.
-
editUser: Edits an existing user profile.
-
getUserByUsername: Retrieves user information by username.
-
getUserByAddress: Retrieves user information by address.
-
addJob: Adds a job to the user's profile.
-
getJobs: Retrieves jobs associated with a user.
-
setVisibility: Sets visibility preferences for user profile information.
-
getVisibility: Gets visibility preferences for user profile information.
-
batchCreateUsers: Batch creates multiple user profiles using Monobean.
Storing Images on IPFS
User images are uploaded and stored on IPFS, ensuring decentralized storage which enhances security and accessibility.
Contributing
We welcome contributions to Pehchan-Kon! To contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your fork.
- Submit a pull request to the main repository.
Feel free to modify and expand this README to suit the specific needs and updates of your project.