The problem Stream Rent solves
The Stream Rent smart contract allows users to create NFTs out of any offchain resource they might have, and gain income by renting them out. It also allows other users to rent the resources they need and only pay for as long as they possess the resources.
- Users can mint their NFTs and associate an offchain resource to the created tokens.
- Other users can view these NFTs and rent them at a rate specified by the owner.
- The payment of the rent takes place through Superfluid Constant Flow Agreements, which allows the payment to take place at as a constant stream for as long as the user holds the rented token.
- When the stream is closed, the NFT automatically gets returned back to the original owner by using the Superfluid Agreement Callbacks.
- Biconomy has been set up to allow meta transactions on the Matic Testnet.
Challenges I ran into
- As this is the first Dapp I've built, I faced challenges in learning to use the ecosystem and incorporating various tools to develop and test the smart contracts.
- Superfluid's ethereum contracts package required a lot of effort to understand and incorporate into the project, but the developers at the Discord channel were very helpful. The case in which a stream is stoped due to insufficient funds still needs to be incorporated, which requires me to look more into how the callbacks work.
- The issue of which offchain resources can be associated with an NFT is not decided, as it would require procedures in place to deal with allowing only the current holder of the token to access it. A future improvement to this project would be to use IPFS to store NFT metadata, and maybe even the resources the NFT is associated with, but this requires more research on my part.
- The frontend of this project could be made more intuitive and user friendly, and I faced challenges with incorporating features such as wallets into the frontend.