Latest 0.0.4
License MIT
Platforms ios 10.0
Dependencies EtherKit, ReactiveSwift

Currently, the ackee project template with some basic experimentation with the EtherKit framework is on branch ps/ethereum. It’s been pushed just as we use it at Ackee. We’ll be making changes, integrating more Ethereum functionality and possibly renaming some stuff before we make it available in master.
Branch master contains experimentation with SmartContract ABI parsing and codegen. This will be developed separately as a swift script and then integrated into the ProjectTemplate.

Ackee Ethereum Project Template

The Ackee Ethereum Project Template is a collection of Swift boilerplate intended to serve as a basis for starting new blockchain oriented iOS projects. It combines Ackee’s long time know-how in creating iOS apps based on reactive technlogies and the MVVM architecture with a few extra Ethereum related tools designed for seamless interaction with SmartContracts..

The project template will include a Swift script for generating a typesafe Swift API to individual SmartContracts, based on their ABI. A simple example app will be implemented, e.g. an app that can call 1 method of a simple smart contract and observe 1 event. VaultIO’s EtherKit will be used for the underlying logic (sendRawTransaction). Note that codegen is on the roadmap of EtherKit as well, however, we feel like it fits our assignment very well, plus we can design our solution to be nicely usable from ReactiveSwift, which we use heavily throughout our project template. We will also participate in improving EtherKit to make it an ideal fit for our project template.

Currently, the repo contains a proof of concept implementation of the codegen script inside a Swift Playground. The tagless final encoding approach was chosen for the contract calling API. This should allow rapid development with good support for testability and maximum modularity. We can always switch to using some other underlying JSON RPC framework or inhouse logic for interacting with the Ethereum network, should the need arise. We can also create different public API’s, including a ReactiveSwift wrapper or a plain enum for testing. Note that this approach might not make it into the final product, as we might choose a more streamlined solution, best suited for use alongside the rest of Ackee’s MVVM stack.

This document describes the smallest scope of the project. We might decide to add more goodies, with a primary focus on developer tools and practical applications of SmartContracts. We plan on staying in contact with the makers of EtherKit to ensure the quality of the whole solution.

Latest podspec

    "name": "ContractCodegen",
    "version": "0.0.4",
    "summary": "Generate code from abi.json",
    "description": "Generate code from abi.json using Swift tool.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Ackee": "[email protected]"
    "source": {
        "git": "",
        "tag": "0.0.4"
    "preserve_paths": [
    "platforms": {
        "ios": "10.0"
    "swift_version": "4.2",
    "dependencies": {
        "EtherKit": [],
        "ReactiveSwift": [
            "~> 4.0"

Pin It on Pinterest

Share This