TITLE: Essential Development Commands for Quantum Purse DESCRIPTION: This section provides a list of essential 'npm' commands for developing and building the Quantum Purse application. It covers dependency installation, starting web and native apps in development mode, building production versions for various platforms, and running tests to ensure functionality. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_7 LANGUAGE: shell CODE: ``` # Install dependencies npm install # start web app in development mode npm run start:web # Build web app core npm run build:web # start native app in development mode npm run start:app # Build native app for mac, win, linux npm run build:app # Run test npm run test ``` ---------------------------------------- TITLE: Configure Mainnet/Testnet Flag in TypeScript DESCRIPTION: This snippet shows how to switch between mainnet and testnet configurations by modifying the 'IS_MAIN_NET' flag in 'src/core/config.ts'. Setting it to 'true' enables mainnet, while 'false' enables testnet, controlling the application's network environment. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_6 LANGUAGE: typescript CODE: ``` export const IS_MAIN_NET = false; ``` ---------------------------------------- TITLE: Quantum Purse Wallet Recovery Process DESCRIPTION: Explains how Quantum Purse recovers wallets by sequentially generating child keys from a seed phrase until 5 consecutive empty accounts are found, along with current limitations and workarounds. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_5 LANGUAGE: APIDOC CODE: ``` Wallet Recovery: Process: Imports seed phrase, generates child keys sequentially from index 1. Termination: Continues until 5 consecutive empty accounts (no transaction history) are encountered. Important Note: Current Limitation: Recovering on a newly setup Quantum Purse may only create the first account due to Light Client speed. Workaround: Create accounts, determine starting block via CKB explorer, then set starting blocks manually via each account's context menu. ``` ---------------------------------------- TITLE: CKB Minimum Requirements for Quantum Purse Cells DESCRIPTION: Specifies the minimum CKB required per Quantum Purse cell due to the larger size of the quantum lock script, noting that smaller transfers will be rejected by the chain. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_3 LANGUAGE: APIDOC CODE: ``` CKB Requirements: Minimum CKB per Quantum Purse cell: 73 CKB Note: Smaller transfers will be rejected by the chain ``` ---------------------------------------- TITLE: CKB Light Client Integration and Usage Notes DESCRIPTION: Details how Quantum Purse runs an in-browser CKB light client, including sync status display and important considerations for smooth operation and account syncing. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_4 LANGUAGE: APIDOC CODE: ``` CKB Light Client: Integration: Runs directly in browser (nervosnetwork/ckb-light-client) Sync Status Display: Peers connected, sync percentage (right side of app's header) Important Notes: Connection Establishment: 5-10 seconds Account Syncing (newly added): 10-30 seconds Smooth Experience: Ensure PEERS > 0 before wallet creation Slow Sync (if PEERS = 0): Set 'starting block' manually for each account Multiple Accounts Sync: One new account syncing from block 0 will delay others. Provide proper starting blocks. ``` ---------------------------------------- TITLE: SPHINCS+ Parameter Sets Supported by Quantum Purse DESCRIPTION: Details the 12 NIST-approved SPHINCS+ parameter sets supported by Quantum Purse, based on hashing algorithms, security parameter lengths, and optimization methods. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_1 LANGUAGE: APIDOC CODE: ``` SPHINCS+ Parameter Sets: Supported Variants: All 12 NIST-approved parameter sets Combinational Results of: Hashing Algorithms: Sha2, Shake Security Parameter Length: 128 bit, 192 bit, 256 bit Optimization Methods: s (small signature), f (fast signature generation) ``` ---------------------------------------- TITLE: Quantum Purse Feature List DESCRIPTION: Overview of the key features and technical specifications of the Quantum Purse wallet, including signature type, storage model, encryption, and authentication methods. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_0 LANGUAGE: APIDOC CODE: ``` Feature List: Signature type: SPHINCS+ Store model: Indexed DB Mnemonic standard: Custom BIP39 English Local encryption: AES256 Key derivation: Scrypt Authentication: Password Password hashing: Scrypt RPC endpoint: Not required Light Client: Supported (Chrome-based & Safari) ``` ---------------------------------------- TITLE: NIST Post-Quantum Security Level Categories and SPHINCS+ Mapping DESCRIPTION: Explains the five broad security strength categories defined by NIST for post-quantum cryptography and how SPHINCS+ variants map to these categories based on their security parameter length. SOURCE: https://github.com/tea2x/quantum-purse-web-static/blob/main/README.md#_snippet_2 LANGUAGE: APIDOC CODE: ``` NIST Post-Quantum Security Categories: Category 1: Key search on a block cipher with a 128-bit key (e.g. AES128) Category 2: Collision search on a 256-bit hash function (e.g. SHA256/ SHA3-256) Category 3: Key search on a block cipher with a 192-bit key (e.g. AES192) Category 4: Collision search on a 384-bit hash function (e.g. SHA384/ SHA3-384) Category 5: Key search on a block cipher with a 256-bit key (e.g. AES 256) SPHINCS+ Variant Mapping: 128-bit security parameter: Category 1 192-bit security parameter: Category 3 256-bit security parameter: Category 5 ```