Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yenom/BitcoinKit

Bitcoin protocol toolkit for Swift
https://github.com/yenom/BitcoinKit

bch bitcoin bitcoincash btc cashaddr ios spv swift xcode

Last synced: about 1 month ago
JSON representation

Bitcoin protocol toolkit for Swift

Awesome Lists containing this project

README

        


BitcoinKit: Let’s Play with Bitcoin in Swift!

TravisCI





Swift 5.0+


Carthage


Swift Package Manager


CococaPods

### 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](CHANGELOG.md).

Β 

Features
--------

- 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.

Requirements
------------
- iOS 9.0+ / Mac OS X 10.11+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 10.0+
- Swift 5.0+

Installation
------------

### [CocoaPods](https://guides.cocoapods.org/using/using-cocoapods.html)

```bash
$ 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 `Podfile`:

```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '13.0'
use_frameworks!

target '' do
pod 'BitcoinKit', '~> 1.1.0'
end
```

Then, run the following command:
```bash
$ pod install
```

### [Carthage](https://github.com/Carthage/Carthage)
Add this to `Cartfile`

```ogdl
github "yenom/BitcoinKit" ~> 1.1.0
```

Run `carthage update` to build the framework and drag the built `BitcoinKit.framework` into your Xcode project.

### [Swift Package Manager](https://github.com/apple/swift-package-manager)

Simply add the following lines to dependencies of your Package.swift:

```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.

* `Peer` and `PeerGroup`
* SQLite based BlockStore

Contribute
----------
Contributions to BitcoinKit are welcome and encouraged!
Feel free to open issues, drop us pull requests.

## Authors & Maintainers
- [usatie](https://github.com/usatie)

## About

BitcoinKit is maintained and funded by Yenom.
Visit our [website](https://yenom.tech) or say hi on twitter ([@Yenom_wallet_en](https://twitter.com/Yenom_wallet_en))

License
-------

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

## Contributors

This project exists thanks to all the people who contribute.

## Backers

Thank you to all our backers! πŸ™ [[Become a backer](https://opencollective.com/BitcoinKit#backer)]

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/BitcoinKit#sponsor)]