Salary & work agreement concept/MVP for the generation working in decentralised companies
The project aims to bring the security and confidence of work agreements, like we used to work for "traditional" companies, to concept of DAOs or in general decentralised companies. Many innovative projects have lots of risks for the people working on it, especially if they have other life liabilities like paying rent, children, etc. I thought it would be great to allow these kind of people to work in DAOs as well while providing them more certainty with work agreements, which include their salary and in the future might also provide cover to other parts of life like (decentralised) insurances, etc to them. Furthermore, due to the nature of Ethereum these kind of work agreements would be accessible for everyone, which allows an even fairer access for good work conditions around the world.
How it's made
This project was built with solidity and ionic/react. I used the AccessControl functionality provided by open zeppelin for managing the different roles ("employer" and "employee") in the smart contract. The Employer is capable of generating a work agreement for his or hers new employee with the function "createWA". All work aggreement details are stored on IPFS as the metadata for the ERC-1155 token standard. For storing the metadata I used the nft.storage website api. The employee on the other hand is able to withdraw his or her funds from the smart contract based on a 30-days timelock after the last withdraw. The NFT presents the "right" to claim the salary. I also included a custom AccessControl role, which allows that only the original owner is capable of claiming the salary. That should prevent any frauds. All these functions are reachable over https://floberlin.github.io, which is the ionic-react GUI. I used the tab-template from ionic to get quick starting point and adapted it to my needs. I included the Web3Modal package for easy usage of Metamask, Wallet Connect, Coinbase Wallet, and Binance Wallet. ethers.js is my web3 provider.