Security

Invalid address и bad checksum: почему кошелёк не принимает адрес

21 октября 2026 г.
5 мин чтения

Кошелёк пишет invalid address или bad checksum? Как устроены контрольные суммы адресов Bitcoin, Ethereum и TRON, частые причины и чего проверка не ловит.

Сравнение ошибок, которые ловит контрольная сумма адреса (опечатки, пропуски), и тех, что она не ловит (похожие подброшенные адреса, не та сеть).
Контрольная сумма останавливает опечатки, но не похожие или подменённые адреса. Открыть схему крупнее

Ошибка «invalid address» или «bad checksum» значит, что вставленная строка не прошла встроенную проверку формата адреса. У большинства криптоадресов несколько последних символов вычисляются из остальных; если один символ набран неверно, пропущен или переставлен, проверка не сходится, и кошелёк отказывается отправлять. Это хороший исход: контрольная сумма только что остановила платёж на адрес, которым никто не управляет. Скопируйте адрес заново из источника, а не исправляйте вручную.

Как устроены контрольные суммы по форматам

Схемы контрольных сумм распространённых форматов адресов
ФорматКак выглядитКонтрольная сумма
Bitcoin legacy / P2SH, Litecoin, Dogecoin1…, 3…, L…, M…, D…Base58Check: 4 байта двойного SHA-256
Bitcoin SegWit, Litecoin ltc1bc1q…, ltc1q…Bech32 (BIP173): код из 6 символов
Bitcoin Taprootbc1p…Bech32m (BIP350)
Ethereum и EVM-сети0x + 40 hexEIP-55: регистр букв
TRONT… (34 символа)Base58Check с префиксом 0x41
XRP Ledgerr… (25–35 символов)Base58Check, алфавит Ripple
Cardanoaddr1…Bech32 без ограничения длины

В Base58 намеренно нет похожих символов 0, O, I и l, поэтому перепутанная «O» вместо «o» либо невозможна, либо ловится. Bech32 пишется строчными или прописными, но никогда вперемешку, а его код рассчитан на обнаружение любой ошибки до четырёх символов. EIP-55 слабее: контрольная сумма закодирована регистром шестнадцатеричных букв, а адрес целиком в нижнем или верхнем регистре не несёт её вовсе — поэтому некоторые кошельки принимают его с предупреждением.

Частые причины

  • Символ потерялся при копировании — выделение не захватило первый или последний символ, или в сообщении чата появился перенос строки.
  • Набор вручную со скриншота или бумаги. Похожие символы — обычная причина сбоев Bech32 и Base58.
  • Смешанный регистр в адресе Bech32, когда приложение «услужливо» сделало первую букву заглавной.
  • Адрес, разбитый на две строки в письме или PDF, когда скопирована только первая строка.
  • Невидимые символы: пробел нулевой ширины или неразрывный пробел, скопированные с веб-страницы или из PDF.
  • Адрес другой сети: M-адрес Litecoin в поле Bitcoin или адрес Bitcoin Cash bitcoincash: в кошельке Bitcoin. Они не проходят из-за другого байта версии или префикса.
  • Неверная контрольная сумма EVM, когда кто-то изменил одну букву адреса со смешанным регистром.

От чего контрольная сумма не защищает

Контрольная сумма доказывает, что адрес правильно сформирован, но не что это нужный адрес. Три опасные ошибки проходят проверку:

  1. Address poisoning: мошенник генерирует валидный адрес с теми же первыми и последними символами, что у вашего контрагента, и подбрасывает его в историю крошечным переводом. Проверка address poisoning сравнивает строки целиком.
  2. Вирус-подменщик буфера обмена, который меняет скопированный адрес на валидный адрес злоумышленника.
  3. Валидный адрес в чужой сети — тот же 0x-адрес в BSC вместо Ethereum, например. См. отправка не в ту сеть.

Почему одни форматы строже других

Четыре байта Base58Check дают примерно один шанс из 4,3 млрд, что случайная ошибка проскочит. Bech32 разработали Питер Вуйле и Грег Максвелл так, чтобы он гарантированно ловил до четырёх заменённых символов и указывал место ошибки; Bech32m исправил слабость исходного кода для адресов Taproot. EIP-55 добавили в Ethereum спустя годы после запуска, поэтому адреса в нижнем регистре остаются валидными: протокол никогда не требовал контрольной суммы, и кошелёк может проверить её, только если регистр смешанный. Адреса Solana — это публичные ключи в base58 без контрольной суммы, так что опечатка может дать другой валидный ключ; проверяется только, что строка декодируется в 32 байта.

Быстрая проверка перед каждой отправкой

  1. Копируйте адрес с экрана самого получателя: страницы заказа, страницы депозита биржи, кошелька получателя.
  2. Вставьте и сверьте минимум шесть символов в начале, шесть в конце и несколько в середине.
  3. Проверьте название сети рядом с адресом и memo или тег, если он нужен; проверка memo и тега показывает, каким монетам он требуется.
  4. Если сомневаетесь, пропустите адрес через проверку адреса: она локально в браузере проверяет контрольную сумму для форматов Bitcoin, Ethereum, TRON, Solana, Litecoin и Monero.

В KOT.CASH форма заказа проверяет адрес выплаты для выбранной монеты до создания заказа, а провайдер выполняет свою проверку. Отклонённый адрес там почти всегда означает, что он из другой сети, чем выбранная монета.

Частые вопросы

Что значит «bad checksum»?

Последние символы адреса не совпадают со значением, вычисленным из остальных, — значит, минимум один символ неверен. Скопируйте адрес заново.

Мой адрес Ethereum весь в нижнем регистре. Он неверный?

Нет. EVM-адреса целиком в нижнем или верхнем регистре валидны, но не несут контрольной суммы. Смешанный регистр должен точно соответствовать EIP-55.

Можно самому исправить один неверный символ?

Не надо. Вы не знаете, какой символ ошибочен, а «исправленный» адрес может принадлежать другому человеку.

Верная контрольная сумма значит, что адрес безопасен?

Только что он правильно сформирован. Подброшенные похожие адреса и адреса, подменённые вирусом, тоже валидны.

Почему адрес Litecoin не принимается кошельком Bitcoin?

У разных монет разные байты версии и префиксы, поэтому адрес Litecoin намеренно не проходит проверку формата Bitcoin.

Проверка адресаПроверка address poisoningМошенничество address poisoningBitcoin Cash: CashAddr и legacy

Источники

Готовы обменять крипту?

Быстрые, прозрачные свопы — регистрация не нужна.

Начать обмен
Invalid address и bad checksum: почему кошелёк не принимает адрес | KOT.CASH