Zero-Knowledge Encrypted iOS Mnemonic Manager
Secure · Simple · Reliable
Features • Installation • Usage Guide • Architecture • Security
Seedlock is an iOS mnemonic phrase management application designed specifically for cryptocurrency users. It employs a zero-knowledge encryption architecture to ensure your mnemonic phrases are securely stored locally and in iCloud, while supporting automatic cross-device recovery.
- Zero-Knowledge Encryption: Keys stored in iCloud Keychain, plaintext never uploaded
- Biometric Protection: Face ID/Touch ID dual protection
- Automatic Recovery: Automatic sync across devices with same Apple ID
- Simple & Intuitive: Modern iOS design with smooth user experience
- AES-GCM 256-bit Encryption: Each mnemonic uses an independent key
- iCloud Keychain: Secure key sync across devices
- Biometric Authentication: Face ID/Touch ID required to view mnemonics
- Auto-Lock: 30-second countdown, immediate lock on background
- Clipboard Protection: Configurable auto-clear (10-120 seconds)
- ✅ Create new mnemonics (12/15/18/21/24 words)
- ✅ Import existing mnemonics (BIP-39 standard validation)
- ✅ Edit name, tags, and notes
- ✅ Secure view and copy
- ✅ Delete with confirmation
- ✅ Tag categories (up to 5 tags)
- ✅ Star favorites
- ✅ Search and filter
- ✅ Three-way filter (All/Starred/Archived)
- ✅ Full Dark Mode support
- ✅ Smooth animations
- ✅ Loading state feedback
- ✅ Friendly error messages
- ✅ Empty state guidance
- iOS 17.0 or later
- iPhone or iPad
- Face ID or Touch ID (recommended)
- iCloud account (for cross-device sync)
- Clone the repository
git clone https://github.com/okayfine996/SeedLock.git
cd seedlock- Open Xcode project
open seedlock.xcodeproj-
Configure signing
- Select your development team
- Configure Bundle Identifier
- Enable capabilities:
- iCloud
- Keychain Sharing
-
Run the project
- Select target device or simulator
- Press ⌘R to run
- Open the app: Welcome screen appears on first launch
- Add mnemonic: Tap the "+" button in top right
- Choose method:
- Create New: Automatically generate a secure mnemonic
- Import Existing: Paste or type an existing mnemonic
- Select mnemonic: Tap on a mnemonic in the list
- Biometric auth: Tap "Show Mnemonic", authenticate with Face ID/Touch ID
- View and copy: Mnemonic displays for 30 seconds, can copy to clipboard
- Auto-lock: Automatically hides after 30 seconds or when backgrounded
- Tap "Edit" in top right of detail page
- Modify name, tags, or notes
- Save changes
- Tap "Delete Mnemonic" at bottom of detail page
- Confirm deletion
⚠️ Cannot be recovered after deletion
- Add tags: Select or create tags while editing
- Star favorites: Tap the star icon
- Search: Use search bar to filter by name or tags
Access settings page to configure:
- App Launch Lock: Require biometric auth on app launch
- Clipboard Clear Time: Choose 10/30/60/120 seconds
- Screenshot Warning: Show alert when screenshot taken
- iCloud Keychain Status: Check key sync status
- iCloud Account: Ensure logged in to enable sync
- Language: Swift 5.9+
- UI Framework: SwiftUI
- Database: SwiftData
- Encryption: CryptoKit (AES-GCM)
- Storage: Keychain Services
- Authentication: LocalAuthentication
seedlock/
├── Models/ # Data models
│ └── Mnemonic.swift
├── Services/ # Business logic
│ ├── CryptoService.swift # Encryption service
│ ├── KeychainService.swift # Keychain management
│ ├── BiometricService.swift # Biometric auth
│ ├── ClipboardService.swift # Clipboard management
│ └── BIP39Service.swift # BIP-39 implementation
├── ViewModels/ # View models
│ └── MnemonicViewModel.swift
├── Views/ # User interface
│ ├── Home/ # Home page
│ ├── Detail/ # Detail page
│ ├── Create/ # Create/Import
│ ├── Edit/ # Edit
│ └── Settings/ # Settings
└── Core/ # Core components
└── Theme.swift # Theme system
- MVVM Architecture: Separation of views and business logic
- Protocol-Oriented: Protocol-oriented programming
- Dependency Injection: Service dependency injection
- Singleton Services: Singleton service management
Mnemonic → AES-GCM Encryption → Ciphertext Storage (Local/iCloud)
↑
DEK Key → iCloud Keychain Sync
-
Create/Import
- Generate random DEK key
- Encrypt mnemonic plaintext with DEK
- Save DEK to iCloud Keychain
- Save ciphertext to SwiftData (can sync to iCloud)
-
View
- Biometric authentication
- Retrieve DEK from Keychain
- Decrypt ciphertext to get plaintext
- Plaintext only in memory, never written to disk
- Clear memory after 30 seconds
-
Cross-Device Recovery
- iCloud auto-syncs ciphertext
- iCloud Keychain auto-syncs DEK
- Devices with same Apple ID can fully recover
- ✅ Plaintext never uploaded
- ✅ Independent key per mnemonic
- ✅ Mandatory biometric auth
- ✅ Auto-lock mechanism
- ✅ Clipboard protection
- ✅ Zero logging
Seedlock does not collect any personal data:
- ❌ No mnemonic collection
- ❌ No encryption key collection
- ❌ No user information collection
- ❌ No third-party analytics
- Local: SwiftData (encrypted ciphertext)
- iCloud: CloudKit Private Database (ciphertext)
- Keychain: iCloud Keychain (encryption keys)
All data is stored only on your devices and Apple services. Developers cannot access it.
A: Seedlock doesn't use passwords, it uses Face ID/Touch ID. If biometric fails, you can use your device passcode as backup.
A: Log in to the new device with the same Apple ID, iCloud will automatically sync data. Ensure both iCloud and iCloud Keychain are enabled.
A: Yes, but data is only saved locally and cannot sync or recover across devices.
A: No. All data is stored only on your devices and Apple iCloud.
A: No limit, depends on your device storage.
A: Current version supports viewing and copying. Future versions will support encrypted export.
- ✅ Basic mnemonic management
- ✅ AES-GCM encryption
- ✅ Biometric authentication
- ✅ iCloud Keychain integration
- ✅ Search and filter
- ✅ Tag management
- ✅ OCR image recognition import
- ✅ Recovery codes (Keychain fallback)
- ✅ Local encrypted export
- ✅ CloudKit sync status indicator
Issues and Pull Requests are welcome!
- Fork the project
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License. See LICENSE file for details.
- BIP-39 standard word list
- Apple CryptoKit framework
- SwiftUI and SwiftData
- Issues: GitHub Issues
- Email: support@seedlock.app
- Twitter: @seedlock_app
Made with ❤️ by the Seedlock Team
Protect Your Digital Assets - Start with Secure Mnemonic Storage