Managing company expenses by various team members is challenging Passing funds to each team members is time consuming and inefficient process.
Technical inspiration: EIP-1484
What it does
- Create Treasury Account operated by the Wallet (both based on smart contracts)
- Add funds to the Treasury account
- Assign Multiple Users to wallet
- Define Conditions to wallet for each Users
- Users can execute payments from the treasury account without having assets on their private account
How we built it
We created resolvers smart contracts - Wallet, EmplyeeResolver and CompanyResolver and created frontend application with proper logic and flow using Angular and web3.js.
Challenges we ran into
One of the strong points of this project is the usage of Swarm to store off-chain data. We were trying to use one of their latest features - feeds, to optimize the costs of storing a reference to Swarm on-chain, but unfortunately, it did not succeed. Their HTTP API was not working as intended, so we just used a regular upload download functionality.
Accomplishments that we're proud of
We believe that the architecture of our solution is something we can be proud of. It's very scalable, flexible and can cover multiple problems, which users and companies are facing.
Another thing is user experience and ease of onboarding process - thanks to ENS, new users/employees don't have to struggle with public keys.
Also with our solution running an audit is a piece of cake.
What we learned
New EIP is working correctly and it can be a good foundation for many ideas, some of the new functions of the latest web3.js release, Ganache UI and we improved our solidity skills
What's next for Treasure1
- Implement time access limits and deployment of new wallets.
- Usage of Swarm feeds for transactions for a small costs optimization
- Refunds to relayer in tokens
- Global market adoption : )