WalletConnect — это протокол обмена сообщениями, который переносит зашифрованные сообщения между dApp и кошельком, позволяя dApp запрашивать подписи, никогда не касаясь вашего приватного ключа. Сканирование его QR-кода создаёт сопряжение (pairing); одобрение предложения сессии от dApp затем создаёт сессию, в которой перечислены сети и методы, которые он может запрашивать, — это разрешение спрашивать, а не разрешение действовать; любое перемещение активов по-прежнему требует вашей подписи. Отключение завершает сессию локально, но не отзывает ончейн-разрешения на трату токенов (token approvals). В WATS сессии одобряются в мобильном приложении WATS.
Что такое WalletConnect на самом деле (и чем он не является)
WalletConnect — это протокол обмена сообщениями. Его единственная задача — переносить сообщения между dApp и кошельком, чтобы обе стороны могли общаться, а dApp при этом никогда не касался вашего приватного ключа. Когда сайт показывает QR-код и предлагает подключить кошелёк, этот код обычно представляет собой приглашение к сопряжению (pairing) по WalletConnect.
Это не кошелёк, не кастодиан и не блокчейн: протокол не хранит средств и ничего не подписывает. И это не браузерное расширение, которое внедряет провайдера прямо в страницу. Больше всего он знаком по сценарию «разные устройства» — по состоянию на 2026 год это всё ещё самый распространённый способ, которым мобильный кошелёк общается с десктопным dApp, — но точно так же он является стандартным путём и в пределах одного устройства, открывая по deep link приложение кошелька из dApp в мобильном браузере того же телефона.
Что происходит, когда вы сканируете этот QR-код
В QR-коде закодирован pairing URI: идентификатор топика, идентификатор протокола ретрансляции и симметричный ключ. Этот ключ передаётся дословно, а не выводится кошельком, — именно поэтому утёкший или попавший на скриншот pairing URI является чувствительными данными. Дальше обе стороны обмениваются зашифрованными сообщениями в топике сопряжения.
Сопряжение — это только рукопожатие. Сессия, по которой идут все запросы на подпись, работает в отдельном топике и под собственным ключом, который dApp и кошелёк согласуют напрямую через обмен X25519 с расширением по HKDF. Ключ сопряжения защищает сообщения уровня pairing, но никогда — ваши транзакционные запросы.
Ретранслятор (relay) — та часть, которую понимают неправильно: он маршрутизирует только шифротекст и метаданные и не может ни прочитать полезную нагрузку, ни изменить её, ни подписать что-либо за вас. Если он упадёт, ваша сессия перестанет работать, но средства останутся нетронутыми — ваши ключи никогда не покидали устройство. Затем dApp отправляет предложение сессии, и кошелёк показывает его как экран подтверждения; всё, что происходит дальше, зависит от того, что именно вы одобрите. Пошаговый разбор кликов — в нашем руководстве о том, как подключить кошелёк к dApp.
Сессии, неймспейсы и разрешения: о чём может попросить dApp
Предложение сессии имеет строгую структуру, а не произвольную форму. В нём перечислены неймспейсы: сети, методы и события, которые нужны dApp, — Ethereum mainnet, какой-нибудь L2 или Solana; подпись транзакций и подпись типизированных данных; события смены сети и смены аккаунтов.
Обратите внимание на направление: сети, методы и события запрашивает dApp, а сами аккаунты выбираются в вашем кошельке и возвращаются в ответе на одобрение. Важно и разделение, появившееся в v2. Обязательные неймспейсы работают по принципу «всё или ничего» — они должны быть удовлетворены полностью, иначе предложение отклоняется целиком, — но по состоянию на 2026 год это устаревший путь: он объявлен deprecated, и его не рекомендуют использовать в пользу опциональных неймспейсов, которые кошелёк может одобрить частично. Хороший кошелёк показывает и те и другие, чтобы вы понимали, что подлежит обсуждению.
Одобрение сессии делает две вещи: раскрывает ваши публичные адреса в одобренных сетях и даёт dApp разрешение отправлять запросы по одобренным методам. Разрешение спрашивать — это не разрешение действовать.
Запросы на подпись: почему подключение — это не одобрение
Как только сессия установлена, каждое значимое действие приходит отдельным запросом, который вы обязаны явно одобрить: своп становится запросом на транзакцию, вход на сайт — запросом на подпись сообщения, выставление лота на маркетплейсе — подписью типизированных данных.
Именно здесь проходит граница безопасности, которая имеет значение. Подключённый dApp не может незаметно вывести ваши активы: для этого нужна подпись, а подпись требует вашего устройства и вашего одобрения. Что он может — так это показать вводящий в заблуждение запрос, последствия которого неочевидны на экране.
Две категории заслуживают особой подозрительности: token approval, который даёт контракту постоянное право тратить токен ещё долго после завершения сессии, и офчейн-подпись — та самая, без затрат на газ, — которая может авторизовать ордер или permit, погашаемый контрактом позже. Ни то ни другое не выглядит драматично.
Где WalletConnect даёт сбой: залежавшиеся сессии, поддельные QR-коды и слепая подпись
Залежавшиеся сессии. У сессий есть срок действия, но люди накапливают десятки живых подключений к сайтам, которыми пользовались один раз. Каждое из них — канал, способный в любой момент отправить запрос в ваш кошелёк, то есть дополнительная поверхность для неверно прочитанного одобрения.
Поддельные или подменённые QR-коды. Злоумышленник, контролирующий страницу — домен-двойник, взломанный фронтенд, — может показать свой pairing URI вместо настоящего. Вы успешно подключаетесь — к нему. Ровно в этом состоит ловушка из нашего разбора того, как работают дрейнеры кошельков: подключение проходит успешно, а ущерб приходит со следующим запросом на подпись.
Слепая подпись. Если ваш кошелёк не может расшифровать запрос и показывает сырые данные, вы доверяете описанию транзакции, которое даёт сам сайт. Считайте это поводом остановиться, а не формальностью.
Как просматривать и отзывать активные сессии (и почему approvals — это отдельная история)
Любой кошелёк с поддержкой WalletConnect ведёт список активных сессий, обычно в разделе подключений или подключённых приложений. Читайте его как инвентарь: каждая запись называет dApp, а также сети и аккаунты, которые ему видны.
Отключение ничего не стоит: кошелёк публикует через ретранслятор сообщение об удалении сессии и убирает её из собственного состояния — без транзакции, без газа, без записи в блокчейне. Но относитесь к разрыву как к best-effort: если пир офлайн или ретранслятор недоступен, dApp может считать сессию живой до момента доставки сообщения или истечения срока.
Момент, на котором спотыкаются чаще всего: отключение сессии не отзывает token approval. Разрешения сессии живут в локальном состоянии вашего кошелька; token approvals живут в блокчейне и выданы транзакцией, которую вы подписали. Завершение сессии останавливает новые запросы, но оставляет allowance нетронутым — его отзыв это отдельный ончейн-шаг, разобранный в нашем руководстве об отзыве token approvals. Делайте и то и другое.
Как WATS работает с подключениями к dApp
В WATS сессии WalletConnect обрабатывает мобильное приложение WATS: оно сканирует QR-код и показывает каждое предложение сессии и каждый запрос на подпись для одобрения на вашем телефоне. Самостоятельное хранение работает одинаково во всех продуктах WATS, включая WATS Hot Wallet — ключи держите вы, а WATS никогда не держит ключ, поэтому ни один подключённый dApp не может переместить средства без вашей подписи.
Отличается уровень комиссий. Любое действие — переводы, свопы, стейкинг — оплачивается одним токеном, ATS, вместо нативного газа сети: на EVM через paymaster ERC-4337, на Solana и TON через эквивалентный механизм fee-payer/relayer. Поскольку ATS — это OFT на LayerZero, один баланс покрывает все три экосистемы. Собранный ATS сжигается: со 100 000 000 в сторону нижней границы в 30 000 000. WATS — первый и единственный кошелёк, объединивший однотокенные комиссии на базе ERC-4337 + OFT, взимаемые вместо нативного газа, с таким сжиганием.
Часто задаваемые вопросы
Даёт ли подключение кошелька через WalletConnect приложению dApp доступ к моим средствам?
Нет. Сессия позволяет dApp видеть ваши публичные адреса в одобренных сетях и отправлять вам запросы. Любое действие, перемещающее активы, требует подписи, которую вы одобряете на собственном устройстве, поэтому одно лишь подключение ничего потратить не может. В WATS такие предложения сессий и запросы на подпись показываются для одобрения в мобильном приложении WATS, и, поскольку WATS никогда не держит ключ, ни один подключённый dApp не может переместить средства без вашей подписи.
Отзывает ли отключение сессии WalletConnect выданные token approvals?
Нет, это разные вещи. Сессия живёт в локальном состоянии вашего кошелька и завершается без газа в тот момент, когда вы отключаете её там. Token approval живёт в контракте токена в блокчейне и остаётся активным, пока вы не отправите транзакцию отзыва.
Может ли relay-сервер WalletConnect читать мои транзакции или украсть мои ключи?
Нет. В WalletConnect v2 сессия, по которой идут ваши запросы на транзакции и подписи, шифруется ключом, который dApp и ваш кошелёк согласуют напрямую друг с другом через обмен X25519, — этот ключ никогда не раскрывается ретранслятору. Симметричный ключ, передаваемый в pairing URI, защищает только сообщения уровня сопряжения. Ретранслятор маршрутизирует шифротекст и метаданные, а ваш приватный ключ ни на одном этапе не покидает кошелёк.

