EstateChain is a cutting-edge decentralized real estate platform built on Ethereum blockchain. It revolutionizes property transactions through smart contracts, NFTs, and advanced features for a seamless real estate experience. This is just a basic generic idea I wanted to create, it isn't fully perfect yet but I wanted to implement it anyway
- NFT-based Property Ownership: Each property is represented as a unique NFT with detailed metadata
- Property Tokenization: Fractional ownership of real estate properties
- Property Verification: On-chain property verification and documentation
- Rental Management: Automated rental collection and management
- Property Insurance: Integrated decentralized insurance options
- Market Analytics: Real-time property market analytics and trends
- Solidity ^0.8.20
- OpenZeppelin Contracts
- Hardhat Development Environment
- TypeChain for TypeScript bindings
- React 18 with TypeScript
- Chakra UI for modern design
- Ethers.js v6 for blockchain interaction
- React Query for server state management
- ESLint & Prettier for code formatting
- Jest & React Testing Library
- Hardhat Network
- TypeScript for type safety
- Solidity Coverage for contract testing
- Node.js (v18 or higher)
- npm or yarn
- MetaMask or similar Web3 wallet
- Git
- Clone the repository:
git clone https://github.com/sbdh11/EstateChain.git
cd estate-chain- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Start local blockchain:
npm run node- Deploy contracts to local network:
npm run deploy:local- Start development server:
npm startRun smart contract tests:
npm run test:contractsRun frontend tests:
npm testGenerate coverage report:
npm run coverageDeploy to testnet:
npm run deploy:testnetDeploy to mainnet:
npm run deploy:mainnetestate-chain/
βββ blockchain/
β βββ contracts/ # Smart contracts
β β βββ tokens/ # Token contracts
β β β βββ PropertyToken.sol
β β β βββ GovernanceToken.sol
β β βββ core/
β β β βββ PropertyRegistry.sol
β β β βββ PropertyValuation.sol
β β β βββ RentalManagement.sol
β β βββ governance/ # Governance contracts
β β β βββ DAO.sol
β β β βββ Timelock.sol
β β βββ interfaces/ # Contract interfaces
β βββ scripts/ # Deployment scripts
β β βββ deploy/
β β βββ verify/
β βββ test/ # Contract tests
β βββ unit/
β βββ integration/
βββ frontend/ # Frontend application
β βββ src/
β β βββ assets/
β β β βββ images/
β β β βββ styles/
β β βββ components/ # React components
β β β βββ common/
β β β βββ layout/
β β β βββ features/
β β βββ config/
β β βββ hooks/
β β βββ pages/
β β βββ services/
β β βββ types/
β β βββ utils/
β βββ public/
β βββ test/
βββ packages/
β βββ types/
β βββ utils/
βββ docs/
β βββ api/
β βββ contracts/
β βββ guides/
βββ tools/
βββ scripts/
βββ config/
We welcome contributions from the community! Please read our Contributing Guidelines and Code of Conduct before getting started.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.