F002-wallet_app.component.cspec
1 # F002-wallet_app.component.cspec 2 3 metadata: 4 id: F002 5 name: wallet_app 6 version: 1.1.0 7 domain: frontend 8 stability: high_change 9 updated: 2026-01-15 10 cascade_priority: 20 11 roles: 12 primary: [Dev] 13 review: [Security] 14 expertise: 15 required: [react, typescript, mobile] 16 helpful: [tauri, swift, kotlin, wasm] 17 context_tags: [wallet, mobile, desktop, web, trading, governance] 18 19 dependencies: 20 upstream: [F001, F008, F009] 21 downstream: [] 22 23 interface: 24 types_ref: _registry/types.cspec 25 types: 26 account: {seed: isolated, features: role_detected} 27 pocket: enum[alpha, dx, sax] 28 trading_mode: enum[simple, pro, market_maker] 29 persona: enum[personal, trader, operator, developer] 30 31 functions: 32 create_wallet: {inputs: [], outputs: [mnemonic, account]} 33 restore_wallet: {inputs: [mnemonic], outputs: [account]} 34 send_alpha: {inputs: [to, amount], outputs: [tx_id]} 35 receive_alpha: {inputs: [], outputs: [address, qr]} 36 mint_sax: {inputs: [alpha_amount], outputs: [sax_amount, tx_id]} 37 redeem_sax: {inputs: [sax_amount], outputs: [alpha_amount, tx_id]} 38 submit_order: {inputs: [order], outputs: [order_id]} 39 vote: {inputs: [proposal_id, vote], outputs: [tx_id]} 40 41 events: 42 - wallet_created 43 - transaction_submitted 44 - balance_updated 45 - order_filled 46 47 spec: 48 # === PLATFORM STRUCTURE === 49 structure: 50 acdc-wallet/: 51 core/: shared_wallet_core_bindings 52 shared/: 53 components/: [] 54 hooks/: [] 55 stores/: [] 56 utils/: [] 57 platforms/: 58 ios/: swift_swiftui 59 android/: kotlin_compose 60 desktop/: tauri_react 61 web/: react_wasm 62 e2e/: end_to_end_tests 63 64 # === MULTI-ACCOUNT MODEL === 65 accounts: 66 model: isolated_seeds 67 features: 68 - each_seed_fully_isolated 69 - no_cross_account_key_access 70 - separate_device_mesh_per_account_optional 71 - clear_visual_distinction 72 73 # === THREE POCKETS VIEW === 74 pockets: 75 alpha: 76 privacy: private 77 actions: [send, receive, mint_sax] 78 dx: 79 privacy: private 80 actions: [vote, stake] 81 sax: 82 privacy: public 83 actions: [trade, redeem, off_ramp] 84 85 # === EXTERNAL CHAINS === 86 external_chains: 87 ecosystem_keys: 88 - synced_across_device_mesh 89 - recoverable_via_seed 90 - backed_by_name_service 91 imported_keys: 92 - device_local_only 93 - not_synced 94 - not_recoverable_from_ecosystem_seed 95 - sweep_to_ecosystem_action 96 chains: [btc, eth, sol, trx] 97 tokens: [usdt, usdc] # Supported on applicable chains (ETH, TRX, SOL) 98 99 # === TRADING INTERFACE === 100 trading: 101 simple_mode: 102 - market_buy_sell 103 - basic_limit_orders 104 - simple_position_view 105 - basic_charts 106 pro_mode: 107 - all_order_types 108 - tradingview_charting 109 - depth_of_market 110 - position_analytics 111 - hotkeys 112 - api_access 113 market_maker_mode: 114 - quick_quote_bid_ask 115 - bulk_order_management 116 - inventory_tracking 117 - revenue_analytics 118 119 # === CONDITIONAL UI === 120 conditional_features: 121 validator_tab: "account.addresses.any IN validator_set" 122 prover_tab: "account.addresses.any IN prover_pool" 123 delta_governance_tab: "account.dx_staked >= 10k_DX" # Delta governance only; Alpha governance via F003 124 mm_mode: "user.persona == TRADER OR user.enabled_mm_mode" 125 126 # === ONBOARDING === 127 onboarding: 128 required_initial: 129 - create_seed_phrase_24_words 130 - verify_seed_phrase 131 progressive_prompts: 132 - device_mesh_setup 133 - recovery_method_social_or_shamir 134 - name_registration 135 - persona_selection 136 nag_behavior: 137 - semi_obtrusive_banner 138 - escalates_over_time 139 - contextual_triggers_balance_thresholds 140 - disappears_when_complete 141 142 # === SCREEN INVENTORY === 143 screens: 144 onboarding: [welcome, seed_generate, seed_verify, setup_complete, progressive_setup] 145 wallet: [home, alpha_pocket, dx_pocket, sax_pocket, external_chains, imported_wallets] 146 trading: [simple_mode, pro_mode, market_maker_mode, order_entry, position_detail, swap] 147 delta_governance: [proposals_list, proposal_detail, vote, history] # Delta chain governance 148 validator_prover: [status, rewards, history] 149 settings: [account_switcher, security, backup, preferences, accessibility, network, about] 150 help: [ai_assistant, community_link] 151 152 # === STATE MANAGEMENT === 153 stores: 154 - AccountStore: multi_account_active_account 155 - WalletStore: balances_addresses_per_account 156 - TransactionStore: history_pending 157 - SettingsStore: preferences_theme 158 - NetworkStore: mainnet_testnet_connection 159 - DeltaGovernanceStore: delta_proposals_votes # Delta governance only 160 161 persistence: 162 - encrypted_local_storage 163 - ipfs_backup_sync 164 - chain_state_derived_on_restore 165 166 changelog: 167 - version: 1.1.0 168 date: 2026-01-15 169 type: fix 170 description: "Renamed governance to delta_governance - Alpha governance is via governor console" 171 breaking: false 172 173 - version: 1.0.0 174 date: 2026-01-14 175 type: initial 176 description: "Initial wallet app spec from UI/UX Specification v1.0" 177 breaking: false