Inspiration
Owing to blockchain's disruption of several industries including, health sector, financial sector, educational sector etc and how it has promoted transparency due to decentralization, and tokenization of assests via smart contracts, real estate which had previously been a face-to-face venture involving lots of agents and exorbitent agent fees. We decided to create a simple platform using polygon blockchain to reduce these incessant fees and promote real-estate transactions in a decentralized manner making it transparent. We also created a way for users to save towards properties of their choice in case they do not have the amount of funds at the time to purchase them
What it does
Realty is a decentralized web application that allows sellers to tokenize their properties as NFTs and list them on our platform. Realty is a proof of concept solution for crypto-based real estate purchase/payments with stablecoins. It builds on the idea of having another option for asset listing, investment, saving and payments in the real-estate ecosystem aside fiat currency.
How we built it
- Stablecoins can be used for asset payments and listing, current support is only our test coin — TUSDT.
- NFTs are used for verifying listed assets authenticity on Realty and also as proof of ownership of an asset within Realty.
- We utilized the open-zeppelin smart contracts to create our custom token and the property NFTs which can be seen on the "featured properties" page.
- The contract owner/admin has to set the acceptable payment tokens that can be used for payments or listings on our platform.
- Users can fill out their property details, the image is saved on web3.storage and the returned hash is sent along with their details to the property smart contract. -Listing a property requires a small fee of 0.5TUDT which is sent to the smart contract -Users need to mint their properties for it to be publicly visible (tokenization) on our platform so that other users can decide to buy or save towards buying such property
- Users can purchase a property in the currency of the listed property price and this automatically transfers the ownership to the buyer and the amount is sent to the lister. -If the user chooses to "save to buy", the property is added to the user vault, where the user can choose to deposit tokens, little-by-little until the property price is reached. At this point, the user can withdraw and decide to either go ahead and buy the property or just go for another property of their choice. -The vault contract acts as a form of escrow or savings for the user's tokens until the point of withdrawal where the contract refunds the tokens back to the user.
Challenges we ran into
- Switching from ipfs-react-uploader to web3.storage for property image storage due to the latest update on ipfs gateways
- Switching from Browser router to hash router to ensure perfect routing upon spheron deployment
- Ways to verify and validate properties listed on our platform to ensure their authenticity
Accomplishments that we're proud of
- We were able to work effectively as a team
- We were able to tackle some of the challenges faced before the deadline.
- We were able to create a simple solution that prevents unnecessary third parties which is prevalent in the real-estate ecosystem
- We were able to tokenize properties such that they can be exchanged for fiat currencies( in our case, TUSDT)
What we learned
- We learnt how to deploy using the spheron protocol
- We also learnt how to use web3.storage for storage of files
- We learnt about the various ways blockchain can be applied in various sectors using our project as an example.
What's next for Realty
- Ability for users to re-sell properties
- Establish a form of verification for all properties listed to check their authenticity
- Integrate property investments via fractional ownerships where people can pool tokens to acquire parts of a property
Built With
- chakra-ui
- ethers.js
- hardhat
- ipfs
- javascript
- metamask
- open-zeppelin
- polygon
- react
- remix
- solidity
- spheron
- web3.storage
Log in or sign up for Devpost to join the conversation.