Inspiration
"Not your key, Not your Crypto" - sounds cool but can anyone tell that to the family left behind by a crypto investor? That was the motivation for me to search for an alternative. Sure enough, there are many alternatives most of which require a person to share his/her private key. But with GG Wallet, there's no need for that. That is the inspiration - a zk-ID-backed, deadman switch-enabled smart contract wallet that can run on any chain. The Goal was to provide readily deployable templates for extending sybil resistance and allowing deadman switches without sharing of private key.
What it does
GG Wallet is designed, among other things, to lower the barrier of entry of new users into Web3. GG Wallet works in two modules - first, it provides a zkp-backed NFT representation for proof of personhood. Any decentralized application on the blockchain can query the NFT contract to find if the address the Dapp is interacting with has a person behind it or not. This provides sybil resistance. Chainlink CCIP comes in here to help in extending the Sybil Resistance through SybilNFT to virtually any chain which has an active lane on Chainlink CCIP.
Secondly, GG Wallet provides an extended, modular Smart Contract Wallet Factory Contract and Wallet Contracts. These SCW have the feature to add "inheritors" and their respective "share". Through userOp verification and verification of signatures on userOp coming from entry point or direct EOA, we provide a "pull" based, time-locked method to redeem the funds on the SCW. This helps in making sure that if there are any malicious inheritors, they can be dealt with in time by the actual owner of the SCW. Thus, GG Wallet removes the need for an arbiter or the need for sharing private key. Users of GG Wallet can use it moving forward like any regular wallet.
How I built it
- Anon AADHAR provides PCD proof of personhood.
- We represent that in a NFT.
- The NFT can be cloned on any Chain through Chainlink CCIP.
- Anyone can deploy the factory contract for GGWAccount easily and derive smart contract wallets from it.
- GG Wallet is supposed to be open-source auditable, user-friendly, sybil resistance provider wallet for users and dapps alike.
Challenges I ran into
- Anon AADHAR SDK is not mature enough. It has bugs which prevented the full completion of the integration.
- Polygon ID nodes require Mac or Linux, I use Windows and am solo-hacking. So had no options other than Anon AADHAR SDK.
Accomplishments that I am proud of
- Was able to provide a readily deployable Factory and Smart Contract Wallet Template extended from BaseAccount.sol.
- The above GGWAccounts come with Crypto asset Inheritance in-built and can be deployed on any chain as long as the OpCodes are supported.
- Provide deploy-ready and tested SybilNFT contract components. These can be Signature Gated.
What I learned
- ZKP Infra from scratch is tough to build but not impossible given time.
What's next for GG Wallet
- Wish to take this forward as a viable idea and I believe it can contribute significantly to the ecosystem.
- Creating a Mobile app to provide seamless GG Wallet experience to mobile users.
- Integrating real time Transaction Analysis through ML for Fraud Detection and AML Compliance.
Log in or sign up for Devpost to join the conversation.