A cross-platform SDK for integrating Flow blockchain wallet functionality into iOS and Android applications. This SDK provides a secure interface for managing Flow accounts and handling transactions across networks.
Here's what's been built and what's coming next:
- 🔐 Create and store private key
- 🔑 Support multiple private key types
- 🌐 Handle Flow accounts across networks
- 🧩 Manage COA (Cadence Owned Account)
- 👶 Manage child accounts
- 💰 Token balance querying
- ☁️ All-type backup support (e.g. cloud)
- 🌐 WalletConnect integration
- 🔄 FCL (Flow Client Library) support
- ⛓️ Multi-chain support for other blockchains
Visit our comprehensive documentation at flow-wallet-kit.vercel.app/docs
Or visit Deepwiki at deepwiki.com/onflow/Flow-Wallet-Kit
Platform-specific guides are also available here:
We prioritize secure private key handling using platform-native secure hardware modules:
- 🧱 Secure Enclave (iOS): Flow private keys can be securely generated and stored in the Secure Enclave using the
SecureElementProvider
. - 🛡️ Android Keystore (Android): Private keys are protected with hardware-backed Android Keystore using the
HardwareBackedStorage
implementation.
These solutions help prevent private key extraction and elevate the security standard for mobile Flow wallets.
Check out the full docs in here: Architecture
- Storage Protocol: Secure data storage across platforms
- Key Protocol: Consistent key management
- Crypto: Secure encryption, derivation, hashing
- Wallet: Modular wallet handling
- Account: Multi-network and child account management
- Security: Hardware + software crypto implementations
- Network: Key Indexer API integration
-
Secure Storage Protocol (platform-agnostic)
- iOS:
- 🔑
KeychainStorage
: Secure key storage via Keychain - 📁
FileSystemStorage
: Encrypted file-based storage
- 🔑
- Android:
- 🛡️
HardwareBackedStorage
: Uses Android Keystore - 📁
FileSystemStorage
: Encrypted file-based storage - 🧠
InMemoryStorage
: Volatile, memory-only storage
- 🛡️
- ✨ Common:
- Cacheable interfaces
- Encrypted storage
- Hardware-backed protection (when available)
- iOS:
-
Key Management Protocol
- 🔐
PrivateKeyProvider
: Supports ECDSA P-256 & secp256k1 - 🧱
SecureElementProvider
: Secure Enclave / Keystore - 🌱
SeedPhraseProvider
: BIP-39 + HD Wallet
- 🔐
-
Backup
- 🔒 Platform-specific basic secure backups
- Encryption
- AES-GCM & ChaCha20-Poly1305
- Key Derivation
- BIP-39 & HD Wallet support
- Hashing
- Secure data integrity functions
- Watch Wallet: Address-only
- Key Wallet: Private key or seed phrase + 🔍 Key Indexer API integration
- Multi-account, cross-network support
- Child account management
- 🔁 Flow-EVM account compatibility
This SDK is under active development! 🛠️
We're focused on robust cross-platform key and account management. More features like balance queries and WalletConnect are on the way!
This project is licensed under the MIT License - see the LICENSE file for details.
Found a bug? Need help?
Please open an issue in the repo or contact the maintainers.