/HDWalletKit

Hierarchical Deterministic(HD) wallet for cryptocurrencies

Primary LanguageSwiftMIT LicenseMIT

WalletKit

WalletKit is a Swift framwork that enables you to create and use bitcoin HD wallet(Hierarchical Deterministic Wallets) in your own app.

You can check if the address generation is working right here.

Features

How to use

  • Generate seed and convert it to mnemonic sentence.
let entropy = Data(hex: "000102030405060708090a0b0c0d0e0f")
let mnemonic = Mnemonic.create(entropy: entropy)
print(mnemonic)
// abandon amount liar amount expire adjust cage candy arch gather drum buyer

let seed = Mnemonic.createSeed(mnemonic: mnemonic)
print(seed.toHexString())
  • PrivateKey and key derivation (BIP32, BIP44)
let masterPrivateKey = PrivateKey(seed: seed, network: .main)

// m/44'
let purpose = masterPrivateKey.derived(at: 44, hardens: true)

// m/44'/60'
let coinType = purpose.derived(at: 60, hardens: true)

// m/44'/60'/0'
let account = coinType.derived(at: 0, hardens: true)

// m/44'/60'/0'/0
let change = account.derived(at: 0)

// m/44'/60'/0'/0
let firstPrivateKey = change.derived(at: 0)
print(firstPrivateKey.publicKey.address)
  • Create your wallet and generate addresse
// It generates master key pair from the seed provided.
let wallet = Wallet(seed: seed, network: .main)

let firstAddress = wallet.generateAddress(at: 0)
print(firstAddress)

let secondAddress = wallet.generateAddress(at: 1)
print(secondAddress)

let thirdAddress = wallet.generateAddress(at: 2)
print(thirdAddress)

License

WalletKit is released under the MIT License.