Одна seed-фраза не хранит баланс. Она задаёт детерминированное дерево ключей, из которого кошелёк выбирает конкретную ветку. Если два кошелька используют разные пути деривации, они получают разные приватные ключи и разные адреса. Баланс при этом может отличаться, потому что средства лежат на адресах, которые один кошелёк сканирует, а другой — нет.
Короткий ответ: seed один, но кошельки могут искать деньги в разных «карманах» этого seed. Чтобы увидеть все средства, нужно понять, какой путь деривации использовал старый кошелёк, и импортировать seed с тем же путём.
Seed-фраза, или recovery phrase, — это человекочитаемое представление энтропии, из которой затем выводится мастер-ключ. Обычно это 12 или 24 слова по стандарту BIP-39. Сама по себе фраза не является адресом и не привязана к одному балансу.
Из seed получается мастер-ключ, а из него — иерархия дочерних ключей. Каждый уровень иерархии задаётся числовым индексом. Совокупность этих индексов и есть путь деривации. Например, путь может указывать: «это Bitcoin, это первый аккаунт, это внешняя цепочка адресов, это нулевой адрес».
Важно различать три вещи:
Если кошелёк знает seed, но не знает путь, он может начать сканировать дерево по умолчанию. Если ваши средства были получены на адресах из другой ветки, кошелёк их не увидит.
Стандарт BIP-32 описывает иерархически детерминированные кошельки (HD-wallets). Из одного мастер-ключа можно выводить бесконечное количество дочерних ключей. Каждый дочерний ключ может быть получен только из родительского, но не наоборот: зная дочерний ключ, нельзя восстановить родительский.
Типичная структура пути выглядит так:
text
m / purpose' / coin_type' / account' / change / address_index
Где:
Апостроф означает hardened-деривацию. Такие уровни защищены сильнее: зная дочерний ключ и chain code, нельзя вывести соседние дочерние ключи или родительский ключ. Обычно hardened используются для верхних уровней: purpose, coin_type, account.
Кошелёк не «запрашивает баланс seed-фразы». Он делает другое:
Если два кошелька используют разные
Типичные причины расхождения:
BIP-44 задаёт общую структуру для HD-кошельков. Он не привязан к одному типу адреса, но исторически часто использовался для legacy-адресов Bitcoin, начинающихся с
Общий шаблон:
text
m / 44' / coin_type' / account' / change / address_index
Для Bitcoin
Пример пути для Bitcoin:
text
m / 44' / 0' / 0' / 0 / 0
Это означает: Bitcoin, первый аккаунт, внешняя цепочка, первый адрес.
Если вы когда-то получали BTC на адрес вида
BIP-49 появился для адресов, которые используют SegWit, но упакованы в P2SH. Такие адреса начинаются с
Шаблон:
text
m / 49' / coin_type' / account' / change / address_index
Пример:
text
m / 49' / 0' / 0' / 0 / 0
Такой путь нужен, если старый кошелёк показывал адреса
BIP-84 описывает native SegWit-адреса формата bech32. В основной сети Bitcoin они начинаются с
Шаблон:
text
m / 84' / coin_type' / account' / change / address_index
Пример:
text
m / 84' / 0' / 0' / 0 / 0
Если вы получали BTC на адрес
Для Bitcoin также существует BIP-86, который связан с адресами Taproot формата bech32m, начинающимися с
Если вы использовали Taproot-адреса, обычный BIP-84-кошелёк их не увидит. Нужен кошелёк, который явно поддерживает BIP-86 или Taproot-деривацию.
В Ethereum чаще всего используется путь:
text
m / 44' / 60' / 0' / 0 / 0
Но некоторые кошельки используют варианты:
text
m / 44' / 60' / 0' / 0
m / 44' / 60' / 0'
Или даже нестандартные индексы аккаунтов. Из-за этого один и тот же seed в разных Ethereum-кошельках может давать разные адреса.
Для EVM-сетей важно учитывать ещё один момент: один и тот же адрес может существовать в Ethereum, BNB Smart Chain, Polygon, Arbitrum, Optimism и других совместимых сетях. Seed и адрес могут быть одинаковыми, но балансы в разных сетях будут разными, потому что это разные блокчейны.
Если seed введён верно, но баланс нулевой, возможны несколько сценариев.
Например, вы восстанавливаете Bitcoin-кошелёк, а он по умолчанию сканирует только BIP-44. Если средства были на BIP-84, вы увидите ноль.
HD-кошельки обычно сканируют адреса последовательно. Если между последним использованным адресом и следующим есть большой разрыв, кошелёк может решить, что активных адресов больше нет. Это называется gap limit.
Если вы часто создавали новые адреса для получения, но не использовали их подряд, кошелёк может остановиться слишком рано.
В Bitcoin сдача часто возвращается на внутренний адрес, а не на исходный адрес получения. Если кошелёк некорректно обрабатывает цепочку сдачи, он может неправильно считать баланс или не видеть некоторые UTXO. Подробнее о механике входов и сдачи можно прочитать в материале UTXO в Bitcoin: откуда берутся входы, сдача и почему баланс не хранится одной цифрой.
Многие кошельки позволяют создавать несколько аккаунтов внутри одного seed. Аккаунт
Некоторые приложения используют собственные пути деривации. Даже если они совместимы с BIP-39, они могут выбирать нестандартный purpose или coin_type. В таком случае нужно искать документацию конкретного кошелька.
Главное правило: не вводите seed-фразу на случайных сайтах, в Telegram-ботах, браузерных расширениях неизвестного происхождения или «инструментах восстановления баланса». Seed даёт полный контроль над средствами.
Безопасный порядок действий:
Для Ethereum и EVM-сетей часто используется
Если у вас есть старый адрес, можно действовать от обратного.
Если вы не помните адрес, но помните кошелёк, начните с документации этого кошелька. Многие приложения явно указывают, какие пути они используют по умолчанию.
Сайты, которые обещают «найти все балансы по seed», часто являются фишинговыми. Любой, кто получает вашу seed-фразу, может немедленно вывести средства.
Для Bitcoin и Bitcoin-форков могут использоваться разные coin_type. Если вы восстанавливаете не ту сеть, адреса будут другими.
В Ethereum один адрес может иметь ETH и десятки токенов. Кошелёк может показывать ETH, но не отображать токены, если не добавил их вручную или не поддерживает автоматическое сканирование.
Если seed использовался в testnet, адреса будут отличаться от mainnet. Баланс в тестовой сети не имеет ценности в основной сети.
BIP-39 использует контрольную сумму, поэтому многие кошельки сразу отклоняют неверную фразу. Но если вы используете нестандартную реализацию или вводите фразу в кошелёк, который не проверяет checksum строго, можно получить пустой кошелёк из-за одного неверного слова.
Если приложение не даёт выбрать путь деривации, есть два безопасных варианта:
Не пытайтесь «перебрать» seed вручную на сомнительных сервисах. Это опасно и неэффективно.
Короткий ответ: seed один, но кошельки могут искать деньги в разных «карманах» этого seed. Чтобы увидеть все средства, нужно понять, какой путь деривации использовал старый кошелёк, и импортировать seed с тем же путём.
Что такое seed-фраза и почему из неё получается много адресов
Seed-фраза, или recovery phrase, — это человекочитаемое представление энтропии, из которой затем выводится мастер-ключ. Обычно это 12 или 24 слова по стандарту BIP-39. Сама по себе фраза не является адресом и не привязана к одному балансу.
Из seed получается мастер-ключ, а из него — иерархия дочерних ключей. Каждый уровень иерархии задаётся числовым индексом. Совокупность этих индексов и есть путь деривации. Например, путь может указывать: «это Bitcoin, это первый аккаунт, это внешняя цепочка адресов, это нулевой адрес».
Важно различать три вещи:
- Seed-фраза — исходные данные для восстановления.
- Мастер-ключ — корень дерева, из которого выводятся все остальные ключи.
- Путь деривации — правило, по которому кошелёк выбирает конкретные ключи из дерева.
Если кошелёк знает seed, но не знает путь, он может начать сканировать дерево по умолчанию. Если ваши средства были получены на адресах из другой ветки, кошелёк их не увидит.
Как устроена иерархия ключей
Стандарт BIP-32 описывает иерархически детерминированные кошельки (HD-wallets). Из одного мастер-ключа можно выводить бесконечное количество дочерних ключей. Каждый дочерний ключ может быть получен только из родительского, но не наоборот: зная дочерний ключ, нельзя восстановить родительский.
Типичная структура пути выглядит так:
text
m / purpose' / coin_type' / account' / change / address_index
Где:
m— мастер-ключ.
purpose'— номер стандарта или типа кошелька.
coin_type'— тип криптовалюты.
account'— номер аккаунта внутри кошелька.
change— цепочка: внешние адреса для получения или внутренние адреса для сдачи.
address_index— порядковый номер адреса.
Апостроф означает hardened-деривацию. Такие уровни защищены сильнее: зная дочерний ключ и chain code, нельзя вывести соседние дочерние ключи или родительский ключ. Обычно hardened используются для верхних уровней: purpose, coin_type, account.
Почему разные кошельки показывают разный баланс
Кошелёк не «запрашивает баланс seed-фразы». Он делает другое:
- Восстанавливает мастер-ключ из seed.
- Выбирает путь деривации по своим настройкам или стандарту.
- Генерирует последовательность адресов.
- Проверяет историю и баланс этих адресов в блокчейне.
Если два кошелька используют разные
purpose, разные coin_type, разные account или разные типы адресов, они получат разные адреса. Поэтому один кошелёк может показать баланс, а другой — ноль.Типичные причины расхождения:
- Кошелёк использует legacy-путь BIP-44, а средства были на native SegWit-адресах BIP-84.
- Кошелёк использует BIP-49 для совместимых SegWit-адресов, а старый кошелёк использовал BIP-44.
- Кошелёк сканирует только первый аккаунт, а средства были на втором или третьем аккаунте.
- Кошелёк поддерживает только одну монету, а seed использовался для другой сети или форка.
- Кошелёк не сканирует адреса сдачи или сканирует их недостаточно глубоко.
- Кошелёк использует нестандартный путь, характерный для конкретного приложения.
BIP-44: базовый многовалютный путь
BIP-44 задаёт общую структуру для HD-кошельков. Он не привязан к одному типу адреса, но исторически часто использовался для legacy-адресов Bitcoin, начинающихся с
1.Общий шаблон:
text
m / 44' / coin_type' / account' / change / address_index
Для Bitcoin
coin_type равен 0. Для Ethereum обычно используется 60. Для тестовых сетей Bitcoin часто используется 1.Пример пути для Bitcoin:
text
m / 44' / 0' / 0' / 0 / 0
Это означает: Bitcoin, первый аккаунт, внешняя цепочка, первый адрес.
Если вы когда-то получали BTC на адрес вида
1..., скорее всего, кошелёк использовал BIP-44 или похожий legacy-путь.BIP-49: SegWit-совместимые адреса
BIP-49 появился для адресов, которые используют SegWit, но упакованы в P2SH. Такие адреса начинаются с
3 в основной сети Bitcoin.Шаблон:
text
m / 49' / coin_type' / account' / change / address_index
Пример:
text
m / 49' / 0' / 0' / 0 / 0
Такой путь нужен, если старый кошелёк показывал адреса
3..., но внутри использовал SegWit для экономии комиссий. Если импортировать seed в кошелёк, который ожидает только BIP-44, адреса 3... могут не появиться.BIP-84: native SegWit
BIP-84 описывает native SegWit-адреса формата bech32. В основной сети Bitcoin они начинаются с
bc1q.Шаблон:
text
m / 84' / coin_type' / account' / change / address_index
Пример:
text
m / 84' / 0' / 0' / 0 / 0
Если вы получали BTC на адрес
bc1q..., а новый кошелёк по умолчанию использует BIP-44, он покажет нулевой баланс. Seed правильный, но кошелёк смотрит не туда.BIP-86: Taproot
Для Bitcoin также существует BIP-86, который связан с адресами Taproot формата bech32m, начинающимися с
bc1p. Он использует другой purpose и другой тип скрипта.Если вы использовали Taproot-адреса, обычный BIP-84-кошелёк их не увидит. Нужен кошелёк, который явно поддерживает BIP-86 или Taproot-деривацию.
Ethereum и EVM-сети: почему там тоже бывает путаница
В Ethereum чаще всего используется путь:
text
m / 44' / 60' / 0' / 0 / 0
Но некоторые кошельки используют варианты:
text
m / 44' / 60' / 0' / 0
m / 44' / 60' / 0'
Или даже нестандартные индексы аккаунтов. Из-за этого один и тот же seed в разных Ethereum-кошельках может давать разные адреса.
Для EVM-сетей важно учитывать ещё один момент: один и тот же адрес может существовать в Ethereum, BNB Smart Chain, Polygon, Arbitrum, Optimism и других совместимых сетях. Seed и адрес могут быть одинаковыми, но балансы в разных сетях будут разными, потому что это разные блокчейны.
Почему баланс может быть нулевым при правильном seed
Если seed введён верно, но баланс нулевой, возможны несколько сценариев.
Кошелёк использует не тот стандарт
Например, вы восстанавливаете Bitcoin-кошелёк, а он по умолчанию сканирует только BIP-44. Если средства были на BIP-84, вы увидите ноль.
Кошелёк сканирует мало адресов
HD-кошельки обычно сканируют адреса последовательно. Если между последним использованным адресом и следующим есть большой разрыв, кошелёк может решить, что активных адресов больше нет. Это называется gap limit.
Если вы часто создавали новые адреса для получения, но не использовали их подряд, кошелёк может остановиться слишком рано.
Средства на адресах сдачи
В Bitcoin сдача часто возвращается на внутренний адрес, а не на исходный адрес получения. Если кошелёк некорректно обрабатывает цепочку сдачи, он может неправильно считать баланс или не видеть некоторые UTXO. Подробнее о механике входов и сдачи можно прочитать в материале UTXO в Bitcoin: откуда берутся входы, сдача и почему баланс не хранится одной цифрой.
Использован другой аккаунт
Многие кошельки позволяют создавать несколько аккаунтов внутри одного seed. Аккаунт
0', 1', 2' — это разные ветки. Если средства были на втором аккаунте, а новый кошелёк показывает только первый, баланс будет нулевым.Seed от другого кошелька или другой версии
Некоторые приложения используют собственные пути деривации. Даже если они совместимы с BIP-39, они могут выбирать нестандартный purpose или coin_type. В таком случае нужно искать документацию конкретного кошелька.
Как найти свои средства безопасно
Главное правило: не вводите seed-фразу на случайных сайтах, в Telegram-ботах, браузерных расширениях неизвестного происхождения или «инструментах восстановления баланса». Seed даёт полный контроль над средствами.
Безопасный порядок действий:
- Вспомните, какой кошелёк вы использовали раньше.
- Найдите официальную документацию этого кошелька и узнайте его путь деривации.
- Используйте доверенный кошелёк с открытым исходным кодом или аппаратный кошелёк.
- Импортируйте seed и выберите нужный стандарт: BIP-44, BIP-49, BIP-84 или другой.
- Если кошелёк позволяет вручную указать путь деривации, проверьте известные варианты.
- Не отправляйте средства, пока не убедитесь, что видите правильный адрес и баланс.
Таблица популярных путей для Bitcoin
| Стандарт | Тип адресов | Пример начала адреса | Типичный путь |
|---|---|---|---|
| BIP-44 | Legacy | 1... | m / 44' / 0' / 0' / 0 / index |
| BIP-49 | SegWit в P2SH | 3... | m / 49' / 0' / 0' / 0 / index |
| BIP-84 | Native SegWit | bc1q... | m / 84' / 0' / 0' / 0 / index |
| BIP-86 | Taproot | bc1p... | m / 86' / 0' / 0' / 0 / index |
Для Ethereum и EVM-сетей часто используется
m / 44' / 60' / 0' / 0 / index, но конкретный кошелёк может отличаться.Как проверить, какой путь использовался
Если у вас есть старый адрес, можно действовать от обратного.
- Определите тип адреса.
1...— скорее всего legacy, BIP-44.
3...— P2SH, возможно BIP-49.
bc1q...— native SegWit, BIP-84.
bc1p...— Taproot, BIP-86.
- Проверьте, поддерживает ли ваш кошелёк этот тип.
- Если поддерживает, переключите тип счёта или путь деривации.
- Если нет, используйте другой доверенный кошелёк или аппаратное устройство с поддержкой нужного стандарта.
Если вы не помните адрес, но помните кошелёк, начните с документации этого кошелька. Многие приложения явно указывают, какие пути они используют по умолчанию.
Типичные ошибки при восстановлении
Ввод seed на подозрительных сайтах
Сайты, которые обещают «найти все балансы по seed», часто являются фишинговыми. Любой, кто получает вашу seed-фразу, может немедленно вывести средства.
Использование неправильной сети
Для Bitcoin и Bitcoin-форков могут использоваться разные coin_type. Если вы восстанавливаете не ту сеть, адреса будут другими.
Ожидание баланса токенов в обычном кошельке
В Ethereum один адрес может иметь ETH и десятки токенов. Кошелёк может показывать ETH, но не отображать токены, если не добавил их вручную или не поддерживает автоматическое сканирование.
Путаница между тестовой и основной сетью
Если seed использовался в testnet, адреса будут отличаться от mainnet. Баланс в тестовой сети не имеет ценности в основной сети.
Неправильная фраза из-за опечатки
BIP-39 использует контрольную сумму, поэтому многие кошельки сразу отклоняют неверную фразу. Но если вы используете нестандартную реализацию или вводите фразу в кошелёк, который не проверяет checksum строго, можно получить пустой кошелёк из-за одного неверного слова.
Что делать, если кошелёк поддерживает только один путь
Если приложение не даёт выбрать путь деривации, есть два безопасных варианта:
- Использовать другой кошелёк, который поддерживает нужный стандарт.
- Использовать аппаратный кошелёк и совместимое приложение, где можно выбрать тип счёта.
Не пытайтесь «перебрать» seed вручную на сомнительных сервисах. Это опасно и неэффективно.
Практический чек-лист восстановления
- Seed-фраза вводится только в доверенное приложение или аппаратный кошелёк.
- Определите тип старого адреса: legacy, P2SH-SegWit, native SegWit или Taproot.
- Проверьте, какой путь деривации использует кошелёк по умолчанию.
- Попробуйте переключить тип счёта: BIP-44, BIP-49, BIP-84, BIP-86.
- Проверьте несколько аккаунтов, если кошелёк поддерживает мультиаккаунты.
- Для Ethereum проверьте ETH и токены отдельно.
- Убедитесь, что выбрана основная сеть, а не testnet.
- Не отправляйте транзакции, пока не убедитесь, что видите правильный баланс.
- Если средства найдены, заранее подготовьте безопасный план хранения и не сообщайте seed никому.
