Короткий ответ: перед подтверждением Add Ethereum Chain сверьте chainId с независимым официальным описанием сети, проверьте RPC-адрес и убедитесь, что ответ этого RPC по eth_chainId совпадает с запросом. Название сети, символ монеты и иконка не являются надёжными идентификаторами. По EIP-3085 добавление сети не означает, что кошелёк автоматически переключится на неё.
Метод wallet_addEthereumChain позволяет приложению предложить кошельку новую EVM-сеть. Сам запрос не отправляет средства и не меняет баланс, но добавляет конфигурацию, которая позже может влиять на то, куда кошелёк направляет операции. Поэтому решение стоит рассматривать как установку доверенного сетевого маршрута. Если источник запроса неизвестен, сайт настаивает на немедленном подтверждении или параметры нельзя проверить, безопаснее прервать действие и найти сведения самостоятельно.
Что означает каждый параметр
Главный идентификатор – chainId, записанный как шестнадцатеричная строка. Он отделяет одну сеть от другой в контексте подписываемых транзакций и должен соответствовать ожидаемой сети. chainName – лишь отображаемое человеком название. Два разных проекта могут назвать сеть почти одинаково, а недобросовестное приложение может использовать знакомое имя для чужого RPC. Поэтому сопоставляйте ID, не полагаясь на бренд или цвета.
rpcUrls содержит адреса узлов, к которым кошелёк может обращаться за данными и отправкой транзакций. EIP-3085 требует, чтобы поле присутствовало, не было пустым и содержало корректные URL. Спецификация также требует отклонить URL со схемой http или file. Для пользователя это означает, что адрес должен быть ожидаемым HTTPS-адресом официального провайдера либо известного RPC-сервиса. Само наличие HTTPS не доказывает, что сервер честен или корректно сообщает состояние.
nativeCurrency описывает название, символ и число десятичных знаков нативного актива. Эти значения помогают показать сумму, но не подтверждают подлинность сети или монеты. blockExplorerUrls ведут к обозревателю блоков, а iconUrls – к изображению сети; их можно проверить как URL, но картинка и подпись также не являются доказательством. Кошелёк может требовать дополнительные поля, проигнорировать необязательные или отклонить запрос по собственной политике. Следуйте фактическому окну своего кошелька, не ожидая одинакового набора полей в разных приложениях.
Порядок проверки перед подтверждением
Сначала остановитесь и определите, какое действие вы начали. Если вы подключались к dApp ради одной функции, спросите себя, почему сайту понадобилось добавить отдельную сеть. Это может быть ожидаемо для приложения на другой EVM-цепочке, но связь должна быть понятна заранее. Проверьте домен отдельно: точное написание, правильный домен верхнего уровня и путь входа. Инструкцию о сравнении домена можно прочитать в материале как проверить dApp до подключения кошелька.
Затем найдите chainId в официальной документации сети и сравните все цифры. Не копируйте параметры из случайного комментария, поисковой рекламы или чата. Если кошелёк показывает RPC, проверьте его домен и сертификат, а при наличии технической возможности выполните eth_chainId на этом адресе. Значение должно совпасть с добавляемым ID. Это не подтверждает безопасность самого сервера, но помогает поймать ошибочную или подменённую настройку.
Сверьте RPC, обозреватель и валюту между собой. Официальная документация должна объяснять, почему эти домены относятся к нужной сети, а данные об активе должны совпадать с известными параметрами. Если в запросе присутствуют несколько RPC, проверьте каждый: разные узлы могут иметь разные операторы и правила журналирования. Запрос может раскрывать IP-адрес, время активности и используемые методы провайдеру RPC, поэтому выбор сервиса затрагивает приватность. В спецификации есть отдельные соображения о сохранении конфиденциальности пользователя.
Что стандарт требует от кошелька
EIP-3085 требует отклонить неверный chainId и RPC URL, пустой список RPC, а также конфигурацию, в которой запрошенный ID не совпадает со значением eth_chainId у указанного узла. Стандарт запрещает URL file и http. Но он не гарантирует, что кошелёк проверит репутацию RPC или что обозреватель не содержит ошибочных данных. Кошелёк вправе требовать больше полей либо отклонить запрос по другим основаниям, поэтому единая форма подтверждения не гарантирована.
Если сеть уже добавлена, повторный запрос обычно не должен создавать дубликат одного chainId. Успешный результат метода – null, а не автоматическое переключение. Для смены активной сети существует отдельное действие; проверяйте его отдельно, потому что выбранная сеть влияет на последующую транзакцию. Полезно знать разницу между сетью и адресом контракта – они вместе определяют, где именно находится токен. Для другой части безопасной работы с запросами посмотрите проверку разрешений Permit2 перед подписью.
Когда лучше отказаться
Отклоните запрос, если chainId расходится с официальным, RPC выглядит как случайный домен, название валюты пытается убедить в ценности актива, либо сайт не объясняет нужду в сети. Настораживающие признаки – внезапное окно вне ожидаемого действия, давление срочностью и попытка продолжить без ясного описания. Добавленная сеть сама по себе не раскрывает seed-фразу и не отправляет активы, однако дальнейшие запросы через подменённый RPC могут показывать неверные данные или направлять пользователя на опасные контракты.
Безопасный процесс прост: проверить домен, сверить chainId с официальным источником, подтвердить ожидаемость RPC и повторно прочитать окно кошелька. Если параметры не сходятся, сначала выясните причину через независимую документацию, а не принимайте запрос «на пробу». После добавления сети отдельно проверьте выбранную сеть и адрес контракта перед первой операцией. Такая последовательность снижает вероятность сетевой ошибки, сохраняя за пользователем контроль над подключением.



