public static Bip39Wallet generateBip44Wallet(String password, File destinationDirectory,
                                                  boolean testNet)
            throws CipherException, IOException {
        byte[] initialEntropy = new byte[16];
        SecureRandomUtils.secureRandom().nextBytes(initialEntropy);

        String mnemonic = MnemonicUtils.generateMnemonic(initialEntropy);
        byte[] seed = MnemonicUtils.generateSeed(mnemonic, null);

        Bip32ECKeyPair masterKeypair = Bip32ECKeyPair.generateKeyPair(seed);
        Bip32ECKeyPair bip44Keypair = generateBip44KeyPair(masterKeypair, testNet);

        String walletFile = generateWalletFile(password, bip44Keypair, destinationDirectory, false);

        return new Bip39Wallet(walletFile, mnemonic);
    }
public static Bip39Wallet generateBip44Wallet ( String password , File destinationDirectory , boolean testNet ) throws CipherException , IOException { byte [ ] initialEntropy = new byte [ 16 ] ; SecureRandomUtils . secureRandom ( ) . nextBytes ( initialEntropy ) ; String mnemonic = MnemonicUtils . generateMnemonic ( initialEntropy ) ; byte [ ] seed = MnemonicUtils . generateSeed ( mnemonic , null ) ; Bip32ECKeyPair masterKeypair = Bip32ECKeyPair . generateKeyPair ( seed ) ; Bip32ECKeyPair bip44Keypair = generateBip44KeyPair ( masterKeypair , testNet ) ; String walletFile = generateWalletFile ( password , bip44Keypair , destinationDirectory , false ) ; return new Bip39Wallet ( walletFile , mnemonic ) ; }
Generates a BIP-44 compatible Ethereum wallet on top of BIP-39 generated seed.

@param password Will be used for both wallet encryption and passphrase for BIP-39 seed
@param destinationDirectory The directory containing the wallet
@param testNet should use the testNet derive path
@return A BIP-39 compatible Ethereum wallet
@throws CipherException if the underlying cipher is not available
@throws IOException if the destination cannot be written to