Проверка адресаРаботает в вашем браузере. Адрес никуда не отправляется.

Валидатор крипто-адресов

Вставьте адрес и узнайте, какому формату он соответствует. Адреса TRON проверяются вплоть до контрольной суммы Base58Check; адреса Ethereum и BSC проверяются на формат и на наличие контрольной суммы EIP-55.

Проверить адрес
Оставьте сеть на автоопределении, если только вам не нужна причина отклонения конкретного формата.
Результат
Корректный формат не гарантирует, что у кого-либо есть ключи от этого адреса.
Вставьте адрес и нажмите кнопку.

Создавайте адреса вместо их проверки

Chaingateway создаёт и отслеживает депозитные адреса в TRON, Ethereum и BSC через единый REST API. Некастодиально, семь дней на тест, без кредитной карты и KYC.

Начать бесплатный период

Что проверяет этот инструмент и чего он не может

За фразой «этот адрес действителен» скрываются два разных вопроса. Первый — корректно ли сформирована строка: правильная длина, правильный алфавит, контрольная сумма сходится. У этого вопроса есть однозначный ответ, и эта страница отвечает на него прямо в вашем браузере, не отправляя адрес никуда. Второй — существует ли этот адрес, есть ли на нём баланс и принадлежит ли он тому, кто вам его дал. Ни один офлайн-чекер не может ответить на этот вопрос, а любой инструмент, утверждающий обратное, на самом деле читает блокчейн, а не строку.

Различие важно, потому что эти два вида ошибок выглядят совершенно по-разному. Некорректно сформированный адрес отлавливается здесь и любым кошельком, поэтому опечатка в адресе TRON — это неудобство, а не потеря средств. А корректно сформированный адрес, принадлежащий не тому человеку, невидим для любого чекера, который когда-либо был написан.

TRON: Base58Check, проверено вплоть до контрольной суммы

Адрес TRON — это 34 символа, начинающиеся с T. За этой строкой стоят 25 байт: один байт версии, 20 байт адреса и 4-байтовая контрольная сумма. Байт версии на mainnet равен 0x41, и именно поэтому каждый адрес после Base58-кодирования этих 25 байт начинается с буквы T.

Контрольная сумма — это первые четыре байта SHA-256(SHA-256(payload)), где payload — это байт версии плюс 20 байт адреса. Эта страница вычисляет этот хеш по-настоящему, используя собственный Web Crypto API браузера, и сравнивает его с четырьмя байтами, зашитыми в адрес. Один изменённый символ даёт другой payload, другой хеш и несовпадение. Это весь механизм целиком, и именно поэтому опечатанный адрес TRON отклоняется, а не принимается в никуда.

Base58 также намеренно исключает четыре символа из своего алфавита: ноль, заглавную O, заглавную I и строчную l. Это как раз те пары, которые люди путают, читая адрес вслух или переписывая его вручную, и их исключение означает, что такие путаницы не могут привести к другому валидному адресу. Если чекер сообщает о символе вне алфавита, обычно виноват один из этих четырёх.

Одна вещь, которую формат вам не сообщает: является ли адрес кошельком или контрактом токена. Оба используют идентичную форму с префиксом T в TRON. Контракт USDT, TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t, — валидный адрес по любой проверке на этой странице, и отправка депозита на него всё равно остаётся ошибкой. Страница про адреса TRC20 подробнее разбирает это различие и hex-нотацию.

Ethereum и BSC: один формат, две сети

Адрес EVM — это 0x, за которым следуют 40 шестнадцатеричных символов, всего 42 символа. Ethereum, BNB Smart Chain, Polygon и Arbitrum используют его все, потому что у них общий слой исполнения и общий способ вывода ключей. Отсюда следствие, которое стоит проговорить прямо: невозможно отличить адрес ERC-20 от адреса BEP-20, просто взглянув на него. Строка одна и та же. Различается сеть, в которую вы транслируете транзакцию, и балансы, существующие в каждой из сетей.

Именно отсюда берётся большинство межсетевых потерь. Адрес, полностью валидный в Ethereum, точно так же валиден в BSC, поэтому кошелёк без проблем отправит токены BEP-20 на адрес, за которым получатель следит только в Ethereum. Средства не пропадают — они лежат в другой сети, — но чтобы их вернуть, нужен приватный ключ и кошелёк, настроенный на эту сеть. Страница про адреса ERC20 и страница про адреса BEP20 разбирают практическую сторону этого вопроса, включая то, чем BEP-20 отличается от более старого формата BEP-2, который начинается с bnb1 и никак не взаимозаменяем с тем, что описано здесь.

EIP-55: контрольная сумма, спрятанная в регистре букв

