Ошибка: Wallet — неверная seed-фраза при импорте

Причина и решение ошибки неверной seed-фразы (mnemonic) при импорте кошелька TON.

Wallet: неверная seed-фраза при импорте

Кошелёк или @ton/crypto отклонил mnemonic: фраза не проходит checksum BIP-39 / TON-словарь, либо из неё получается не тот адрес, что ожидал пользователь.


Причина

  • опечатка, лишний/пропущенный пробел, слово не из wordlist;
  • 12/18/24 слова перепутаны по длине;
  • импортируешь Ethereum-фразу в TON-кошелёк с другой деривацией и ждёшь тот же адрес;
  • неверный password (BIP39 passphrase) при наличии;
  • слова в другом языке wordlist, чем при создании.

Решение

typescript
// @ton/crypto ^3, @ton/ton ^15
import { mnemonicValidate, mnemonicToPrivateKey } from "@ton/crypto";
import { WalletContractV4 } from "@ton/ton";

const words = phrase.trim().toLowerCase().split(/\s+/);

if (![12, 18, 24].includes(words.length)) {
  throw new Error("Mnemonic must be 12, 18 or 24 words");
}

const valid = await mnemonicValidate(words);
if (!valid) {
  throw new Error("Invalid seed phrase: checksum/wordlist failed");
}

const key = await mnemonicToPrivateKey(words);
const wallet = WalletContractV4.create({
  workchain: 0,
  publicKey: key.publicKey,
});

console.log(wallet.address.toString()); // сверь с ожидаемым адресом

Если checksum ок, но адрес «не тот» — проверь версию кошелька (V3R2/V4R2), workchain и walletId/subwallet.


Как избежать в будущем

Копируй фразу целиком, проверяй число слов и mnemonicValidate до записи в keystore. Никогда не логируй seed и не вставляй его в issue/чат.

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация