Welcome to BitcoinKit
The BitcoinKit library is a Swift implementation of the Bitcoin protocol which support both BCH and BTC. Improving the mobile ecosystem for Bitcoin developers is our mission.
BitcoinKit allows maintaining a wallet, sending or receiving transactions without a full blockchain node. Following is a wallet app that demonstrates the way to use it.
Release notes are here.
- Encoding/decoding addresses: base58, Cashaddr, P2PKH, P2SH, WIF format.
- Transaction building blocks: inputs, outputs, scripts.
- EC keys and signatures.
- BIP32, BIP44 hierarchical deterministic wallets.
- BIP39 implementation.
- SPV features are under construction. The following functions cannot work well sometimes.
- Send/receive transactions.
- See current balance in a wallet.
- iOS 9.0+ / Mac OS X 10.11+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 10.0+
- Swift 5.0+
$ gem install cocoapods
CocoaPods 1.5.0+ is required to build BitcoinKit.
To integrate BitcoinKit into your Xcode project using CocoaPods, specify it in your
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' use_frameworks! target '<Your Target Name>' do pod 'BitcoinKit', '~> 1.1.0' end
Then, run the following command:
$ pod install
Add this to
github "yenom/BitcoinKit" ~> 1.1.0
carthage update to build the framework and drag the built
BitcoinKit.framework into your Xcode project.
Simply add the following lines to dependencies of your Package.swift:
.package(url: "https://github.com/yenom/BitcoinKit.git", .upToNextMinor(from: "1.1.0"))
Note that following data types and features are currently not supported on Linux platform.
- SQLite based BlockStore
Contributions to BitcoinKit are welcome and encouraged! Feel free to open issues, drop us pull requests.
Authors & Maintainers
BitcoinKit is available under the MIT license. See the LICENSE file for more info.
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
Help us keep the lights on
v1.1.0 - Sep 29, 2019
⬆️ Swift 5.0
Now we support Swift5.0!
⭐️ New Features
- Plan, Build and Sign a transaction #228
- QRCode support #158
- ECPoint multiplication methods #219
- Mnemonic #227
- HDWallet #228
- Address #232
🐛 Fix bugs
- Key derivation bug #220
- Add merkleblock and proof of work check #170 #153
- Add BlockMessage.computeMerkleRoot() #215
- Using secp256k1 library instead of openssl #218 #203
- Fix typos #179
- Modify README #180 #208 #211
✅ All Merged PRs
All PRs since v1.0.2
v1.1.0-rc2 - Sep 23, 2019
v1.1.0-rc1 - Sep 21, 2019
v1.1.0-beta5 - Sep 13, 2019