A sophisticated blockchain-based real estate tokenization platform built on Arbitrum that enables property owners to tokenize real estate assets, manage rentals, and create a liquid secondary market for property shares. The platform combines traditional real estate investment with DeFi mechanics to provide a seamless, transparent, and efficient property investment ecosystem. It makes it easy for users to invest in real estate without any hassle.
Traditional real estate investments are often inaccessible due to high costs, lack of liquidity, and complex processes especially legal issues. The Xuel Tokenization Platform bridges this gap by allowing property owners to list properties and tokenize ownership into shares. Buyers can invest in fractions of properties, making real estate investments more affordable, liquid, and accessible.
- Live at: https://realestate-tokenization.vercel.app/
- video Demo : https://www.loom.com/share/6947288a359a43ec9ce464570784c8de
- Fractional Ownership: Properties are divided into shares, enabling fractional investment
- Flexible Configuration:
- Customizable total shares and share prices
- Configurable rent amounts and periods
- Detailed property information including images, description, and location
- Ownership Tracking: Advanced tracking of share distribution and transfers
- Smart Rent Collection:
- Automated rent period tracking
- Late fee calculation (0.1% per day, max 30%)
- Default status monitoring
- Rent Distribution:
- Proportional distribution based on share ownership
- Real-time rent accrual tracking
- Automated unclaimed rent handling
- Period Management:
- Configurable rental periods
- Automatic period transitions
- Default protection mechanisms
- Share Trading:
- List shares with custom pricing
- Batch listing management
- Price updates and cancellations
- Market Features:
- Price range filtering
- Active listing tracking
- User portfolio management
- Platform Security:
- 0.5% platform fee
- Automated rent claims before transfers
- Share ownership verification
- Owner Controls:
- Property details updates
- Financial parameter management
- Rent period configuration
- Communication System:
- Property-specific messaging
- Update and deletion capabilities
- Timestamp tracking
- Property Reviews:
- 1-5 star rating system
- Written feedback
- One review per address
- Review Management:
- Review storage and retrieval
- Review verification
- Historical tracking
- Data Structures:
struct Property {
uint256 id;
string name;
address payable owner;
uint256 price;
uint256 totalShares;
uint256 availableShares;
uint256 rent;
uint256 rentPool;
// ... additional fields
}
struct ShareListing {
uint256 propertyId;
address seller;
uint256 numberOfShares;
uint256 pricePerShare;
bool isActive;
// ... additional fields
}- Key Constants:
uint256 public constant PLATFORM_FEE = 50; // 0.5%
uint256 public constant LATE_FEE_RATE = 10; // 0.1% per day
uint256 public constant MAX_LATE_FEE = 3000; // 30%- Access Control:
- Owner-specific functions
- Share ownership verification
- Rental period restrictions
- Financial Safety:
- Overflow protection
- Failed transfer handling
- Balance verification
- Error Handling:
- Custom error messages
- State validation
- Transaction reversal protection
function listProperty(
address payable _owner,
string memory _name,
uint256 _price,
uint256 _totalShares,
uint256 _rent,
uint256 _rentPeriod,
string memory _images,
string memory _description,
string memory _propertyAddress
) externalfunction purchaseShares(
uint256 _propertyId,
uint256 _shares,
address _buyer
) external payablefunction payRent(
uint256 _propertyId,
address _payer
) external payableThe contract emits detailed events for all major actions:
- Property listings and updates
- Share transfers and trades
- Rent payments and claims
- Default status changes
- Platform fee withdrawals
- Prerequisites:
- Solidity ^0.8.0
- Arbitrum Sepolia testnet
- Hardhat or Truffle
It can be active or inactive.
If the period is active, that means rent has been paid for that period.
If the period is inactive, that means rent has not been paid for that period.
After the period is over, the period becomes inactive until the rent is paid again.
Shareholders can set the price and the number of shares they want to sell.
The lister can cancel his listings from the marketplace also.
The property owner can buy back shares from the marketplace.
When shares are bought from the marketplace, the accrued rent your previous shares of the property "(if you have shares on the property before)" is automatically claimed.
They can claim thier accrued rent whenever they want.
It is advisable for the share holder to claim their rent before the period ends.
At the end of the rent period, the property owner can claim the rent of shares that where not sold.
The rent you accrue depends on the percentage of shares you own and how long you hold them.
If you sell your shares in the secondary market, you will not accrue any more rent for that period, the buyer will accrue the rent for the rest of the period.
The property owner can pass a message for a property, and the message can be viewed by the shareholders or anyone.
The contract owner can also pass a message the same way.
- Connect wallet and ensure sufficient ETH for gas
- Create new property listing with required details
- Set share distribution and rental terms
- Monitor and manage property performance
- You can also update the property details but you can only update the financial details if the period is inactive.
- You can send a message that will be displayed to anyone viewing the property.
- Browse available properties
- Purchase shares directly or through marketplace
- Collect rental income from owned shares
- Trade shares on secondary market
- Main Contract:
0x039B0a4E5C69CD5C356c8d94d86C79BD208Ea3ad - Network: Arbitrum Sepolia
If you have suggestions for improvements or new features, please open an issue or submit a pull request.