Skip to content

nishanktiwari17/Land-Registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🏠 Blockchain-Based Land Registry System

This project implements a decentralized web framework for property registration using Ethereum blockchain, IPFS, Node.js, and MongoDB. The solution aims to bring transparency, immutability, and trust to the process of land registration, eliminating fraudulent intermediaries and ensuring secure, tamper-proof records.


🚀 Overview

Traditional land registration systems in India are prone to corruption, manipulation, and lack of transparency due to heavy dependence on intermediaries and paper-based workflows.
This project proposes a blockchain-based decentralized application (dApp) to overcome these issues.

The platform connects buyers, sellers, and government officials through smart contracts, ensuring every transaction is validated cryptographically and stored on a public Ethereum network.


🎯 Objectives

  • Ensure transparency and trust in property transactions
  • Remove the need for third-party intermediaries
  • Enable secure and immutable digital record-keeping
  • Reduce fraud and duplication in property transfers
  • Speed up the overall process of land registration

🧩 System Architecture

The system has three primary user roles:

  • Super Admin: Creates district admins and oversees all operations.
  • Admin: Verifies users, validates land details, and approves property sales.
  • User (Buyer/Seller): Registers, lists, or buys land through verified blockchain transactions.

Components

  • Frontend: React.js web client connected via Web3.js
  • Backend: Node.js + Express server handling API calls and event listeners
  • Blockchain: Ethereum smart contracts (Solidity + Truffle)
  • Database: MongoDB for user and district data
  • Storage: IPFS for decentralized file uploads

⚙️ Technologies Used

Layer Technology Purpose
Smart Contracts Solidity, Truffle Core logic for property registration & transactions
Blockchain Ethereum (Ganache local network) Distributed ledger for tamper-proof records
Web3 Integration web3.js, MetaMask Connects client with blockchain
Backend Node.js, Express, Mongoose API services and event subscriptions
Database MongoDB Stores verified users and metadata
File Storage IPFS Decentralized document storage
Testing Mocha, Chai Contract testing and validation

🧠 Working Methodology

  1. Super Admin Creation: The super admin registers admins for each district.
  2. User Registration: Users register using MetaMask and provide identification documents.
  3. Admin Verification: Admin verifies user identity and district association.
  4. Land Registration: Verified users add land details, which are hashed and stored on-chain.
  5. Land Listing: Sellers mark their land as “available” for sale.
  6. Buy Request: Buyers request to purchase verified land.
  7. Verification & Approval: Admin validates the transaction; seller and admin approve.
  8. Ownership Transfer: The smart contract executes ownership transfer securely on Ethereum.

💻 Installation & Setup

1. Clone the Repository

git clone https://github.com/nishanktiwari17/Land-Registry.git
cd Land-Registry


### Truffle Steps

- `truffle init`
- Add Contracts to "contracts" folder
- `truffle compile`
- Add/Create  migrations file
- `truffle migrate --network ganache`

### Change abi at 3 locations within files: index.js, test.js, .env
### Remove public from superAdmin in the solidity contract
### Change network ID in script (5777)

---
## STEPS

cd truffle

Set correct network parameters in "truffle-config.js"
Set the deployer address in the migration file for deploying contracts

run run-ganache.ps1 (it will start the ganache test network)

run dep-mig-copy.ps1 (it will deploy the contract)

`cd web/client`

Create `.env` file by taking the reference of `.env.sample` file (in the same folder where .env.sample is present)



*If you don't want to modify any file in the web folder

`npm start` (it will copy the new ABI and new contract address in the public/contract_details.json file)

\
*If you want to modify files in the web folder

`npm run dev`

### After contract update

`cd web`

Restart web server (it will copy the new ABI and new contract address in public/contract_details.json file)

About

Blockchain based Web-application which helps transferring legacy data and securely housing confidential information within smart contracts using Hyperledger Fabric and Solidity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors