Skip to content

ethlucky/openrwa

Repository files navigation

Real Estate RWA Tokenization Platform

Tokenize Real World Assets (RWA) with Compliance, Security, and Ease.

📖 Introduction

The Real Estate RWA Platform is a cutting-edge solution designed to bridge the gap between traditional real estate investing and blockchain technology. It enables the fractionalization of real estate assets into compliant security tokens (ERC-3643), offering high liquidity to investors while ensuring strict adherence to regulatory standards (KYC/AML).

This platform provides a seamless experience for:

  • Investors: To browse, purchase, and trade real estate tokens using stablecoins (USDC/USDT).
  • Issuers: To tokenize assets, manage SPVs, and distribute dividends.
  • Admins: To oversee compliance, manage asset listings, and monitor platform health.

✨ Key Features

🏢 For Investors

  • Seamless Onboarding: Web2-friendly login via email/socials (using Privy) with embedded wallets.
  • Marketplace: Browse vetted real estate properties with transparent financial data (APY, Cap Rate).
  • Portfolio Management: Track holdings, view daily rental yields, and claim dividends.
  • Secondary Trading: (Coming Soon) Hybrid exchange for instant liquidity.

🏦 For Issuers & Admins

  • Asset Origination: Tools to configure asset tokemonics, upload legal documents, and deploy permissioned tokens.
  • Compliance First: Built-in integration with Sumsub for KYC/AML. Only whitelisted identities can hold tokens.
  • Dividend Distribution: Automated distribution of rental income to token holders in stablecoins.

🛡️ Security & Architecture

  • Permissioned Tokens: Uses ERC-3643 (T-REX) standard to enforce compliance at the smart contract level.
  • Treasury Management: Funds secured via Gnosis Safe multi-sig wallets.
  • Transparent Valuation: Assets are anchored to real-world legal entities (SPVs) with periodic NAV updates via Oracles.

🛠️ Tech Stack

Frontend

  • Framework: Next.js 16 (React 19)
  • Language: TypeScript
  • Styling: Tailwind CSS, Shadcn UI
  • Web3 Integration: Wagmi, Viem, Privy (Auth & Wallet)
  • State Management: TanStack Query

Backend

  • Language: Go (Golang)
  • Framework: Gin Web Framework
  • Database: PostgreSQL
  • Caching: Redis
  • blockchain Interaction: go-ethereum

Blockchain

  • Network: Ethereum / Polygon / Avalanche (EVM Compatible)
  • Contracts: Solidity (Foundry framework)
  • Standard: ERC-3643 (T-REX)

🚀 Getting Started

Prerequisites

Ensure you have the following installed:

Installation

  1. Clone the repository

    git clone <repository-url>
    cd rwa
  2. Initialize Database

    cd backend
    ./init-db.sh
  3. Backend Setup

    cd backend
    go mod download
    cp .env.example .env # (If available, otherwise script creates it)
  4. Frontend Setup

    cd frontend
    npm install

Running the Application

Option 1: Quick Start (Recommended)

Open two terminal windows:

Terminal 1 (Backend):

cd backend
./start-server.sh
  • Server runs on: http://localhost:8080
  • Swagger Docs: http://localhost:8080/swagger/index.html (if enabled)

Terminal 2 (Frontend):

cd frontend
npm run dev
  • App runs on: http://localhost:3000

📂 Project Structure

rwa/
├── backend/            # Go backend service
│   ├── cmd/            # Entry points
│   ├── internal/       # Business logic (Services, Models, Handlers)
│   └── scripts/        # Database & utility scripts
├── frontend/           # Next.js frontend application
│   ├── app/            # App router pages
│   ├── components/     # Reusable UI components
│   └── lib/            # Utilities & Web3 config
├── contracts/          # Solidity smart contracts (Foundry)
└── scripts/            # Deployment & CI scripts

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your Feature Branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

📄 License

MIT

About

open rwa for web3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published