[{"data":1,"prerenderedAt":19},["ShallowReactive",2],{"blog-content-ru-what-is-walletconnect":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"faqItems":9},"what-is-walletconnect","Что такое WalletConnect? Как работают сессии подключения кошелька по QR-коду (и как их отзывать)","WalletConnect — это протокол, стоящий за QR-кодом, который вы сканируете, чтобы связать кошелёк с dApp. Разбираем, что на самом деле создаёт это сканирование, что сессия может и чего не может, и как безопасно просматривать и завершать сессии.","Понятное объяснение того, как работают сессии WalletConnect: что закодировано в QR-коде, какие разрешения запрашивает dApp и как просматривать и отзывать активные подключения.","\u003Cblockquote>WalletConnect — это протокол обмена сообщениями, который переносит зашифрованные сообщения между dApp и кошельком, позволяя dApp запрашивать подписи, никогда не касаясь вашего приватного ключа. Сканирование его QR-кода создаёт сопряжение (pairing); одобрение предложения сессии от dApp затем создаёт сессию, в которой перечислены сети и методы, которые он может запрашивать, — это разрешение спрашивать, а не разрешение действовать; любое перемещение активов по-прежнему требует вашей подписи. Отключение завершает сессию локально, но не отзывает ончейн-разрешения на трату токенов (token approvals). В WATS сессии одобряются в мобильном приложении WATS.\u003C\u002Fblockquote>\u003Ch2>Что такое WalletConnect на самом деле (и чем он не является)\u003C\u002Fh2>\u003Cp>WalletConnect — это протокол обмена сообщениями. Его единственная задача — переносить сообщения между dApp и кошельком, чтобы обе стороны могли общаться, а dApp при этом никогда не касался вашего приватного ключа. Когда сайт показывает QR-код и предлагает \u003Cem>подключить кошелёк\u003C\u002Fem>, этот код обычно представляет собой приглашение к сопряжению (pairing) по WalletConnect.\u003C\u002Fp>\u003Cp>Это не кошелёк, не кастодиан и не блокчейн: протокол не хранит средств и ничего не подписывает. И это не браузерное расширение, которое внедряет провайдера прямо в страницу. Больше всего он знаком по сценарию «разные устройства» — по состоянию на 2026 год это всё ещё самый распространённый способ, которым мобильный кошелёк общается с десктопным dApp, — но точно так же он является стандартным путём и в пределах одного устройства, открывая по deep link приложение кошелька из dApp в мобильном браузере того же телефона.\u003C\u002Fp>\u003Ch2>Что происходит, когда вы сканируете этот QR-код\u003C\u002Fh2>\u003Cp>В QR-коде закодирован pairing URI: идентификатор топика, идентификатор протокола ретрансляции и симметричный ключ. Этот ключ передаётся дословно, а не выводится кошельком, — именно поэтому утёкший или попавший на скриншот pairing URI является чувствительными данными. Дальше обе стороны обмениваются зашифрованными сообщениями в топике сопряжения.\u003C\u002Fp>\u003Cp>Сопряжение — это только рукопожатие. Сессия, по которой идут все запросы на подпись, работает в \u003Cem>отдельном\u003C\u002Fem> топике и под собственным ключом, который dApp и кошелёк согласуют напрямую через обмен X25519 с расширением по HKDF. Ключ сопряжения защищает сообщения уровня pairing, но никогда — ваши транзакционные запросы.\u003C\u002Fp>\u003Cp>Ретранслятор (relay) — та часть, которую понимают неправильно: он маршрутизирует только шифротекст и метаданные и не может ни прочитать полезную нагрузку, ни изменить её, ни подписать что-либо за вас. Если он упадёт, ваша сессия перестанет работать, но средства останутся нетронутыми — ваши ключи никогда не покидали устройство. Затем dApp отправляет предложение сессии, и кошелёк показывает его как экран подтверждения; всё, что происходит дальше, зависит от того, что именно вы одобрите. Пошаговый разбор кликов — в нашем руководстве о том, \u003Ca href=\"\u002Fblog\u002Fhow-to-connect-wallet-to-dapp\">как подключить кошелёк к dApp\u003C\u002Fa>.\u003C\u002Fp>\u003Ch2>Сессии, неймспейсы и разрешения: о чём может попросить dApp\u003C\u002Fh2>\u003Cp>Предложение сессии имеет строгую структуру, а не произвольную форму. В нём перечислены \u003Cem>неймспейсы\u003C\u002Fem>: сети, методы и события, которые нужны dApp, — Ethereum mainnet, какой-нибудь L2 или Solana; подпись транзакций и подпись типизированных данных; события смены сети и смены аккаунтов.\u003C\u002Fp>\u003Cp>Обратите внимание на направление: сети, методы и события запрашивает dApp, а сами аккаунты выбираются в вашем кошельке и возвращаются в ответе на одобрение. Важно и разделение, появившееся в v2. \u003Cem>Обязательные\u003C\u002Fem> неймспейсы работают по принципу «всё или ничего» — они должны быть удовлетворены полностью, иначе предложение отклоняется целиком, — но по состоянию на 2026 год это устаревший путь: он объявлен deprecated, и его не рекомендуют использовать в пользу \u003Cem>опциональных\u003C\u002Fem> неймспейсов, которые кошелёк может одобрить частично. Хороший кошелёк показывает и те и другие, чтобы вы понимали, что подлежит обсуждению.\u003C\u002Fp>\u003Cp>Одобрение сессии делает две вещи: раскрывает ваши публичные адреса в одобренных сетях и даёт dApp разрешение \u003Cstrong>отправлять запросы\u003C\u002Fstrong> по одобренным методам. Разрешение спрашивать — это не разрешение действовать.\u003C\u002Fp>\u003Ch2>Запросы на подпись: почему подключение — это не одобрение\u003C\u002Fh2>\u003Cp>Как только сессия установлена, каждое значимое действие приходит отдельным запросом, который вы обязаны явно одобрить: своп становится запросом на транзакцию, вход на сайт — запросом на подпись сообщения, выставление лота на маркетплейсе — подписью типизированных данных.\u003C\u002Fp>\u003Cp>Именно здесь проходит граница безопасности, которая имеет значение. Подключённый dApp не может незаметно вывести ваши активы: для этого нужна подпись, а подпись требует вашего устройства и вашего одобрения. Что он \u003Cem>может\u003C\u002Fem> — так это показать вводящий в заблуждение запрос, последствия которого неочевидны на экране.\u003C\u002Fp>\u003Cp>Две категории заслуживают особой подозрительности: token approval, который даёт контракту постоянное право тратить токен ещё долго после завершения сессии, и офчейн-подпись — та самая, без затрат на газ, — которая может авторизовать ордер или permit, погашаемый контрактом позже. Ни то ни другое не выглядит драматично.\u003C\u002Fp>\u003Ch2>Где WalletConnect даёт сбой: залежавшиеся сессии, поддельные QR-коды и слепая подпись\u003C\u002Fh2>\u003Cp>\u003Cstrong>Залежавшиеся сессии.\u003C\u002Fstrong> У сессий есть срок действия, но люди накапливают десятки живых подключений к сайтам, которыми пользовались один раз. Каждое из них — канал, способный в любой момент отправить запрос в ваш кошелёк, то есть дополнительная поверхность для неверно прочитанного одобрения.\u003C\u002Fp>\u003Cp>\u003Cstrong>Поддельные или подменённые QR-коды.\u003C\u002Fstrong> Злоумышленник, контролирующий страницу — домен-двойник, взломанный фронтенд, — может показать свой pairing URI вместо настоящего. Вы успешно подключаетесь — к нему. Ровно в этом состоит ловушка из нашего разбора того, \u003Ca href=\"\u002Fblog\u002Fwhat-is-a-wallet-drainer\">как работают дрейнеры кошельков\u003C\u002Fa>: подключение проходит успешно, а ущерб приходит со следующим запросом на подпись.\u003C\u002Fp>\u003Cp>\u003Cstrong>Слепая подпись.\u003C\u002Fstrong> Если ваш кошелёк не может расшифровать запрос и показывает сырые данные, вы доверяете описанию транзакции, которое даёт сам сайт. Считайте это поводом остановиться, а не формальностью.\u003C\u002Fp>\u003Ch2>Как просматривать и отзывать активные сессии (и почему approvals — это отдельная история)\u003C\u002Fh2>\u003Cp>Любой кошелёк с поддержкой WalletConnect ведёт список активных сессий, обычно в разделе подключений или подключённых приложений. Читайте его как инвентарь: каждая запись называет dApp, а также сети и аккаунты, которые ему видны.\u003C\u002Fp>\u003Cp>Отключение ничего не стоит: кошелёк публикует через ретранслятор сообщение об удалении сессии и убирает её из собственного состояния — без транзакции, без газа, без записи в блокчейне. Но относитесь к разрыву как к best-effort: если пир офлайн или ретранслятор недоступен, dApp может считать сессию живой до момента доставки сообщения или истечения срока.\u003C\u002Fp>\u003Cp>Момент, на котором спотыкаются чаще всего: \u003Cem>отключение сессии не отзывает token approval\u003C\u002Fem>. Разрешения сессии живут в локальном состоянии вашего кошелька; token approvals живут в блокчейне и выданы транзакцией, которую вы подписали. Завершение сессии останавливает новые запросы, но оставляет allowance нетронутым — его отзыв это отдельный ончейн-шаг, разобранный в нашем руководстве об \u003Ca href=\"\u002Fblog\u002Fhow-to-revoke-token-approvals\">отзыве token approvals\u003C\u002Fa>. Делайте и то и другое.\u003C\u002Fp>\u003Ch2>Как WATS работает с подключениями к dApp\u003C\u002Fh2>\u003Cp>В WATS сессии WalletConnect обрабатывает мобильное приложение WATS: оно сканирует QR-код и показывает каждое предложение сессии и каждый запрос на подпись для одобрения на вашем телефоне. Самостоятельное хранение работает одинаково во всех продуктах WATS, включая \u003Ca href=\"\u002Fhot-wallet\">WATS Hot Wallet\u003C\u002Fa> — ключи держите вы, а WATS никогда не держит ключ, поэтому ни один подключённый dApp не может переместить средства без вашей подписи.\u003C\u002Fp>\u003Cp>Отличается уровень комиссий. Любое действие — переводы, свопы, стейкинг — оплачивается одним токеном, ATS, вместо нативного газа сети: на EVM через paymaster ERC-4337, на Solana и TON через эквивалентный механизм fee-payer\u002Frelayer. Поскольку ATS — это OFT на LayerZero, один баланс покрывает все три экосистемы. Собранный ATS сжигается: со 100 000 000 в сторону нижней границы в 30 000 000. WATS — первый и единственный кошелёк, объединивший однотокенные комиссии на базе ERC-4337 + OFT, взимаемые вместо нативного газа, с таким сжиганием.\u003C\u002Fp>",[10,13,16],{"q":11,"a":12},"Даёт ли подключение кошелька через WalletConnect приложению dApp доступ к моим средствам?","Нет. Сессия позволяет dApp видеть ваши публичные адреса в одобренных сетях и отправлять вам запросы. Любое действие, перемещающее активы, требует подписи, которую вы одобряете на собственном устройстве, поэтому одно лишь подключение ничего потратить не может. В WATS такие предложения сессий и запросы на подпись показываются для одобрения в мобильном приложении WATS, и, поскольку WATS никогда не держит ключ, ни один подключённый dApp не может переместить средства без вашей подписи.",{"q":14,"a":15},"Отзывает ли отключение сессии WalletConnect выданные token approvals?","Нет, это разные вещи. Сессия живёт в локальном состоянии вашего кошелька и завершается без газа в тот момент, когда вы отключаете её там. Token approval живёт в контракте токена в блокчейне и остаётся активным, пока вы не отправите транзакцию отзыва.",{"q":17,"a":18},"Может ли relay-сервер WalletConnect читать мои транзакции или украсть мои ключи?","Нет. В WalletConnect v2 сессия, по которой идут ваши запросы на транзакции и подписи, шифруется ключом, который dApp и ваш кошелёк согласуют напрямую друг с другом через обмен X25519, — этот ключ никогда не раскрывается ретранслятору. Симметричный ключ, передаваемый в pairing URI, защищает только сообщения уровня сопряжения. Ретранслятор маршрутизирует шифротекст и метаданные, а ваш приватный ключ ни на одном этапе не покидает кошелёк.",1786059391476]