I like to use blockchain technology to simplify the conveyancing process and significantly reduce the time and cost it takes to buy and sell a property.
In future, I would also like to explore fractional property ownership so users can pool their money to buy home or commercial property for investments.
Current version: Using blockchain technology to enable users to book and make an downpayment for the property. Only the owner of the contract can finalize to accept the downpayment to complete the booking.
Current Features:
- Only contract owner is able create property for sale
- Any buyer with ETH is able to make a full downpayment for the property through MetaMask
- After the buyer made the deposit, only the contract owner is able to complete the booking and transfer ETH out of the contract.
Future version: Owner is able to transfer ETH only if status of property is completed, time-base to automatically commplete the booking, tole-Based Management(Owner,Lawyer,Buyer for example) and allow owner to obtain the payment, issue NFT for property purchase. And improvement to the User Experience with better login, login and loading experiences.
https://on9commerce.github.io/
- Install Nodejs, Truffle and Ganache
npm install
to install dependencies- Start Ganache.
- In ESCROW folder using command prompt, 'truffle migrate' to create ESCROW contract.
- Load the truffle-config.js file in Ganache UI
- In the app.js file, update the 'const escrowContractAdd = ' to the contract address in Ganache.
- Use live server in VSCode to start index.html in the web browser.
- In the web browser, login with Metamask in Rinkeby Network using the owner account that created the ESCROW smart contract and you should see the UI at the bottom to create new properties.
- Create a few properties.
- Login with Metamask using another account and you will not be able to see the UI to create any new properties.
- You can buy the property that you like to book the unit
- Switch back to the owner account and you will able to see the 'Complete (Contract Owner)' button on the property that was purchased by the previous account.
- Click to 'Complete (Contract Owner)' button for the property and the ESCROW account value will be updated at the bottom of the page.
- Click on 'Transfer ETH To Contract Owner' to receive ETH to your MetaMask wallet!
ESCROW
- Solidity Contract FilesCLIENT
- Frontend Files
- Node.js >= 12.16.3
- Truffle and Ganache
- Ganache Port Number 8545
Frontend is developed using vanilla javascript. You do not need to a server to run the frontend. You can use live server in vscode.
truffle test
0x3B7e3ff9E864665DD747f2fa6D6A9a0780324c1b