Skip to content

ycsmiley/solana-real-estate-tokenization

Repository files navigation

🏠 PropertyManager - Solana 房地產代幣化平台

一個基於 Solana 區塊鏈的完整房地產代幣化解決方案,支持房地產投資、NFT 分割和二級市場交易。

🌟 特色功能

🏢 PropertyManager 合約

  • 房地產代幣化: 將實體房地產轉換為可交易的數字代幣
  • 投資管理: 支持 USDC 投資和自動代幣分配
  • 狀態管理: 完整的項目生命週期管理 (Pending → Presale → Building → Completed)
  • 資金安全: 多重驗證和安全的資金提取機制

🎨 FractionalToken 合約 (cNFT-Ready)

  • NFT 分割: 將房地產代幣進一步分割為 NFT
  • cNFT 架構: 為 Compressed NFT 預留的升級路徑
  • 元數據管理: 完整的 NFT 屬性和元數據支持
  • 集合管理: PropertyCollection 創建和管理

🏪 Marketplace 合約

  • P2P 交易: 安全的點對點 NFT 交易
  • 掛單系統: 創建、更新、取消掛單功能
  • 手續費機制: 0.5% 平台手續費收取
  • 出價功能: 競價和接受出價機制

🏗️ 技術架構

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  PropertyManager │    │ FractionalToken │    │   Marketplace   │
│                 │    │                 │    │                 │
│ • 建案管理      │    │ • NFT 分割      │    │ • P2P 交易      │
│ • 投資流程      │◄──►│ • cNFT-Ready    │◄──►│ • 掛單系統      │
│ • 資金管理      │    │ • 集合管理      │    │ • 手續費收取    │
└─────────────────┘    └─────────────────┘    └─────────────────┘

🚀 快速開始

環境要求

  • Node.js 16+
  • Rust 1.70+
  • Solana CLI 1.16+
  • Anchor Framework 0.32.1

安裝依賴

# 安裝 Node.js 依賴
npm install

# 安裝 Rust 依賴 (自動處理)
anchor build

本地開發

# 啟動本地測試網路
solana-test-validator --reset

# 部署合約
anchor deploy

# 運行測試
anchor test

🧪 測試

完整測試套件

# PropertyManager 測試
npm run test:property

# FractionalToken 測試  
npm run test:fractional

# Marketplace 測試
npm run test:marketplace

# 整合測試
npm run test:integration

測試覆蓋率

  • PropertyManager: 7/7 測試通過
  • FractionalToken: 4/4 測試通過
  • Marketplace: 11/11 測試通過
  • 整合測試: 100% 功能覆蓋

📋 Program IDs

Localnet

PropertyManager:  8wJmXDzV4a2St6MSRWNyNt2qu6wgHs9voDxCSieSbj5c
FractionalToken:  9c6Szz2pU3wkNJ3MRwEcKRftatQ5jHmX7HkRG6pKCcHv
Marketplace:      BaQyE91rcpvGrVYPEGxhokH25cQBSc3JYeBExGRujkaZ

🔄 使用流程

1. 建案創建

await propertyManagerProgram.methods
  .initializeProperty(
    propertyId,
    "未來之光",
    "PRT-FL", 
    new anchor.BN(5000),
    new anchor.BN(10_000_000_000)
  )
  .rpc();

2. 用戶投資

await propertyManagerProgram.methods
  .purchaseTokens(new anchor.BN(20_000_000_000))
  .accounts({
    property: propertyPDA,
    buyer: buyer.publicKey,
    // ...
  })
  .rpc();

3. NFT 分割

await fractionalTokenProgram.methods
  .mintPropertyFraction(
    recipient.publicKey,
    new anchor.BN(1),
    "Custom Metadata"
  )
  .rpc();

4. 市場交易

await marketplaceProgram.methods
  .createListing(
    new anchor.BN(2),
    new anchor.BN(12_000_000_000)
  )
  .rpc();

🏛️ 架構設計

cNFT-Ready 設計

FractionalToken 合約採用 cNFT-Ready 架構:

  • 當前使用標準 SPL Token 實現
  • 保留完整的 Compressed NFT 數據結構
  • 預留升級路徑,等待 mpl-bubblegum 生態系統穩定

安全特性

  • 多重簽名驗證: 所有關鍵操作需要適當授權
  • PDA 約束: 使用 Program Derived Address 確保賬戶安全
  • 溢出保護: 所有數學運算使用安全的 checked_* 方法
  • 狀態驗證: 嚴格的狀態轉換和約束檢查

📊 性能指標

  • 交易確認時間: ~400ms (本地測試網)
  • Gas 費用: 平均 0.000005 SOL per transaction
  • TPS: 支持 Solana 的高吞吐量 (65,000+ TPS)
  • 存儲效率: 使用 PDA 優化鏈上存儲

🛠️ 開發工具

  • Anchor Framework: Solana 程序開發框架
  • TypeScript: 類型安全的測試和客戶端代碼
  • Mocha: 測試框架
  • Solana Web3.js: Solana 區塊鏈交互

📝 更新日誌

詳細的更新記錄請查看 ChangeLog.md

🤝 貢獻

歡迎提交 Issue 和 Pull Request!

📄 授權

MIT License

🔗 相關連結


🏆 這是一個完全功能性的、經過全面測試的 Solana 房地產代幣化平台!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors