# Technical specification
## General specification
1. Product name: Fire-exit
## Technical specification
- [ ] Programming language: Swift 5.5
- [ ] Platforms support:
- [ ] iOS 13.0
- [ ] macOS 10.15
- [ ] watchOS 7.0
- [ ] Сhain support:
- [ ] Ethereum
- [ ] Polygon
- [ ] Binance Smart Chain
- [ ] Arbitrum
- [ ] TRON
- [ ] Solana
- [ ] Optimism
- [ ] Allowed third-party dependencies (all but Apple):
- [ ] Web3Swift
- [ ] BigUInt
- [ ] CryptoSwift
## Functional specification
Utility should provide follow features:
1. [ ] Private key, mnemonics import from pasteboard.
2. [ ] Action to search and prompt to a user all assets on chains in the list above, reachable within given private key.
3. [ ] Action to move all reachable assets to a new address given by a user with accordance to chain specific (optional, there's a possibility that there's no way to implement such for all chains above without having access to private key of a destination wallet).
## UX specification
1. [ ] Utility should have simple yet complete graphic user interface.
2. [ ] Utility should have two separate screens
1. [ ] Screen that incapsulates functional specification p. 1, 2.
2. [ ] Screen that incapsulates functional specification p. 3.
3. [ ] There should be implemented ability to move reset state of an utility to it's default state.
## Security specification
1. [ ] Private key must not left user device in any way (plain, encrypted, split) except as being mapped to a public key.
2. [ ] Information about reachable assets should not be either stored or accumulated on any third-party server rather a service.
3. [ ] On assets transfer utility should guarantee that given new address is exist and do not differ from appropriate user input.