Bankless Wallet is a smart contract wallet that leverages zero-knowledge proofs for authentication where users can pay transaction fees in GHO
Unlike traditional wallets with a defined owner, Bankless Wallet operates on the principle that ownership is established through the possession of a valid zero-knowledge proof (zk-proof). This ensures a high level of privacy and security, as the identity of the wallet owner remains confidential. Users can pay transaction fees in GHO, providing a more stable value compared to the native cryptocurrency of the blockchain.
The Project is divided into 4 parts :
Circuits: Written in Noir (https://noir-lang.org/). Contains 2 circuits, the WebAuthn Passkey Circuit which verifies the possession of the passkey, and the Social Recovery Circuit, which helps in the recovery of the wallet i.e. when you change your passkey.
Contracts: Contains a forwarder that relays a meta-transaction to the desired destination, a factory contract that has ChainLink CCIP implemented to create a multi-chain wallet, and lastly Wallet Contract that computes gas, converts into GHO using ChainLink price feeds and deducts GHO from your wallet to a gas tank contract.
Frontend: Made with Nextjs, TailwindCSS & JavaScript. Frontend is not deployed currently. The demo video contains the demonstration in localhost.
Server: Made with Expressjs to compute zk-proofs which takes up lots of RAM and CPU usage when computing. We want every device should have the same computation time and if you have a mobile or a potato PC, we don't want you to wait for 2 mins to generate. a single proof.