chainkey_ios
iOS platform implementation for the chainkey federated plugin.
This package provides native Apple Secure Enclave integration, Keychain hardware security services, and LocalAuthentication (Face ID / Touch ID) biometric prompts.
Features
- Apple Secure Enclave (SEP): Generates and protects non-exportable NIST P-256 (
secp256r1) private keys inside Apple's hardware Secure Enclave. - Biometric Authentication: Seamlessly prompts for Face ID or Touch ID using Apple's
LocalAuthenticationframework (LAContext) before signing digests. - ERC-4337 & EIP-7212 Compliance: Produces hardware ASN.1 DER signatures and pre-unpacks low-$S$ normalized scalar components
(r, s)compatible with smart contract verifiers and precompiles. - Cross-App Sharing: Supports Keychain Access Groups for sharing enclave keys across related apps in an Apple developer team.
Minimum Requirements
- iOS Deployment Target:
iOS 15.0+ - Xcode:
15.0+ - Swift:
5.9+
Info.plist Configuration
When using biometric authentication, add the NSFaceIDUsageDescription key to your iOS project's ios/Runner/Info.plist:
<key>NSFaceIDUsageDescription</key>
<string>Authenticate using Face ID to access your hardware-secured Web3 wallet.</string>
Usage
This package is endorsed by the main chainkey package. When adding chainkey to your pubspec.yaml, chainkey_ios is automatically included and registered:
dependencies:
chainkey: ^0.1.0
Issues & Contributing
For bug reports, feature requests, and contributing guidelines, please visit the Chainkey GitHub Repository.