Practical overview
When it fits
Use it when a native iOS app needs a Swift library for EVM account and transaction handling, rather than a standalone wallet application.
Who it is for
- iOS developers building EVM-compatible wallets or other blockchain-connected applications.
- Teams adding account recovery, watch-address support or transaction synchronization to a native Swift app.
Documented uses
- Restore account access using a mnemonic phrase, BIP39 seed, EVM private key or Ethereum address.
- Track account balances, transactions, block height and synchronization state.
- Construct, sign and send Ethereum transactions through an RPC node.
- Extend an app with ENS, EIP-1559 gas-price updates or smart-contract calls.
Requirements & limits
The project is public and MIT-licensed. The README documents Swift Package Manager installation and requires Xcode 10.0+, Swift 5.5+ and iOS 13+.
- The library is implemented in Swift for iOS, with documented minimum versions of Xcode 10.0, Swift 5.5 and iOS 13.
- Initialization requires an account address, chain, RPC source, transaction source and wallet identifier.
- The README names Ethereum, Binance Smart Chain, Polygon, Arbitrum One, Optimism and Avalanche C-Chain as networks integrated in Unstoppable Wallet; broader integration is described for EVM networks with Ethereum RPC supp
- RxSwift provides the documented reactive-functional API for account, block and transaction updates.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install EvmKit.Swift with Swift Package Manager
Add the toolkit dependency to a Swift project that meets its documented platform requirements.
Before you start
- Xcode 10.0 or later
- Swift 5.5 or later
- iOS 13 or later
Steps
Add the EvmKit.Swift package URL to the project's Swift Package Manager dependencies.
Use the documented up-to-next-major version rule starting from 1.0.0.
Refer to the iOS Example folder for a project demonstrating the library's features.
Expected outcome
The package is declared as a dependency in the Swift project; the example project provides a reference for subsequent use.
Guide limitations
- The installation instructions do not by themselves configure RPC or transaction data sources.
- The README points to the example project for feature usage rather than documenting a complete application setup here.
Initialize an account and start synchronization
Configure an EvmKit instance for an Ethereum account and start its documented blockchain synchronization process.
Before you start
- An iOS Swift project with EvmKit.Swift installed
- An Ethereum account address
- An RPC source and transaction source; the README example uses Infura WebSocket and Etherscan
Steps
Create an address from its hexadecimal representation.
Initialize Kit.instance with the address, Ethereum chain, RPC source, transaction source and a unique wallet identifier.
Call start() on the instance to begin synchronization.
Read account state or subscribe to account, block-height and synchronization observables.
Expected outcome
The configured instance begins synchronization and exposes account and synchronization state through the documented accessors and Rx observables.
Guide limitations
- The example requires RPC and transaction-source configuration, including provider credentials where applicable.
- This guide covers synchronization and state access, not transaction signing or sending.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- horizontalsystems/EvmKit.Swift · Official homepage title · retained in its source language

