BIP39 Phrase
BIP Standards · Published October 16, 2026

BIP85: Derive Many Seed Phrases From One Seed

BIP85 lets one master seed produce any number of independent child seed phrases. You choose a number, the index, and a BIP85 wallet turns your master key into a new BIP39 phrase, usually of 12 or 24 words, that any BIP39 wallet can restore. The same master and index always give the same child back, so one backup covers them all, and a child that leaks exposes neither the master nor the other children. The standard, Deterministic Entropy From BIP32 Keychains, also derives WIF keys, xprvs, hex, passwords, RSA keys, dice rolls and Nostr keys. This guide covers how the derivation works, every application and its path, the official test vector reproduced in Node, wallet support and when BIP85 is the wrong tool. New to seed phrases? Start with what BIP39 is.

How BIP85 Works

BIP85 starts from a BIP32 master key, however that key was made, from a BIP39 phrase or another scheme. Each child takes four steps:

  1. Choose a path. It is fully hardened and starts with m/83696968', followed by the application number, its parameters and the index. 83, 69, 69 and 68 are the ASCII codes of S, E, E and D, so the first level after m spells SEED.
  2. Derive the key. Ordinary BIP32 hardened derivation gives the 32-byte private key k at that path.
  3. Hash it. HMAC-SHA512, keyed with bip-entropy-from-k, turns k into 64 bytes of entropy.
  4. Keep what the application needs. Each application uses as many bytes as it needs and truncates the rest: a 12-word phrase keeps the first 16 bytes, a 24-word phrase the first 32.
k       = private key at m/83696968'/{app}'/{parameters}'/{index}'
entropy = HMAC-SHA512(key = "bip-entropy-from-k", msg = k)

The BIP85 specification adds the HMAC step out of caution: hardened derivation already keeps a leaked child key from exposing the parent tree, and the HMAC keeps the output safe even if an implementation skipped the hardening. Both steps are one-way, so a child phrase leads back neither to k, nor to the master key, nor to the siblings at other indexes.

Every level of the derivation path changes the result, including language and word count. The 12-word and 24-word children at index 0 are unrelated phrases, not a short and a long version of one.

BIP85 Applications and Path Numbers

Version 2.1.0 of the spec, from August 2026, defines these applications. Their numbers are meant to be meaningful: 39' and 32' are BIP numbers, and 828365 spells RSA in ASCII codes.

Application Number Path Output
BIP39 39' m/83696968'/39'/{language}'/{words}'/{index}' 12, 15, 18, 21 or 24 words
HD-Seed WIF 2' m/83696968'/2'/{index}' Compressed WIF key from the first 32 bytes
XPRV 32' m/83696968'/32'/{index}' Extended private key with depth, parent fingerprint and child number set to zero
HEX 128169' m/83696968'/128169'/{num_bytes}'/{index}' 16 to 64 bytes of raw entropy
PWD BASE64 707764' m/83696968'/707764'/{pwd_len}'/{index}' Password of 20 to 86 characters
PWD BASE85 707785' m/83696968'/707785'/{pwd_len}'/{index}' Password of 10 to 80 characters
RSA 828365' m/83696968'/828365'/{key_bits}'/{key_index}' RSA key; GPG subkeys add /{sub_key}'
DICE 89101' m/83696968'/89101'/{sides}'/{rolls}'/{index}' Die rolls numbered from 0, for PINs or custom alphabets
Nostr 128002' m/83696968'/128002'/{identity}'/{account_index}' An nsec secret key

The spec fills in the details:

BIP85 is an Informational BIP by Ethan Kosakovsky, numbered in March 2020, with Aneesh Karve as co-author since October 2024. It was marked Final that October and became Deployed in January 2026, after BIP3, the updated BIP process, merged Final and Active into that status. A Deployed BIP is considered final, and changes beyond bug fixes, minor amendments, added test vectors and editorial edits should be avoided. Version 2.1.0 added Nostr without changing any earlier path or output.

The BIP39 Test Vector, Reproduced in Node

The spec publishes a master key with expected outputs for every application except RSA. The key is public, so never use it for funds. This script derives the 12-word English child at index 0 with @scure/bip32 1.7, @scure/bip39 1.6 and @noble/hashes 1.8:

import { HDKey } from '@scure/bip32';
import { entropyToMnemonic } from '@scure/bip39';
import { wordlist } from '@scure/bip39/wordlists/english';
import { hmac } from '@noble/hashes/hmac';
import { sha512 } from '@noble/hashes/sha2';
import { bytesToHex, utf8ToBytes } from '@noble/hashes/utils';

// Master key of the BIP85 test vectors (public: never use it for funds)
const root = HDKey.fromExtendedKey(
  'xprv9s21ZrQH143K2LBWUUQRFXhucrQqBpKdRRxNVq2zBqsx8HVqFk2uYo8kmbaLLHRdqtQpUm98uKfu3vca1LqdGhUtyoFnCNkfmXRyPXLjbKb'
);

const k = root.derive("m/83696968'/39'/0'/12'/0'").privateKey;
const entropy = hmac(sha512, utf8ToBytes('bip-entropy-from-k'), k).slice(0, 16);

