Ethereum Wallet Toolkit for iOS - You can implement an Ethereum wallet without a server and blockchain knowledge.
Branch: develop
Clone or download
Latest commit 96bdb9c Feb 11, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Docs Update Document.md Aug 2, 2018
EtherWalletKit.xcodeproj update web3swift library from 1.1.1 to 2.0 Nov 21, 2018
EtherWalletKit.xcworkspace initialize library repo Jun 27, 2018
EtherWalletKitTest add balance test cases Jul 29, 2018
Sources update web3swift library from 1.1.1 to 2.0 Nov 21, 2018
.gitignore add decodable structures for 3rd party API responses and remove test … Jul 3, 2018
EtherWalletKit.podspec fix release 0.1.4 Nov 24, 2018
LICENSE initialize library repo Jun 27, 2018
Package.swift initialize library repo Jun 27, 2018
Podfile update web3swift library from 1.1.1 to 2.0 Nov 21, 2018
Podfile.lock
README.md Update README.md Feb 11, 2019

README.md

EtherWalletKit

Swift Xcode License: MIT iOS

Introduction

EtherWalletKit is an Ethereum Wallet Toolkit for iOS.

I hope cryptocurrency and decentralized token economy become more widely adapted. However, some developers hesitate to add a crypto wallet on apps since blockchain and cryptocurrency are complex and require many new knowledge.

Don't worry.
With EtherWalletKit, you can implement an Ethereum wallet without a server and blockchain knowledge.

Features

Released Features

  • Creating/Importing an account(address and private key)
  • Checking Ether and tokens balance
  • Sending Ether and tokens to other addresses
  • Browsing token information
  • Testnet(Rinkeby & Ropsten) support
  • BIP39 Mnemonics

Planned Features

  • Browsing transaction history
  • Keystore import / export
  • Custom configuration / advanced transactions
  • Multiple accounts
  • Third party APIs
  • ERC-721 supports

Installation

CocoaPods

To integrate EtherWalletKit into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'EtherWalletKit'

Quick Start

0. Don't forget to import it

import EtherWalletKit

1. Create an Ethereum Wallet

// Generate a new account with its new password.
try? EtherWallet.account.generateAccount(password: "ABCDEFG")

// Import an existing account from its private key and set its new password.
try? EtherWallet.account.importAccount(privateKey: "1dcbc1d6e0a4587a3a9095984cf051a1bc6ed975f15380a0ac97f01c0c045062, password: "ABCDEFG")

Note: password will be encrypted and saved to the device and it will be required to access the wallet.

2. Get balance

// Get balance of Ether
EtherWallet.balance.etherBalance { balance in
    print(balance)
}

// Get balance of a token
EtherWallet.balance.tokenBalance(contractAddress: "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07") { balance in
    print(balance)
}

3. Send

// send Ether to an address.
EtherWallet.transaction.sendEther(to: "0x7777787C97a35d37Db8E5afb0C92BCfd4F6480bE", amount: "1.5", password: "ABCDEFG") { txHash in
    print(txHash)
}

// send a token to an address.
EtherWallet.transaction.sendToken(to: "0x7777787C97a35d37Db8E5afb0C92BCfd4F6480bE", contractAddress: "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07", amount: "20", password: "ABCDEFG", decimal: 18) { txHash in
    print(txHash)
}

Note: password should be eqaul to the password of wallet created. Also you can put gasPrice as an extra parameter to set gas price for the transcation.

For full documentation, please see THIS.

Notes

  • Nothing will be sent to a server. Everything will be worked on the local device and Ethereum Blockchain.
  • You dont need to download and sync the nodes because Infura is doing it for you.
  • password for wallet is equal to the password for the keystore file. Always make sure a password is long enough for security.

Contribution

  • Make sure you have a GitHub account
  • Create a GitHub pull request for your contribution
    • Clearly describe the issue or feature.
  • Fork the repository on GitHub
  • Create a topic branch from where you want to base your work. (Gitflow is welcome)
    • Please avoid working directly on the master branch.
  • Make sure you have added the necessary tests for your changes and make sure all tests pass.

Donation

Only accept cryptocurrency 😂

ETH: 0x7777787C97a35d37Db8E5afb0C92BCfd4F6480bE

License

EtherWalletKit is available under the MIT license. See the LICENSE file for more info.