Disclaimer: This project was developed for educational purposes only and should not be used in production environments. The code and resources provided here are intended to demonstrate the concepts and technology discussed in the thesis and provided as-is without warranty of any kind.
FractoReal is a blockchain-based real estate management system that leverages smart contracts to facilitate the management and fractional ownership of real estate properties. The system allows property owners to tokenize their real estate assets into NFTs (Non-Fungible Tokens) and further fractionalize them into ERC-1155 tokens. This enables multiple investors to own fractions of a property, making real estate investment more accessible and liquid. The system also provides a DAO (Decentralized Autonomous Organization) for managing the properties and making decisions collectively for shared assets, as well as rent distribution and charge management functionalities.
Here are the addresses and deployment transaction hashes of the deployed smart contracts on the Sepolia network:
Contract Name | Contract Address | Deployment Transaction |
---|---|---|
FractoRealNFT.sol | 0x1F3706f4e43C061Fb880f832C96eEabC9978FD84 |
0xf1c34336eea... |
FractoRealFractions.sol | 0xaE2A3F9Ced096ff2236fA31b487978df267f8eED |
0xeb19fbf27adb0... |
ChargeManagement.sol | 0x880E2EbF333bdB47855cB4f16E9E6DBa4928d91B |
0xd11efcf067c1b... |
contracts/
: Contains the Solidity smart contracts.scripts/
: Contains the deployment and testing scripts.test/
: Contains the test cases for the smart contracts.gas-reporter/
: Contains the gas reporter results.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/ahbanavi/FractoReal.git cd FractoReal
-
Install the dependencies:
npm install
-
Run the tests:
npm run test
To set up the Hardhat environment variables, run the following command and do what it says:
npx hardhat vars setup
Here are the variables that you need to set up:
Mandatory:
INFURA_API_KEY=your_infura_api_key
SEPOLIA_PRIVATE_KEY=your_sepolia_private_key
ETHERSCAN_API_KEY=your_etherscan_api_key
Optional:
GANASHE_MNEMONIC=your_ganashe_mnemonic
COIN_MARKET_CAP_API_KEY=your_coin_market_cap_api_key
To deploy the contracts, run the following command:
npm run deploy
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. You are free to share, copy and adapt the material in any medium or format for non-commercial purposes with proper attribution, providing a link to the license, and indicating if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
This project was developed as part of the Master's thesis titled "Management of Real Estate Investments on the Blockchain Platform based on Smart Contract and NFT" by Amir Hossein Banavi under the supervision of thesis advisor D. Bahrepour Ph.D. and consulting advisor SR. Kamel Tabbakh Ph.D.. The Department of Computer Engineering, Mashhad Branch, Islamic Azad University, Mashhad, Iran. retains the ownership of this project.