CygnusWealth is a privacy-first, decentralized portfolio aggregation system built with Domain-Driven Design principles. The architecture emphasizes client-side sovereignty, read-only integrations, and modular domain boundaries.
- Client-Side Sovereignty: All processing happens in the browser, no server-side data storage
- Read-Only Operations: System never handles private keys or transaction signing
- Domain Isolation: Each domain has clear boundaries and responsibilities
- Type Safety: Shared data models ensure consistency across domains
- Privacy First: No telemetry, analytics, or external data sharing
CygnusWealth is organized into four strategic domains, each containing one or more bounded contexts:
Domains/
├── Contract/ # Shared contracts and data models
│ └── data-models # Unified data structures
├── Portfolio/ # Core business domain
│ ├── portfolio-aggregation # Orchestration and aggregation
│ └── asset-valuator # Pricing and valuation
├── Integration/ # External data acquisition
│ ├── wallet-integration-system # Wallet connections
│ ├── evm-integration # Ethereum/EVM blockchains
│ ├── sol-integration # Solana blockchain
│ └── robinhood-integration # Traditional finance
└── Experience/ # User interfaces
└── cygnus-wealth-app # Main web application
Each bounded context lives in its own repository under the cygnus-wealth GitHub organization.
See Repository Organization Strategy for detailed GitHub structure.
- data-models: Unified data structures that normalize diverse sources
- Acts as the ubiquitous language across all domains
- Ensures type safety and consistency
- Provides the canonical representation for all assets
- wallet-integration-system: Manages wallet provider connections
- evm-integration: EVM blockchain data retrieval and wallet tracking
- sol-integration: Solana blockchain data retrieval and wallet tracking
- robinhood-integration: Traditional finance data retrieval
- Each integration handles its own connection management and data fetching
- portfolio-aggregation: Orchestrates data collection from all integrations
- asset-valuator: Provides pricing and valuation services
- cygnus-wealth-app: User interface, interaction, and configuration
- Manages user preferences including which addresses to track
- Handles visualization and user experience
- Contract Domain - Shared language and contracts
- Portfolio Domain - Core business logic
- Integration Domain - External data acquisition
- Experience Domain - User interfaces
- Data Models - Unified data structures
- Portfolio Aggregation - Orchestration logic
- Asset Valuator - Pricing services
- Wallet Integration System - Wallet connections
- EVM Integration - Ethereum/EVM support
- Solana Integration - Solana support
- Robinhood Integration - TradFi support
- CygnusWealth App - Web application
Directives are architecture decisions, analyses, and recommendations produced during bead work. They live inside their target domain under directives/.
- Integration Domain (9 directives) — RPC strategy, wallet architecture, CEX integrations
- Experience Domain (1 directive) — Dashboard analysis
See each domain's README for the full directive index.
- Domain Contracts - Inter-domain communication contracts
- E2E Testing Strategy - Enterprise-wide E2E testing policy per bounded context
- Repository Organization Strategy - GitHub organization and repository structure
- User interactions trigger events in cygnus-wealth-app
- App delegates to portfolio-aggregation for data orchestration
- wallet-integration-system provides connected addresses
- Portfolio aggregation coordinates calls to blockchain integrations
- Integration domains fetch data from external sources
- Data is transformed to unified data-models format
- asset-valuator enriches data with pricing information
- Portfolio aggregation combines and deduplicates data
- App receives aggregated portfolio and presents to user
External Sources → Integration Domain → Portfolio Domain → Experience Domain → User
↓ ↓
Contract Domain Asset Valuator
(Data Models)
- TypeScript: Primary language across all domains
- React 19: UI framework (core application)
- Vite: Build tooling
- Vitest: Testing framework
- Web3 Libraries: ethers, @solana/web3.js
- State Management: Zustand, React Context
- No Private Keys: System never accesses or stores private keys
- Read-Only: All blockchain interactions are read-only
- Local Storage: Encrypted local storage for user preferences
- IPFS Backup: Optional decentralized backup without central servers
- Client Validation: All data validation happens client-side
- Domain Boundaries: Respect domain boundaries, avoid cross-domain dependencies
- Contract First: Define data models before implementation
- Type Safety: Leverage TypeScript for compile-time safety
- Testing: Unit tests for domains, integration tests for contracts
- Documentation: Keep domain documentation up-to-date
- Additional blockchain integrations (Bitcoin, Cosmos, etc.)
- More CEX integrations (Coinbase, Binance, etc.)
- Advanced portfolio analytics
- Multi-signature wallet support
- Hardware wallet integration