ColdVault is an iOS-first offline-oriented crypto wallet companion focused on secure key handling, transaction signing, and QR-based air-gapped data transfer.
Current maturity: educational/prototype implementation.
ColdVault is suitable for architecture exploration, secure-flow experimentation, and contribution workflows. It should not be treated as audited production wallet software.
- Wiki home:
docs/wiki/Home.md - Changelog:
CHANGELOG.md - Release process:
RELEASE.md - Security policy:
SECURITY.md - Contributing guide:
CONTRIBUTING.md - Support guide:
SUPPORT.md
ColdVault helps people who want stronger operational security for crypto activity:
- Reduces online attack surface by supporting offline transaction workflows.
- Uses local secure storage and optional Secure Enclave support for private key material.
- Provides biometric app lock to protect access on-device.
- Enables offline payload exchange via QR instead of direct network APIs.
- Adds encrypted backup/restore so users can recover app state safely.
- Create and manage wallets for multiple blockchain networks.
- Sign transactions offline from locally stored keys.
- Export signed payloads for broadcast on another system.
- Prepare and import QR payloads for device-to-device transfer.
- Keep a local security event log with localization support.
- Protect app access with Face ID / Touch ID.
- Create encrypted backups and restore app state from backup.
- Switch app language and theme at runtime.
![]() |
![]() |
![]() |
![]() |
| Wallet dashboard | Sign flow | Exchange QR flow | Security and backup |
- Language: Swift 5
- UI framework: SwiftUI
- Platform: iOS 16+
- Project generation: XcodeGen
- Architecture: MVVM
- App layer: app lifecycle, dependency wiring, root composition.
- View layer: SwiftUI screens and reusable UI components.
- ViewModel layer: state orchestration and feature workflows.
- Service layer: security, wallet logic, QR generation/decoding, backup encryption.
- Model layer: domain entities and persisted settings/events.
- Private keys are generated and stored locally.
- Optional Secure Enclave path is used when available.
- Biometric authentication gates app access.
- QR payload flow supports offline exchange scenarios.
- Backups are encrypted before export and decrypted on restore.
Note: ColdVault is educational/prototype software and not financial advice. Always perform independent security review before production use.
Important: This app has not been fully tested and its operation is not guaranteed. If it works successfully for you, please share feedback by opening an issue in this repository.
- iPhone (primary target)
- iOS 16.0 and newer
- Simulator is supported for development and UI testing (some security behavior is limited vs real devices)
ColdVault/App- app entry and primary view modelColdVault/Views- SwiftUI screens and componentsColdVault/Services- security, wallet, network adapter, QR, backup servicesColdVault/Models- settings, wallet, events, network and transaction modelsColdVault/Resources- assets, plist, localization filesproject.yml- XcodeGen project specification
- macOS with latest stable Xcode
- Xcode command line tools
- XcodeGen installed (
brew install xcodegen)
- Clone the repository.
- Open a terminal in the project root.
- Generate Xcode project:
xcodegen generate
- Open
ColdVault.xcodeprojin Xcode. - Select
ColdVaultscheme. - Run on an iPhone simulator or physical device.
Use this command to validate compilation in CI/local automation:
xcodebuild -project ColdVault.xcodeproj -scheme ColdVault -destination 'generic/platform=iOS Simulator' buildColdVault currently includes:
- English (
en) - Russian (
ru)
Language can be switched at runtime from app settings.
ColdVaultViewModelis the central state hub.- Services are injected into the view model for separation of concerns.
- Views remain lightweight and declarative, delegating business logic to view model/services.
- Event log entries are stored in normalized form for localization-aware rendering.
- iOS target is configured via
project.ymland generated into Xcode project settings. - Bundle identifier default:
com.coldvault.app. - App icon and localization resources are included in the repository.
This repository is configured to avoid committing local build artifacts and machine-specific files. See .gitignore.
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.
Issue and PR workflows are standardized with templates:
- Bug report template:
.github/ISSUE_TEMPLATE/bug_report.md - Feature request template:
.github/ISSUE_TEMPLATE/feature_request.md - Pull request template:
.github/pull_request_template.md - Issue template configuration:
.github/ISSUE_TEMPLATE/config.yml - Code owners:
.github/CODEOWNERS - Code of conduct:
CODE_OF_CONDUCT.md - Support guide:
SUPPORT.md
For vulnerability reporting and coordinated disclosure guidance, see SECURITY.md.
- Release process and checklist:
RELEASE.md - Version and change history:
CHANGELOG.md
A detailed wiki source is maintained in docs/wiki and can be published to the GitHub Wiki.
Recommended start page: docs/wiki/Home.md.
- Unit/UI tests for critical security and localization flows.
- Optional export/import hardening and integrity metadata.
- Accessibility improvements and additional locales.
- Extended wallet/network adapters.
This project is licensed under the MIT License. See LICENSE.



