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.
- Frontend: Next.js, TypeScript
- Smart Contracts: Solidity, Hardhat
- Blockchain Integrations: Chainlink VRF
- Storage: IPFS
- 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.
Follow these steps to set up the project locally on your machine.
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
git clone https://github.com/themihirmathur/Pehchan-Kon.git
cd Pehchan-Kon
Install the project dependencies using npm:
npm install
npx hardhat compile
Replace yourNetwork
with the desired network configuration:
npx hardhat run scripts/deploy.js --network yourNetwork
npm start
Open http://localhost:3000 in your browser to view the project.
The main contract, IdentiFi
, manages user profiles, DIDs, and credentials.
- 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.
User images are uploaded and stored on IPFS, ensuring decentralized storage which enhances security and accessibility.
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.