protected function generateNewSeed($passphrase = "", $forceEntropy = null) {
        // generate master seed, retry if the generated private key isn't valid (FALSE is returned)
        do {
            $mnemonic = $this->generateNewMnemonic($forceEntropy);

            $seed = (new Bip39SeedGenerator)->getSeed($mnemonic, $passphrase);

            $key = null;
            try {
                $key = HierarchicalKeyFactory::fromEntropy($seed);
            } catch (\Exception $e) {
                // try again
            }
        } while (!$key);

        return [$mnemonic, $seed, $key];
    }