Firewallet
Firewallet is an ERC4337 compliant secure contract wallet that enables you to create roles that limit the amount of money that can transfer and the contract that call.
Created on 4th December 2022
•
Firewallet
Firewallet is an ERC4337 compliant secure contract wallet that enables you to create roles that limit the amount of money that can transfer and the contract that call.
The problem Firewallet solves
problem
Currently, if the private key of an EOA is stolen, all the assets in that wallet will be stolen.
So users create multiple EOA addresses to spread the risk. But in that case, things like SBT will also be distributed, and the information of that person's transactions will not be accumulated in one account.
what we built
We have implemented a brand new contract wallet that follows the ERC4337 standard.
Users can create multiple roles (for private, for trading, for DAO pj, etc) by purpose.
Users can place the following restrictions on roles
- The total eth amount that can transfer
- The contract that can call
-etc
The user executes the transaction using the specific role that suits for the tx
how it solved
By creating roles in this way, and using roles instead of owner keys for everyday use, even if a role's password is stolen, the damage is limited to the scope of that role.
In addition, the information associated with the person, such as SBT, ENS, etc., will be linked to single address
Challenges we ran into
First of all, in a short period of time, we had a very hard time understanding ERC4337, account abstraction.
We implemented a contract wallet with its own role, so we had to implement our own front, bundler (backend API) and entry point for the functionality to work.
building contract
Understanding AA in a short period of time was the most difficult part. The implementation of hitting assemly to achieve the objective.
We had to use assembly language to parse, as calldata, what the user did.
We had a short time to implement a coutract wallet that met our requirements.
building backend
It was difficult to implement the bundler as per AA specifications.
We were able to identify and implement the minimum functionality required.
building frontend
As the team members understood the specifications of AA, changes were made many times, and it was difficult to deal with those changes.
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.