Property Onboarding
Complete guide for property owners to tokenize property cash flows and manage yield distribution.
Who Is This For?
Property Owners - Want to raise capital by tokenizing future cash flows
Property Managers - Managing tokenized properties
Real Estate Companies - Looking to create liquid markets for their assets
Complete Onboarding Flow
( Required ) Property Information Ready
Before starting, prepare:
Property name (e.g., "Green Valley Apartment")
Token name (e.g., "Green Valley YRT")
Token symbol (e.g., "GV-YRT")
Initial supply (e.g., 1000 tokens)
Token price (e.g., 1 USDC per YRT)
Fundraising duration (e.g., 180 seconds for demo, 7,776,000 for 90 days)
Step 1: Create YRT Token
Understanding Parameters
Duration Examples:
Execute Creation
Using TypeScript/Frontend:
What Happens:
New YRTToken contract deployed
1000 YRT minted to your address
Period 1 automatically started
Maturity date set (now + 180 seconds)
Returns
seriesId(e.g., 1)
Step 2: Create DEX Pool
Why Create Pool?
Direct purchase is disabled. Users must buy via DEX for:
Fair price discovery
Liquidity incentives
Secondary market trading
Execute Pool Creation
What Happens:
New OwnaPool contract deployed
Pair: YRT/USDC
Pool is empty (no liquidity yet)
Returns
poolAddress
Step 3: Add Initial Liquidity
Understanding Initial Liquidity
Initial liquidity sets the starting price:
Recommended:
Add 50% of initial supply
Example: 1000 supply → add 500 YRT
Match with equal USDC value
Result: 1:1 starting price
Execute Liquidity Addition
What Happens:
500 YRT transferred to pool
500 USDC transferred to pool
You receive LP tokens
Pool is now active!
Users can start trading
Step 4: Fundraising Period
What Happens During Fundraising
Monitor Activity
Track pool state:
Track token distribution:
Wait for Maturity
Step 5: Deposit Yield
When to Deposit
Timing:
After maturity date reached
Before snapshot trigger
Recommended: 1-2 days before maturity for safety
Amount:
Based on property cash flow
Example: 50,000 USDC for quarterly rent collection
Execute Deposit
What Happens:
50,000 USDC transferred from your wallet to factory
Yield recorded for Period 1
Ready for distribution after snapshot
Step 6: Snapshot & Distribution
Automatic Snapshot (Chainlink)
No action required!
Chainlink Automation will:
Monitor maturity date
Trigger snapshot automatically when:
Maturity date reached ✅
Yield deposited ✅
Snapshot not taken yet ✅
Timeline:
Monitor snapshot:
Manual Distribution
After snapshot, you must trigger distribution:
What Happens:
Gets snapshot holders list (frozen at maturity)
Calculates proportional yield for each holder
Transfers USDC to each holder automatically
Users receive USDC in wallets (no claim needed)
Example Distribution:
Step 7: Start New Period (Optional)
When to Start New Period
Typical schedule:
Period 1 (Q1): Jan-Mar → Distribute → Start Period 2
Period 2 (Q2): Apr-Jun → Distribute → Start Period 3
Period 3 (Q3): Jul-Sep → Distribute → Start Period 4
Period 4 (Q4): Oct-Dec → Distribute → End or continue
Execute New Period
Cycle repeats:
Fundraising period (90 days)
Deposit yield
Snapshot (automatic)
Distribution
Start Period 3...
Supply Expansion
When to Expand Supply
Allowed during GAP period:
After snapshot taken
Before next period starts
Use case:
Property generates more cash flow
Want to raise more capital
Expand tokenization
Execute Mint
Add minted tokens to pool:
Best Practices
Timing
Deposit yield early (1-2 days before maturity)
Ensures Chainlink can trigger snapshot
Avoids last-minute issues
Monitor Chainlink Upkeep
Check status: https://automation.chain.link/base-sepolia
Ensure LINK balance > 5 LINK
Distribute immediately after snapshot
Better UX for users
Shows professionalism
Communication
Announce periods in advance
Share maturity dates
Expected yield amounts
Distribution timeline
Update users on progress
"Yield deposited ✅"
"Snapshot taken ✅"
"Distribution complete ✅"
Transparency
Share contract addresses
Verify on BaseScan
Publish yield calculations
Risk Management
Start with demo periods (3-10 minutes)
Test full flow
Verify automation works
Fix issues before production
Use testnet first (Base Sepolia)
No real money at risk
Learn the system
Train your team
Have yield ready
Don't promise yield you can't deliver
Maintain USDC balance
Plan for periods in advance
Troubleshooting
Snapshot Not Triggered
Check:
Maturity date reached?
Yield deposited?
Chainlink Upkeep funded?
Manual trigger (if needed):
Cannot Mint Tokens
Error: "Cannot mint during fundraising period"
Cause: Trying to mint during active fundraising
Solution: Wait for snapshot, then mint in GAP period
Distribution Failed
Check:
Snapshot taken?
Sufficient USDC balance in factory?
Gas limit (use batchDistribute for many holders)?
Related Documentation
Quick Start Guide - Overview for all users
User Trading Guide - Investor perspective
Snapshot System - How snapshots work
Chainlink Automation - Automatic triggers
Contract Addresses - Deployed contracts
Congratulations! Your property is now tokenized! 🎉
Need Help?
Last Updated: January 2025
Last updated
