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.
- 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)
WalletKit is released under the MIT License.