kim jot
kim jot

Reputation: 74

How to create bitcoin wallet from mnemonics using bitcoinj (walletappkit) in android

I am creating a wallet from mnemonics,for ethereum i have used web3j library for generating mnemonics,address and its private key and now for bitcoin i want to use the same generated mnemonics to generate bitcoin address and its private key for bitcoin i am using Bitcoinj library but not able to get its address and key.

I also tried Walletappkit but its generating address without getting mnemonics so is there any way of using mnemonics in Walletappkit so i can get bitcoin address and sync the bitcoin chain for transactions. Also is there any way of using walletappkit without syncing and gets bitcoin detail like its balance and transaction info.

Below is the code how I created ethereum wallet and its mnemonic key using web3j and bitcoinj.

val wallet = WalletUtils.generateBip39Wallet("", File(path))
            val mnemonics = wallet.mnemonic
            //  bitcoinj
            var seed = DeterministicSeed(wallet.mnemonic, null, "", 1409478661L)
            val chain = DeterministicKeyChain.builder().seed(seed).build()
            val keyPath = HDUtils.parsePath("M/44H/60H/0H/0/0")
            val key = chain.getKeyByPath(keyPath, true)
            val privKey = key.privKey

             
            // Web3j
            val credentials = Credentials.create(privKey.toString(16))
            val eth_address = credentials.address

Upvotes: 0

Views: 3820

Answers (2)

Flo Ryan
Flo Ryan

Reputation: 337

I'm not sure if I correctly understand what you want to do, but if you want to restore/create a Bitcoinj wallet from a mnemonic seed, then there's an official example for this here:

// Here we restore our wallet from a seed with no passphrase. Also have a look at the BackupToMnemonicSeed.java example that shows how to backup a wallet by creating a mnemonic sentence.
String seedCode = "yard impulse luxury drive today throw farm pepper survey wreck glass federal";
String passphrase = "";
Long creationtime = 1409478661L;

DeterministicSeed seed = new DeterministicSeed(seedCode, null, passphrase, creationtime);

// The wallet class provides a easy fromSeed() function that loads a new wallet from a given seed.
Wallet wallet = Wallet.fromSeed(params, seed, Script.ScriptType.P2PKH);

Upvotes: 1

Adarsha Jha
Adarsha Jha

Reputation: 1850

you can use bitcore.js for generating mnemonics. I am sharing the link of npm package please have a look.

var Mnemonic = require('bitcore-mnemonic');
var code = new Mnemonic(Mnemonic.Words.SPANISH);
code.toString(); 
var xpriv = code.toHDPrivateKey();

Upvotes: 0

Related Questions