A blockchain-based land registry system built for transparency, security, and efficiency. This project enables secure property registration, verification, and marketplace transactions using smart contracts on Ethereum.
- Hashed Identity Storage: User identity stored as cryptographic hashes for privacy
- Duplicate Prevention: Built-in checks for duplicate properties and documents
- IPFS Document Storage: Property documents stored on decentralized IPFS
- Land Inspectors: Physical verification of property claims
- Revenue Department: Approval required before marketplace listing
- Role-Based Access: Automatic UI adaptation based on user role
- Revenue Approval Gate: Properties only visible after government approval
- Multi-Bid System: Buyers can make multiple offers on properties
- Transparent Pricing: Clear display of listed, offered, and accepted prices
- Property Timeline: Track registration through all approval stages
- Staff Contacts: Both Land Inspector and Revenue Employee visible to owners
- On-Chain History: All transactions permanently recorded on blockchain
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, TypeScript, TailwindCSS, wagmi, viem |
| Smart Contracts | Solidity 0.8.20, Foundry |
| Local Blockchain | Anvil (Chain ID: 31337) |
| Styling | Tailwind CSS + Custom Design System |
- Node.js 18+
- Foundry (for smart contracts)
- Git
git clone https://github.com/Yug-Baid/DivFlow-Web3-Upgrade.git
cd DivFlow-Web3-Upgradecd contracts
anvilKeep this terminal running.
In a new terminal:
cd contracts
bash setup_and_deploy.shThis compiles, deploys, and updates frontend config automatically.
cd frontend
npm install
npm run devVisit http://localhost:3000 and connect your wallet (MetaMask).
| Role | Account | Address |
|---|---|---|
| Admin/Deployer | Account 0 | 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 |
| Land Inspector | Account 1 | 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 |
| Revenue Employee | Account 2 | 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC |
| Citizens | Account 3-9 | Use for testing registration & marketplace |
Import any account using private key from Anvil terminal output.
DivFlow-Web3-Upgrade/
├── contracts/ # Solidity smart contracts
│ ├── src/
│ │ ├── Users.sol # User registration (hashed identity)
│ │ ├── LandRegistry.sol # Property registration + duplicate prevention
│ │ ├── Properties.sol # Property state management
│ │ └── TransferOfOwnership.sol # Marketplace logic
│ ├── test/ # Foundry tests
│ └── script/ # Deployment scripts
├── frontend/ # Next.js 14 frontend
│ └── src/
│ ├── app/ # App router pages
│ ├── components/ # Reusable UI components
│ └── lib/ # Utilities & contract config
└── .agent/workflows/ # Development documentation
├── divflow-development.md # Development roadmap
└── divflow-bugs.md # Bug tracking
1. Register Property → Property created (Pending Review)
↓
2. Inspector Verifies → Property verified ✓
↓
3. Owner Lists for Sale → Sale Pending (awaiting Revenue approval)
↓
4. Revenue Approves → Property visible on Marketplace
↓
5. Buyer Makes Offer → Seller sees all bids
↓
6. Seller Accepts → Buyer can pay within 1 hour
↓
7. Payment Complete → Ownership transferred on-chain
cd contracts
forge test -vvvUpdate contracts/script/Deploy.s.sol and run:
forge script script/Deploy.s.sol --rpc-url <RPC_URL> --broadcast- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License.
Built with ❤️ for DivFlow Hackathon 2026