Swiftpack.co - anquii/BIP32 as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by anquii.
anquii/BIP32 v1.1.1
An implementation of BIP-0032 in Swift
⭐️ 0
🕓 2 weeks ago
iOS macOS
.package(url: "https://github.com/anquii/BIP32.git", from: "v1.1.1")


Platform Swift Package Manager compatible License

An implementation of BIP-0032 in Swift.


  • macOS 10.15+
  • iOS 13+


Swift Package Manager

Add the following line to your Package.swift file:

.package(url: "https://github.com/anquii/BIP32.git", from: "1.0.0")

...or integrate with Xcode via File -> Swift Packages -> Add Package Dependency... using the URL of the repository.


import BIP32

let keySerializer: KeySerializing = KeySerializer()
let serializedKeyCoder: SerializedKeyCoding = SerializedKeyCoder()

let privateMasterKeyDerivator: PrivateMasterKeyDerivating = PrivateMasterKeyDerivator()
let privateMasterKey = try privateMasterKeyDerivator.privateKey(seed: seed)
let privateMasterKeyVersion = KeyVersion(network: network, keyAccessControl: .`private`).wrappedValue
let privateMasterKeyAttributes = MasterKeyAttributes(accessControl: .`private`, version: privateMasterKeyVersion)
let serializedPrivateMasterKey = try keySerializer.serializedKey(extendedKey: privateMasterKey, attributes: privateMasterKeyAttributes)
let encodedPrivateMasterKey = serializedKeyCoder.encode(serializedKey: serializedPrivateMasterKey)
// e.g. xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi

let publicMasterKeyDerivator: PublicMasterKeyDerivating = PublicMasterKeyDerivator()
let publicMasterKey = try publicMasterKeyDerivator.publicKey(privateKey: privateMasterKey)
let publicMasterKeyVersion = KeyVersion(network: network, keyAccessControl: .`public`).wrappedValue
let publicMasterKeyAttributes = MasterKeyAttributes(accessControl: .`public`, version: publicMasterKeyVersion)
let serializedPublicMasterKey = try keySerializer.serializedKey(extendedKey: publicMasterKey, attributes: publicMasterKeyAttributes)
let encodedPublicMasterKey = serializedKeyCoder.encode(serializedKey: serializedPublicMasterKey)
// e.g. xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8

Find out more by exploring the public API (e.g. for child key derivation), and by looking through the tests.


BIP32 is licensed under the terms of the MIT license. See the LICENSE file for more information.


In developing BIP32, KevinVitale's WalletKit has been used as a reference implementation. In addition, BIP32 depends on krzyzanowskim's CryptoSwift, GigaBitcoin's secp256k1.swift and attaswift's BigInt.


If you've found this software useful, please consider making a small contribution to one of these crypto addresses:

XNAV: xNTYqoQDzsiB5Cff9Wpt65AgZxYkt1GFy7KwuDafqRU2bcAZqoZUW4Q9TZ9QRHSy8cPsM5ALkJasizJCmqSNP9CosxrF2RbKHuDz5uJVUBcKJfvnb3RZaWygr8Bhuqbpc3DsgfB3ayc
XMR: 49jzT7Amu9BCvc5q3PGiUzWXEBQTLQw68a2KvBFTMs7SHjeWgrSKgxs69ycFWQupyw9fpR6tdT8Hp5h3KksrBG9m4c8aXiG
BTC: bc1q7hehfmnq67x5k7vz0cnc75qyflkqtxe2avjkyw
ETH (ERC-20) & BNB (BEP-20): 0xe08e383B4042749dE5Df57d48c57A690DC322b8d


Stars: 0
Last commit: 2 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Related Packages

Release Notes

2 weeks ago

Updated the dependency graph and its source control requirements.

Full Changelog: https://github.com/anquii/BIP32/compare/v1.1.0...v1.1.1

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics