Skip to content

saurabh-m-w/Blockchain-Based-Property-Registration

Repository files navigation

Blockchain-Based-Property-Registration

Land Registration using Blockchain

Problem it Solves:

  1. The elimination of middlemen: The elimination of middlemen or brokers makes the process of land registration less expensive. Brokers who try to defraud uninformed people will be unable to do so any longer. Brokers frequently take a long time to finish procedures, thus our project will help people save time.
  2. A distributed tamper-proof ledger that prohibits ownership fraud.
  3. IPFS is used to store important property registration papers in a secure manner.

Technology Stack:

  1. Ethereum Blockchain
  2. Polygon/Matic
  3. Web3Dart
  4. IPFS
  5. Flutter
  6. Metamask

Demo

Our Dapp is demonstrated in this video here

Run Application on deployed website

Check out the deployed website here

https://landregistry.live/

This is for demonstration purposes only. With this key, you can log in as Land Inspector:

6b86cddfedbec68ed2a1c7e14b993840a0848595ba5787aec9e8a38b18f0d96a

For user:

3ed4aff1a8ff8e28df3cd307112f9166886edcc85a27136908e3b1687b111f89

You can also use your own Ethereum wallet key as a user.

Check new Smart contract At Polygon Testnet: here

Check Smart contract At (discontinued) Ropsten Ethereum Testnet: here

To Run Application Locally

  1. Clone the github repository and cd to the folder
  2. Install the flutter 3.0.2, nodejs
  3. Install ganache and truffle as shown below:
npm install -g truffle
  1. Open Ganache and keep it running in the Background
  2. Install the Metamask chrome extension, choose the local network and import the accounts
  3. Compile and run our migrations from the command line as shown below:
truffle compile
truffle migrate

6 .Copy contract address as seen in the image below and paste in variable contractAddress located in the file ./lib/constant/constant.dart

2_deploy_migration.js
=====================

   Replacing 'Land'
   ----------------
   > transaction hash:    0x427b2b402f767ac6a90334ab3c687b086b274de747fe10d6e194743b15057d78
   > Blocks: 0            Seconds: 0
   >contract address:    0xed690C24C60A48F8A9819c9A15AD75B70CFBEa5a
   > block number:        3
   > block timestamp:     1650602828
   > account:             0x33e94e4619f0AecDf81e9676Eb82c109FBa53356
   > balance:             99.9154895
   > gas used:            3996227
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.07992454 ETH
  1. In constant.dart file, change the value of the variable chainId to '1337' and change the value of the variable rpcUrl to "http://127.0.0.1:7545"
  2. Run the flutter web app
flutter pub get

flutter run -d web-server --web-port 5555
  1. Open the browser and the dapp will be running in http://localhost:5555/
  2. Create mapbox api key from https://www.mapbox.com/ and Replace it with mapBoxApiKeyin constant.dart file

Project Flowchart

Screenshots

Home Page Wallet connect/Login
Contract Owner Dashboard User Registration
Land Inspector Dashboard User Verification
User Dashboard Adding land on Map
Land Gallery Land Details
Received Request Make Payment
Transfer ownership,Seller,buyer photo capture Witness info,photo capture,transfer ownership