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:

  1. New YRTToken contract deployed

  2. 1000 YRT minted to your address

  3. Period 1 automatically started

  4. Maturity date set (now + 180 seconds)

  5. 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:

  1. New OwnaPool contract deployed

  2. Pair: YRT/USDC

  3. Pool is empty (no liquidity yet)

  4. 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:

  1. 500 YRT transferred to pool

  2. 500 USDC transferred to pool

  3. You receive LP tokens

  4. Pool is now active!

  5. 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:

  1. 50,000 USDC transferred from your wallet to factory

  2. Yield recorded for Period 1

  3. Ready for distribution after snapshot


Step 6: Snapshot & Distribution

No action required!

Chainlink Automation will:

  1. Monitor maturity date

  2. 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:

  1. Gets snapshot holders list (frozen at maturity)

  2. Calculates proportional yield for each holder

  3. Transfers USDC to each holder automatically

  4. 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:

  1. Fundraising period (90 days)

  2. Deposit yield

  3. Snapshot (automatic)

  4. Distribution

  5. 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

  1. Deposit yield early (1-2 days before maturity)

    • Ensures Chainlink can trigger snapshot

    • Avoids last-minute issues

  2. Monitor Chainlink Upkeep

    • Check status: https://automation.chain.link/base-sepolia

    • Ensure LINK balance > 5 LINK

  3. Distribute immediately after snapshot

    • Better UX for users

    • Shows professionalism

Communication

  1. Announce periods in advance

    • Share maturity dates

    • Expected yield amounts

    • Distribution timeline

  2. Update users on progress

    • "Yield deposited ✅"

    • "Snapshot taken ✅"

    • "Distribution complete ✅"

  3. Transparency

    • Share contract addresses

    • Verify on BaseScan

    • Publish yield calculations

Risk Management

  1. Start with demo periods (3-10 minutes)

    • Test full flow

    • Verify automation works

    • Fix issues before production

  2. Use testnet first (Base Sepolia)

    • No real money at risk

    • Learn the system

    • Train your team

  3. Have yield ready

    • Don't promise yield you can't deliver

    • Maintain USDC balance

    • Plan for periods in advance


Troubleshooting

Snapshot Not Triggered

Check:

  1. Maturity date reached?

  2. Yield deposited?

  3. 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:

  1. Snapshot taken?

  2. Sufficient USDC balance in factory?

  3. Gas limit (use batchDistribute for many holders)?



Congratulations! Your property is now tokenized! 🎉

Need Help?


Last Updated: January 2025

Last updated