Skip to content

Latest commit

 

History

History
98 lines (72 loc) · 6.78 KB

Wallet_App.md

File metadata and controls

98 lines (72 loc) · 6.78 KB

Spacemesh Wallet App Requirements Document

1. Business Goals and Objectives

  • Purpose: To provide Spacemesh users with a secure and user-friendly interface for managing their wallets, facilitating transactions, and tracking their balances in smesh coins.
  • Target Audience: Spacemesh cryptocurrency users.
  • Success Criteria: A functional, secure wallet app that supports all specified features, with positive user feedback on ease of use and reliability.

2. Functional Requirements

Core Features

  • Wallet Management: Enable users to send and receive smesh coins, check account balances, and manage multiple accounts within a single wallet.
  • Transaction History: Users can view a detailed history of their transactions.
  • Signature Generation: Allow users to generate signatures for transaction verification.
  • Coinbase Identification: Users can easily find and manage their coinbase (account number).
  • Backup and Recovery: Support for wallet backup and recovery using 12 and 24-word phrases, as well as file backup (.json format).
  • Password Protection: Secure wallet access with a password.
  • Address Book: Users can save frequently used addresses in an address book for quick access.
  • Multi-Signature Support: Allow transactions to require a signature from multiple parties before they can be executed, increasing security for sensitive transactions.
  • QR Code Support: Generate and scan QR codes for easy address sharing and transaction initiation.
  • Custom Transaction Fees: Allow users to adjust transaction fees based on their priority, providing a balance between cost and confirmation speed.
  • Real-Time Notifications: Implement push notifications for transaction updates and important account alerts.
  • Exchange Integration: Facilitate the exchange of smesh coins for other cryptocurrencies within the app, through integration with popular exchanges.
  • Hardware Wallet Integration: Provide support for integrating with hardware wallets, offering an extra layer of security for private keys.
  • Biometric Authentication: Implement fingerprint or facial recognition for accessing the wallet, enhancing security and convenience.
  • Session Timeout: Automatically log out users after a period of inactivity to prevent unauthorized access.
  • Customizable Interface: Allow users to customize the wallet's interface according to their preferences, improving the user experience.
  • Language Support: Offer multiple language options, making the wallet accessible to a global audience.
  • Educational Resources: Provide in-app tutorials and resources about Spacemesh, cryptocurrency basics, security practices, and how to effectively use the wallet.
  • Transaction Tagging and Notes: Enable users to tag and add notes to transactions for better financial tracking and organization.
  • Dark Mode: Include a dark mode option to reduce eye strain and improve visibility in low-light conditions.
  • Cross-Platform Compatibility: Ensure the wallet's web version is compatible across all major browsers and the desktop version runs smoothly on multiple operating systems (Windows, macOS, Linux).
  • Explorer Integration: Integrate with the explorer/ dashboard to provide users with detailed transaction and network information directly within the app.
  • Features for tracking and reporting financial activities for personal record-keeping or tax purposes (exporting TXS log, filtering and sorting, etc)
  • Sentry reports by users and automatic

User Roles and Permissions

  • End-Users: Can create wallets, execute transactions, and manage their accounts.

Data Handling

  • Storage: Securely store wallet information, including private keys and transaction history.
  • Privacy: Ensure user data is handled in compliance with privacy regulations.

3. Non-Functional Requirements

Performance

  • Responsiveness: The app should perform actions quickly, with minimal latency.
  • Scalability: Capable of handling a growing number of users and transactions.

Security

  • Encryption: Use strong encryption methods for data storage and transmission.
  • Two-Factor Authentication: Optional additional security layer for accessing wallets.

4. Technical Requirements

Technology Stack

  • Frontend: Technologies suitable for web (and potentially Electron for desktop version) development, such as React.js or Vue.js.
  • Backend: Leverage the Spacemesh public API for backend operations. This includes transaction processing, account management, and real-time data fetching. Ensure the app's backend is capable of handling API updates and changes efficiently. (TO BE UPDATED)
  • Integration: Ensure compatibility with SMCLI
  • Backend Integration:
  • Desktop Version: For the desktop version, utilize Electron or a similar framework to create a cross-platform application. This approach allows for code reuse from the web app, reducing development time and effort.
  • Input Validation: Rigorously validate all user inputs before processing to prevent injection attacks and ensure data integrity.
  • Error Handling: Develop comprehensive error handling mechanisms to gracefully manage API errors, network issues, and unexpected data formats.
  • Activity Logging: Implement logging for all API interactions, tracking request data, response times, and any errors encountered.
  • Performance Monitoring: Use monitoring tools to continuously track the backend's performance, with alerts for any issues that could impact user experience.
  • Optimization: Optimize API calls by batching requests, caching and using asynchronous operations where possible.

Deployment

  • Web Application: Host on a secure, scalable cloud platform.
  • Desktop Application: Package using Electron or similar technology for easy installation across different OS.

5. Design Requirements

User Interface (UI)

  • Design: Clean, user-friendly interface that aligns with Spacemesh branding.
  • Responsiveness: Ensure the app is fully responsive and usable across devices.

User Experience (UX)

  • Simplicity: Streamline user flows to make wallet management intuitive.
  • Feedback: Provide real-time feedback for user actions (e.g., transaction confirmation).
  • Limit the steps and decisions expected from the users wherever possible
  • legends and explanations for the statuses, tooltips, help and FAQ sections, and errors explicitly described and preferably pointing at the potential issue. Users need to understand what is happening under the hood
  • "Coinbase” should probably be changed to something else, it confuses people
  • Updates information - notifications and info on what’s new

6. Regulatory and Compliance Requirements

  • Legal Compliance: Adhere to relevant cryptocurrency regulations and data protection laws.