Hex не чувствителен к регистру, поэтому 0xab… и 0xAB… адресуют один и тот же аккаунт. EIP-55 задействует этот запасной объём: хешируйте адрес в нижнем регистре алгоритмом Keccak-256 и позвольте каждому ниблу хеша решить, писать ли соответствующую hex-букву в верхнем или нижнем регистре. Результат выглядит как обычный адрес со смешанным регистром и несёт примерно четыре бита обнаружения ошибок на букву.

Таким образом, адрес EVM в смешанном регистре делает заявление, а адрес, написанный полностью строчными или полностью заглавными буквами, — нет. Оба варианта — легитимный ввод для любого кошелька и любой ноды. Проверить можно только вариант со смешанным регистром.

Эта страница сообщает, какой из двух вариантов вы вставили, и на этом останавливается. Проверка контрольной суммы EIP-55 требует реализации Keccak-256, а Web Crypto API браузера Keccak не предлагает — он предлагает SHA-256, который и использует проверка TRON выше. Вместо того чтобы поставлять самописную хеш-функцию для проверки, связанной с безопасностью, инструмент сообщает, что именно он не проверил. Если ваш адрес получен из интерфейса кошелька, он почти наверняка уже несёт корректную контрольную сумму; если он взят из базы данных или лог-файла, полную проверку EIP-55 стоит выполнить в собственном коде, где проверенная библиотека — это один импорт.

Откуда берутся адреса в интеграции

Проверка вставленного адреса — это последний рубеж обороны. Более ранний рубеж — вообще не вставлять адреса вручную. В платёжном или выплатном потоке депозитные адреса генерируются на каждого клиента и отслеживаются программно, поэтому ни один человек никогда не перепечатывает адрес, и вопрос формата просто не возникает.

Именно этим и занимаются API TRON и эквивалентные эндпоинты Ethereum и BSC: создать адрес, зарегистрировать для него вебхук, зачислить депозит по приходу уведомления. Адреса остаются non-custodial, а тестовый период длится семь дней без банковской карты и без KYC. Прежде чем строить на этом интеграцию, стоит знать две операционные детали: у вебхуков нет автоматического повтора, поэтому неудачную доставку нужно забирать через POST /<chain>/webhooks/notifications/failed, а не ждать повторной отправки, а у Solana вебхуков нет вовсе.

Остальные калькуляторы на этом сайте перечислены в обзоре инструментов.

Часто задаваемые вопросы

Покидает ли адрес мой браузер?

Нет. И декодирование Base58, и хеширование SHA-256 выполняются локально, через Web Crypto API браузера. Запрос на сервер не отправляется, а значит, инструмент работает даже без подключения к сети.

Что именно проверяется для адреса TRON?

Четыре вещи: что строка состоит из 34 символов, что каждый символ входит в алфавит Base58, что она декодируется в 25 байт с байтом версии 0x41, и что последние четыре байта совпадают с первыми четырьмя байтами SHA-256(SHA-256(payload)). Контрольная сумма вычисляется, а не предполагается.

Можно ли отличить адрес ERC-20 от адреса BEP-20?

Нет, и ничто другое тоже не может. Оба стандарта используют идентичный формат: 0x и 40 шестнадцатеричных символов. Инструмент, который утверждает, что различает их, либо гадает, либо запрашивает баланс в блокчейне — а это уже другой вопрос, не связанный с действительностью адреса.

Почему не проверяется контрольная сумма EIP-55?

Для этого нужен Keccak-256, которого нет во встроенной криптографии браузера, а страница не поставляет собственную реализацию хеширования для проверки, на которую люди могли бы полагаться. Страница сообщает лишь, записан ли адрес в смешанном регистре — то есть несёт контрольную сумму EIP-55, — или в одном регистре, то есть без неё.

Означает ли действительный адрес, что средства дойдут?

Нет. Действительность — это свойство строки. Отслеживается ли адрес, относится ли он к той сети, из которой вы отправляете, и принадлежит ли он нужному получателю, — все эти вопросы отдельные, и ни одна офлайн-проверка их не решает.

Почему Base58 пропускает некоторые символы?

Ноль, заглавная O, заглавная I и строчная l исключены, потому что их легко перепутать друг с другом. Их отсутствие означает, что неоднозначное прочтение не может незаметно превратиться в другой действительный адрес.

Что такое hex-форма адреса TRON?

Те же 21 байт полезной нагрузки, записанные в hex: 41, за которым следуют 40 шестнадцатеричных символов. TVM использует эту форму внутренне, а кошельки показывают форму Base58Check. У hex-формы нет контрольной суммы, поэтому проверять в ней нечего.

Является ли адрес контракта действительным адресом?

Да, по любой проверке формата. На TRON и на EVM-блокчейнах адреса контрактов и адреса кошельков неразличимы по форме. Отправка депозита на контракт токена проходит проверку и всё равно приводит к потере средств — именно поэтому проверка адреса является проверкой формата, а не проверкой безопасности.