- Introduction
- Overall Description
- System Features & Functional Requirements
- External Interface Requirements
- Non-Functional Requirements
- Other Requirements
- Appendices
This Software Requirements Specification (SRS) defines the functional and non-functional requirements for the Fiotech Mining Application, a mobile application allowing users to earn Mining Points (virtual points) through daily mining sessions.
Upon fulfilling KYC and redemption conditions, users can convert Mining Points into real FTC native tokens on the Fiotech blockchain.
- Mobile app client (Android & iOS) to simulate energy-light mining.
- Backend server managing Mining Points accounting and eligibility tracking.
- KYC verification process required for redemption.
- Integration with Fiotech mainnet for withdrawal operations.
- Mining Points are not FTC tokens until redeemed.
Note: Mining Points have no intrinsic value and are non-transferable outside the Fiotech Mining Application.
| Term |
Definition |
| Fiotech |
Permissionless, EVM-compatible blockchain platform. |
| FTC |
Native token of the Fiotech ecosystem. |
| Mining Session |
24-hour mining window for point accrual. |
| Mining Points |
Virtual points earned during mining sessions; convertible to FTC once redeemed. |
| Base Mining Rate (BMR) |
Base earning speed before multipliers. |
| Security Circle |
Set of trusted users boosting mining efficiency. |
| Ambassador |
User who grows the network by inviting others. |
| KYC |
Know Your Customer identity verification for mainnet eligibility. |
- IEEE Std 830-1998 – Recommended Practice for SRS
- Pi Network white-paper v1.3 (public release 2023-12-15)
- Fiotech Technical Specification v0.9
- Mining inside the app only accrues virtual Mining Points.
- Redemption of Mining Points for real FTC tokens requires passing KYC and meeting specific conditions (e.g., minimum points threshold, lock-up agreement).
- Points remain off-chain until redeemed on Fiotech mainnet.
- Daily tap-to-mine to accumulate Mining Points.
- Multipliers via referral, Security Circle, Ambassador status.
- Real-time points display.
- KYC verification and redemption request interface.
- Points-to-FTC conversion according to pre-defined ratio and conditions.
- On-chain delivery of FTC tokens after successful redemption.
| ID |
Requirement |
Priority |
| FR-1 |
Allow sign-up via phone or email plus password/OTP. |
Must |
| FR-2 |
Create a custodial keypair until user links Fiotech Wallet. |
Must |
| FR-3 |
Enforce unique phone/email per account. |
Must |
- FR-4: Integrate with KYC provider (Yoti/Onfido) via REST API.
- FR-5: Prevent mainnet transfer until KYC passes.
- FR-6: Mining sessions generate Mining Points only.
- FR-7: Users accrue points hourly according to multipliers.
- FR-8: Real-time Mining Points counter during active session.
| ID |
Requirement |
Priority |
| FR-16 |
Submit redemption requests once minimum Mining Points + KYC is completed. |
Must |
| FR-17 |
Lock and deduct Mining Points after redemption. |
Must |
| FR-18 |
Only transfer FTC tokens to verified wallet addresses. |
Must |
- Mobile App: Flutter 3.22, Dark/Light Mode.
- Backend API: HTTPS REST + GraphQL, JWT authentication.
- Blockchain Interface: gRPC connection to Fiotech full nodes.
- Push Notification: Firebase Cloud Messaging.
- KYC Service Integration: Webhook
/kyc/callback.
| Category |
Requirement |
Metric |
| Performance |
App start-up ≤ 3 s; background CPU ≤ 2 %; memory ≤ 150 MB. |
P95 |
| Security |
TLS 1.3 encryption for all communications. |
— |
| Privacy |
GDPR, PDPA, CCPA compliance; data deletion within 30 days. |
— |
| Availability |
Backend uptime ≥ 99.5 % monthly. |
SLA |
| Scalability |
Support 50 M DAU with <300 ms p95 latency. |
Load Test |
| Maintainability |
Codebase > 80 % documented. |
CI/CD Gate |
- Regulatory issues around KYC and crypto classification.
- Mobile OS policy updates banning mining apps.
- NFT achievements for mining milestones.
- Marketplace for Fiotech ecosystem apps using mined tokens.
| Milestone |
Users (M) |
BMR (Points/h) |
| Genesis |
0–1 |
0.50 |
| Halving 1 |
1–10 |
0.25 |
| Halving 2 |
10–100 |
0.125 |