Uniswap — децентрализованная биржа, но доступ к ней открывается через Ethereum-кошелёк: MetaMask, Trust Wallet, Ledger, MyEtherWallet и другие. Если вы потеряли часть seed-фразы, но помните некоторые слова, их порядок или количество, можно попытаться восстановить мнемонику программно. Ниже — практическое руководство по BIP39/BIP32, комбинациям слов и деривации адресов для Uniswap. Важно: все действия выполняйте только со своим кошельком и в офлайн-среде. На сайте Восстановление криптокошельков собраны проверенные методы восстановления.
Почему Uniswap связан с мнемоникой
Uniswap не хранит seed-фразу и не имеет собственного аккаунта. Он работает с Ethereum-адресом, который выводится из BIP39-мнемоники по стандарту BIP32/BIP44. Поэтому задача сводится к поиску seed-фразы, из которой получается адрес, связанный с вашей активностью на Uniswap: свопы, approvals, LP-позиции Uniswap V2/V3, NFT-позиции.
BIP39/BIP32: минимум для программиста
- Мнемоника BIP39 состоит из 12, 15, 18, 21 или 24 слов.
- Слова берутся из фиксированного словаря на 2048 слов (обычно английского).
- Последнее слово содержит checksum. Для 12 слов checksum — 4 бита, для 24 — 8 бит.
- Из мнемоники через PBKDF2-HMAC-SHA512 получается seed.
- Далее BIP32 создаёт дерево ключей. Для Ethereum чаще используется путь m/44'/60'/0'/0/i.
- MetaMask, Trust Wallet и большинство EVM-кошельков используют похожие пути, но бывают исключения.
Стратегия восстановления по комбинациям
- Соберите всё, что помните: известные слова, их позиции, возможные варианты, язык словаря, количество слов.
- Отметьте неизвестные позиции. Если порядок неизвестен, разделите задачу на перестановки.
- Сузьте словарь: не все 2048 слов, а только вероятные по памяти, длине, первой букве, похожести.
- Генерируйте комбинации только для неизвестных позиций.
- Проверяйте checksum до деривации — это отсекает большинство неверных вариантов.
- Деривируйте Ethereum-адреса и сравнивайте с целевым адресом или ищите известные активы.
- Для Uniswap проверяйте не только ETH, но и токены, LP-токены, NFT-позиции V3 и историю транзакций.
Оценка сложности
| Пропущено слов | Число комбинаций | После checksum |
|---|---:|---:|
| 1 | 2 048 | ~128 для 12 слов |
| 2 | 4 194 304 | ~262 144 для 12 слов |
| 3 | 8 589 934 592 | ~536 870 912 для 12 слов |
| 4 | ~17,6 трлн | ~1,1 трлн для 12 слов |
Для 24 слов checksum отсекает больше вариантов, но общее число комбинаций растёт быстрее. При 4+ пропущенных словах нужны GPU, кластеры или специализированные инструменты.

Инструменты
- Python: библиотеки
mnemonic,eth-account,bip_utils,web3. btcrecoverиseedrecover.py— для частично известных seed-фраз и кошельков.HashCat— для паролей к keystore/JSON, но не для прямого перебора BIP39 в большинстве сценариев.- Офлайн-словари и локальные базы адресов для проверки.
Пример программной реализации на Python
Это безопасный каркас для офлайн-поиска. Он не подключается к сети и не отправляет seed-фразу наружу.
from itertools import product
from mnemonic import Mnemonic
from bip_utils import Bip39SeedGenerator, Bip44, Bip44Coins, Bip44Changes
mnemo = Mnemonic('english')
WORDLIST = mnemo.wordlist
# Пример: известные слова, None — неизвестная позиция
known = ['word1', None, 'word3', None, 'word5', 'word6',
'word7', 'word8', 'word9', 'word10', 'word11', 'word12']
unknown_positions = [i for i, w in enumerate(known) if w is None]
candidate_words = WORDLIST # сузьте список для ускорения
target_address = '0xВАШ_АДРЕС'.lower()
def derive_addresses(seed_bytes, count=20):
addresses = []
bip44_mst = Bip44.FromSeed(seed_bytes, Bip44Coins.ETHEREUM)
for i in range(count):
addr = (
bip44_mst
.Purpose()

.Coin()
.Account(0)
.Change(Bip44Changes.CHAIN_EXT)
.AddressIndex(i)
.PublicKey()
.ToAddress()
)
addresses.append(addr.lower())
return addresses
for combo in product(candidate_words, repeat=len(unknown_positions)):
words = known[:]
for pos, word in zip(unknown_positions, combo):
words[pos] = word
phrase = ' '.join(words)
if not mnemo.check(phrase):
continue
seed = Bip39SeedGenerator(phrase).Generate()
for addr in derive_addresses(seed, 20):
if addr == target_address:
print('Найдено:', phrase)
raise SystemExit
Если порядок известных слов неизвестен, используйте itertools.permutations. Но помните: 12! — это почти 479 млн перестановок, поэтому без известных позиций и checksum поиск может быть долгим.
Проверка адреса и активов Uniswap
Когда адрес найден, проверьте:
- баланс ETH и ERC-20 токенов;
- nonce и историю транзакций;
- approvals к контрактам Uniswap;
- LP-токены Uniswap V2;

- NFT-позиции Uniswap V3;
- тот же адрес в Arbitrum, Optimism, Polygon, Base и других EVM-сетях.
Для проверки используйте локальный узел или публичный explorer. Никогда не вставляйте seed-фразу на сайты и не отправляйте её в чаты.
Оптимизация поиска
- Начинайте с наиболее вероятных слов и позиций.
- Используйте многопроцессорность и GPU.
- Проверяйте checksum до дорогой деривации.
- Заранее вычислите целевые адреса для нескольких путей и индексов.
- Разделяйте диапазоны комбинаций между машинами.
- Ведите журнал проверенных вариантов, чтобы не повторяться.
Безопасность прежде всего
- Работайте на воздушном зазоре: отключите интернет, Wi-Fi и Bluetooth.
- Используйте одноразовую ОС или изолированную виртуальную машину.
- Не публикуйте seed-фразу, даже частично.
- После восстановления сразу переведите активы на новый кошелёк.
- Храните резервные копии в нескольких местах, например на металле и в сейфе.
- Помните: восстановление допустимо только для собственных кошельков и в рамках закона.
Частые ошибки
- Неверный язык словаря: английский, испанский, французский и т. д.
- Неверный путь деривации или индекс адреса.
- Игнорирование BIP39 passphrase.
- Проверка только первого адреса.
- Использование онлайн-генераторов и непроверенных скриптов.
- Попытка перебрать слишком много слов без сужения словаря.
Когда нужен специалист
Если пропущено больше 4 слов, порядок полностью неизвестен, есть BIP39 passphrase или повреждённый keystore, ручной перебор может быть неэффективен. На сайте «Восстановление криптокошельков» можно найти пошаговые инструкции, инструменты и рекомендации по безопасному восстановлению MetaMask, MyEtherWallet, Electrum, Ledger и других кошельков.
Заключение
Программное восстановление мнемоники Uniswap — это задача о BIP39-комбинациях, checksum и деривации Ethereum-адресов. Если у вас есть частичная информация о seed-фразе, Python-скрипт и правильная стратегия могут помочь найти доступ к кошельку. Главное — действовать офлайн, не рисковать ключами и использовать только проверенные методы. Начните с базовой проверки известных слов, затем сузьте словарь и только после этого запускайте перебор.