Rent and let guest houses in a decentralised, secure and permissionless way
View Demo
·
Report Bug
·
Request Feature
Table of Contents
One of the great things about holidays is to ease off your mind and enjoy your deserved free time without having to think about mundane practicalities. Sometimes, it is good to just pick a location and stay as much as you like without having to arrange everything beforehand.
That's why we have created AbodeMe. A decentralised platform that allows you to rent a property in a fluid way as we say, without any time limits just pay as you go on an hourly basis. The tenant can then enjoy a hassle-free rental experience while the landlord is paid continuously and is protected against accidental damage by a security deposit stored on the contract. Upon starting the rental period, the tenant will be given the keycode to unlock the safety box with the entrance key, stored in Secret Network and burned after reading. In this way, the landlord doesn't have to always be present for the tenant and let them in. Finally, by having the dapp run on Polygon we were able to reduce gas costs by approximately 70%, minting the NFT containing the property data costs just a fraction of dollar compared to the $60-80 figure in Ethereum mainnet.
Superfluid cashflows in xDAI allow capital value to be preserved from market fluctuations and can pave the way for a future implementation of a Polygon/xDAI bridge using xPollinate.
A few key features of the platform:
- completely decentralised
- privacy preserving
- security by default
- collateral deposit as insurance
- pay as you go, no hidden fees
Surely an integral part of the next development phase will be to debug Superfluid cashflows and port them to the RentalToken smart contract in order to avoid manipulation from the frontend as well as provide a better user experience. Secondly, users should be able to pay with Torus only, thus making Keplr wallet obsolete in the expected workflow towards a cleaner and more immediate user-centric interface. Lastly, collaterals should be invested into yield farming protocols like Aave to generate a revenue to keep the dapp alive without having to charge users for the service.
To bring AbodeMe to life we integrated the following awesome projects:
- Polygon
- SecretNetwork
- SuperFluid
- Torus
- IPFS
- And a sprinkle of ReactJs
In particular, Polygon is the main L2 infrastructure allowing us to scale without unloading the costs to our users, Secret Network maintains the confidentiality of key locker codes, SuperFluid allows us to create dynamic cashflows, Torus acts as the main user wallet also providing email and username data while data and images are stored on IPFS.
Deploy a local copy of the project and test it yourself.
To setup the development environment, run the following commands:
-
npm
npm install --global npm@latest
-
yarn
npm install --global yarn@latest
You will also need to have some test MATIC tokens in your Torus wallet and to have installed Keplr wallet with Secret Network switched on.
To install the repository and run it locally:
- Clone the repo
git clone https://github.com/grcasanova/AbodeMe.git
- Install nodejs packages with yarn
yarn install
- Start the app with
yarn start
Using AbodeMe is very simple, just head off the Homepage and login with your Torus wallet. On the rent page you can see a list of all properties to let and their location pinpointed on a map while on the let page you can list your property and start earning. Once a new tenant accepts the rental agreement you will both receive a welcome email to exchange contacts and you're good to go. In the dashboard you can find all your properties to let and the ones you're currently renting and eventually stop the rental agreement once you want to leave the guest house.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request and describe your proposal
Distributed under the MIT License. See LICENSE
for more information.
Web Link: Homepage