| name | project-context |
| description | Provides project-specific tech stack, architecture, and implementation rules for RWA real estate token analytics platform. |
Project Context
Basic Configuration
Project Nature
- Project Type: RWA (Real World Assets) analytics dashboard for tokenized real estate
- Usage Scope: Aggregated blockchain data analysis, portfolio monitoring, transaction tracking
- Implementation Policy: LLM-driven implementation, quality-focused, strict YAGNI principle adherence
Technology Stack
- Monorepo: Nx 22.4.0 with npm workspaces
- Frontend: Next.js 16 (App Router)
- Backend: NestJS 11 (standalone applications)
- Database: TimescaleDB + Drizzle ORM
- Language: TypeScript 5.9.2 (strict mode)
- Compiler: SWC
- Linting: ESLint 9 (flat config) + Prettier
- Git Hooks: Lefthook (pre-commit, pre-push)
- CI/CD: GitHub Actions
Project Structure
apps/
├── chain-slurper/ # NestJS standalone - blockchain transaction fetcher
├── chain-slurper-e2e/ # E2E tests for chain-slurper
├── rwa-cli/ # CLI for AI-powered contract parsing and tokenizer discovery
├── web/ # Next.js 16 frontend (App Router)
└── web-e2e/ # Playwright E2E tests for web
packages/
├── blockchain-connectors/ # @rwa/blockchain-connectors - EVM chain communication
├── tokenizer-adapters/ # @rwa/tokenizer-adapters - Token discovery adapters
└── db/ # @rwa/db - Drizzle ORM schemas and database utilities
Path Aliases
| Alias | Path | Description |
|---|
@rwa/db | packages/db/src | Database schemas and utilities |
@rwa/blockchain-connectors | packages/blockchain-connectors | EVM chain communication layer |
@rwa/tokenizer-adapters | packages/tokenizer-adapters | Token discovery and transaction parsing |
@rwa/chain-slurper | apps/chain-slurper/src | Chain slurper exports |
@rwa/web | apps/web/src | Web app exports |
Applications
chain-slurper
- Type: NestJS standalone application (no HTTP server)
- Purpose: Fetch and process blockchain transactions
- Entry:
SlurperService.run() - continuous blockchain monitoring
- Commands:
nx serve chain-slurper - development
nx build chain-slurper - production build
web
- Type: Next.js 16 with App Router
- Purpose: Analytics dashboard frontend
- Structure:
src/app/ with route groups
- Commands:
nx dev web - development (port 3001)
nx build web - production build
rwa-cli
- Type: CLI application (Commander.js)
- Purpose: AI-powered contract parsing and tokenizer discovery
- Features:
- Decode event topic hashes (local cache + 4byte.directory)
- Detect contract types (ERC-20, ERC-721, ERC-1155, ERC-3643)
- Fetch verified ABIs from block explorers
- Analyze factory contracts for token creation events
- Find similar contracts by creator/bytecode/events
- Scan factories for deployed tokens
- Commands:
nx build rwa-cli - build CLI
node dist/apps/rwa-cli/main.js --help - show commands
- Skill: See
/rwa-cli skill for detailed usage
Libraries
@rwa/db
Quality Tools
Git Hooks (Lefthook)
| Hook | Actions |
|---|
| pre-commit | prettier --check, eslint (staged files) |
| pre-push | nx affected -t lint typecheck test |
ESLint Configuration
- Flat config (
eslint.config.mjs)
- TypeScript-ESLint with projectService
- Nx module boundaries enforcement
- Prettier compatibility
Target Users
Retail Investors
- Private individuals seeking portfolio diversification through RWA
- Need simple analytics and portfolio tracking
Institutional Investors
- Funds and asset managers
- Require detailed analytics, historical data, and comprehensive reporting
Implementation Principles
Business Constraints
- Multi-chain Support: Aggregate data from multiple blockchains (Ethereum, Polygon, Arbitrum, etc.)
- Historical Data Storage: TimescaleDB for efficient storage and analysis of blockchain time-series data
- Real-time Updates: Track blockchain transactions and operations in real-time
Usage Scenarios
- Analyze available RWA real estate tokens before investment
- Monitor tokenized real estate portfolio
- Track transactions and operations in real-time
- Historical analysis of token yield and liquidity
Development Commands
nx serve chain-slurper
nx dev web
nx build <project>
nx run-many -t build
nx run-many -t lint
nx run-many -t test
nx run-many -t typecheck
nx affected -t lint test build
Development Structure
- Team Composition: Individual development (1 developer)
- Development Phase: Active development