This is a Swift-based iOS cryptocurrency wallet application that supports multi-chain wallet management, transaction signing, NFT display, and more. The project adopts a modern Monorepo structure, built with SwiftUI for iOS 17+ applications, while providing CLI tools for development and testing.
- 🔒 Secure Account Management: Support for EVM chain signing and Passkey login
- 💱 Multi-Chain Support: BSC, Polygon, TRON, and EVM-compatible networks
- 🌐 DApp Integration: Interact with DApps through the EIP-1193 protocol
- 📊 Transaction History: View transaction records and bills
- 💳 Send & Receive: Quick and convenient asset transfer functionality
apps/ios/AppShelliOS- iOS 17+ SwiftUI main application (generated using xcodegen)apps/cli/AppShell- Command-line tool for development debugging and automated testing
packages/CoreRuntime- Module runtime, routing, permission management, confirmation flow frameworkpackages/SecurityCore- Security core library (EVM signing, transaction broadcasting, key management)packages/BackendAPI- Backend API encapsulation and data modelspackages/WebDAppContainer- WKWebView and DApp EIP-1193 bridge implementation
modules/NftGallery- NFT display module example
tools/ModuleRegistryPlugin- Automatic module registration generation tool
AppShelliOS -> apps/ios/AppShelliOS
AppShell -> apps/cli/AppShell
Packages -> packages
Modules -> modules
Tools -> tools
- macOS 12+
- Xcode 15+
- Swift 5.9+
swift run AppShellcd apps/ios/AppShelliOS
# Generate Xcode project
xcodegen generate
# Build
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild -project AppShelliOS.xcodeproj \
-scheme AppShelliOS \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath /tmp/AppShelliOSDerived \
CODE_SIGNING_ALLOWED=NO buildcd apps/ios/AppShelliOS
open AppShelliOS.xcodeproj- Runnable application skeleton
- Modular architecture setup
- Real EVM signing implementation
- Complete transaction flow integration
- Passkey login integration
- Home, receive, and transfer features
- Transaction history and profile pages
- Language: Swift 5.9+
- UI Framework: SwiftUI
- Minimum OS: iOS 17+
- Cryptography: SecurityCore (EVM signing)
- Networking: URLSession + Backend API
- DApp Communication: WKWebView + EIP-1193 protocol
- Create a new module folder in the
modules/directory - Implement a
*Manifest.swiftfile to define module information - Run the module registration generation tool to update
ModuleRegistry.swift
- iOS Project Configuration:
apps/ios/AppShelliOS/project.yml - Swift Package Configuration:
Package.swift
Dependencies are managed through Swift Package Manager. For details, run:
cat Package.swift
cat Package.resolved- Use
Makefileto quickly execute common tasks - Simulator builds require code signing to be disabled (
CODE_SIGNING_ALLOWED=NO) - Ensure Xcode is pointing to the correct Developer directory