console.log(bytesToHex(entropy));
console.log(entropyToMnemonic(entropy, wordlist));

With version 2 of these libraries, the current npm release, the same functions are exported only under paths ending in .js, so add .js to the four subpath imports, as in @noble/hashes/hmac.js. Either way, the script prints:

6250b68daf746d12a24d58b4787a714b
girl mad pet galaxy egg matter matrix prison refuse sense ordinary nose

Both lines match the spec. Set the words level to 18' and keep 24 bytes, or to 24' and keep 32, and the script returns the spec's 18- and 24-word vectors, which begin "near account window" and "puppy ocean match". We checked every other vector in the spec the same way, from the raw test cases and the DRNG to WIF, XPRV, HEX, both password formats, dice and Nostr, and all matched. One trap if you try it: the XPRV vector's DERIVED ENTROPY line shows only the second 32 bytes, the private key, not the chain code. The entropy becomes words like any BIP39 entropy, with a checksum appended; the seed phrase generator shows random test phrases next to their entropy.

Children of the Public Test Phrase

Started from the seed of the public BIP39 test phrase (abandon abandon … about) instead of the spec's key, the same derivation gives these children. They are public too, so never send funds to them:

Parent Path Child phrase
Test phrase m/83696968'/39'/0'/12'/0' prosper short ramp prepare exchange stove life snack client enough purpose fold
Test phrase m/83696968'/39'/0'/12'/1' sing slogan bar group gauge sphere rescue fossil loyal vital model desert
Test phrase + passphrase TREZOR m/83696968'/39'/0'/12'/0' climb typical because giraffe beach wool fit ship common chapter hotel arm

These are not official vectors: we computed them with the same libraries and confirmed them with an independent implementation that uses only Python's standard library. Index 1 bears no visible relation to index 0. And because a BIP39 passphrase changes the master key, the same words with TREZOR, the passphrase of the official BIP39 test vectors, give different children.

Which Wallets Support BIP85

Any BIP39 wallet can restore a child, but deriving one takes a wallet that implements BIP85. These document the feature as of October 2026:

Wallet Where to find it What it derives
COLDCARD Mk4 and Q Advanced/Tools → Derive Seed B85 (Mk4) or Derive Seeds (BIP-85) (Q) 12, 18 or 24 words, WIF, XPRV, 32 or 64 bytes of hex, 21-character Base64 passwords
BitBox02 BitBoxApp: Settings → Expert settings → Show BIP-85 child key 12 or 24 words
Blockstream Jade Options → Wallet → BIP85 12 or 24 words
Passport Core Enable Key Manager in Settings → Extensions, then tap New Key 12 or 24 words, loadable as a temporary seed
SeedSigner Settings → Advanced → BIP-85 child seeds (off by default), then BIP-85 child seed in the seed's options 12 or 24 English words
Krux Wallet → BIP85 12 or 24 words, Base64 passwords
AirGap Vault Settings → the secret's details → Generate BIP85 Child secret recovery phrase A phrase of the chosen length, with an optional passphrase

BitBox02 added the feature in firmware 9.18.0 (April 2024), Jade in 0.1.45 (February 2023), SeedSigner in 0.6.0 (February 2023) and Krux in 24.07.0 (July 2024), so update first if the menu is missing. Two details differ between wallets:

Benefits and Risks

What BIP85 gives you:

What it costs:

When to Use BIP85 and When Not

Situation Use BIP85? Why
A phone hot wallet next to a hardware wallet Yes The master never touches the phone, and a leak costs only that child
Wallets for testing, a Lightning node or separate projects Yes Each gets its own phrase without another seed backup to store
A wallet you manage for a family member With care You can always spend from it, so it is never fully theirs
A wallet someone else should own outright No Whoever holds the master can re-create it at any time
Replacing a seed you think is compromised No Children of a compromised master are compromised too; create a new seed
Splitting a backup or planning inheritance No BIP85 makes more phrases, not shares; see SLIP39 vs BIP39 and crypto inheritance

If you use it, the master seed becomes your most valuable secret: protect it as described in how to store a seed phrase, and note each child's index, word count and passphrase status next to its purpose.

Frequently Asked Questions

Is a BIP85 child seed a normal seed phrase?

Yes. It is a standard BIP39 phrase with a valid checksum, and a wallet that restores it cannot tell that it was derived.

Can someone with a child phrase find my master seed?

No. Hardened derivation and HMAC-SHA512 cannot be reversed, so a child reveals neither the master nor the other children. The reverse does not hold: the master re-creates every child.

Do I need to back up each child phrase?

Not strictly: the master backup and the derivation details re-create any child, which is why COLDCARD and Jade ask you to keep track of the index. A separate backup of an important child removes the dependence on a BIP85 tool.

Does a BIP39 passphrase change BIP85 children?

Yes. The passphrase goes into the BIP39 seed and so changes the master key: the same words with and without it give different children, as the test phrase table shows.

How is a BIP85 child different from a second account?

A second account, such as m/44'/0'/1' in the BIP44 scheme, is another branch of the same seed and restores only with the original phrase. A BIP85 child is a separate seed phrase that you can load into another wallet on its own.

← Read on full site