Як використовувати Web3-гаманець для авторизації
Авторизація через Web3-гаманець - це вхід в сервіс без пароля, де ви підтверджуєте володіння адресою криптографічним підписом. Сайт запитує підпис спеціально сформованого повідомлення, гаманець показує вам текст і домен, ви підписуєте - і отримуєте сесію. Паролі, e-mail підтвердження і SMS не потрібні, а ризики фішингу знижуються при коректній реалізації. Нижче - як це працює і як користуватися безпечно.
1) Навіщо авторизуватися гаманцем замість пароля
Немає паролів і витоків. Доступ прив'язаний до вашого ключа, а не до бази паролів сервісу.
Єдина «цифрова візитка». Одна адреса/ім'я (ENS/UNS/NFD і т.п.) для безлічі додатків.
Мультичейн і переносимість. Входьте з будь-якого пристрою, де є ваш гаманець (або seed на апаратному).
Приватність. Ви вибираєте, які дані розкривати; за замовчуванням - тільки адреса/підпис (якщо сервіс не просить більшого).
2) Як це працює під капотом (коротко)
1. Підключення гаманця. Через браузерне розширення (MetaMask/Rabby та ін.) або WalletConnect (QR-код).
2. Запит на підпис (SIWE/EIP-4361). Сайт формує людиночитане повідомлення: домен, ваша адреса, мета (login), nonce, термін дії і мітку часу.
3. Підпис у гаманці. Ви бачите текст і домен; підтверджуєте - гаманець повертає підпис.
4. Перевірка та сесія. Сайт перевіряє підпис за вашим публічним ключем і видає токен сесії (зазвичай JWT/HTTP-cookie).
5. Повторний вхід. Поки сесія валідна, підпис не потрібен. Після закінчення терміну - новий запит.
3) Покроково: як виконати вхід через Web3-гаманець
1. На сайті натисніть Connect wallet/Sign in.
2. Виберіть спосіб: Extension (розширення) або WalletConnect (QR).
3. Звірте домен і запитувану мережу (якщо вказана).
4. Підтвердіть підключення; чекайте появи вікна Sign Message/Sign-In.
5. Уважно прочитайте повідомлення: домен, адреса, nonce, термін дії.
6. Натисніть Sign. Побачите, що інтерфейс змінився на аккаунт/профіль.
4) Часті варіанти авторизації
SIWE (Sign-In With Ethereum). Де-факто стандарт для EVM-мереж; є аналоги для інших мереж (Solana Sign-In, TON proof тощо).
Passkeys + гаманець (гібрид). Деякі гаманці підтримують вхід в сам гаманець через passkey; далі - підпис як зазвичай.
Account Abstraction (EIP-4337) та сеансові ключі. Додаток може видавати обмежений «сеансовий ключ» для дій без спаму підписами.
5) Як сервіс «дізнається» вас після підпису
Сайт видає токен сесії з терміном життя (наприклад, 1-24 години) і прив'язує його до nonce і адресою.
При кожному запиті до API токен підтверджує вашу авторизацію.
Розлогін - видалення токена (кнопка Logout), примусовий - після закінчення терміну/зміни гаманця.
6) Безпека: що перевіряти перед підписом
Домен. Чи збігається домен в гаманці з доменом вкладки? (Гомографи і піддомени-клони - червоний прапор.)
Текст повідомлення. Повинні бути мета (login), nonce, chainId (якщо доречно), термін дії і домен. Ніяких прихованих'approve/permit'.
Тип підпису. Це Message/Personal Sign, а не Transaction. Якщо бачите запит газу/комісії - це не авторизація.
WalletConnect. Ім'я DApp в запиті збігається з відкритим сайтом; QR - з офіційної сторінки.
Апаратний гаманець. Для важливих акаунтів підтверджуйте підпис на екрані пристрою.
7) Кращі практики для користувача
Розділяйте гаманці. «Публічний логін/ігровий» vs «холодний для зберігання».
Мінімум розширень і окремий профіль браузера для Web3.
Закладки. Ходіть на сервіси тільки зі своїх закладок, а не з пошуку/чатів.
Регулярний розлогін. Закривайте сесії на загальних/робочих пристроях.
Ревок правий. Авторизація не видає токенних прав, але після взаємодії з DApp перевірте і відкличте зайві approve/permit.
Логи. Зберігайте дату/домен/адресу входу, якщо це критично (корпоративні випадки).
8) Практики для розробників/операторів
Строгий формат SIWE. Включайте домен, nonce, термін, chainId; валідація на бекенді.
Короткі сесії + refresh. Менше шанс крадіжки токена. Cookie — HttpOnly, Secure, SameSite.
Прив'язка до User-Agent/IP (по ситуації) і можливість відкликати всі сесії.
Підтримка мультичейн. SIWx (EVM), Solana Sign-In, TON-proof; відображайте активну мережу.
Анти-фішинг. Показуйте крупно домен в модалці, додайте власну антифішинг-фразу в профілі.
Опціонально AA/Session keys. Обмежуйте дозволи: час, методи, ліміти.
9) Типові помилки і як їх уникнути
Підписали «щось» не читаючи. Рішення: перевіряйте, що це Message, а не Transaction; читайте домен і ціль.
WalletConnect до підробленого додатку. Рішення: звіряйте назву/домен в модалці; скануйте QR тільки на офіційній сторінці.
Вічні сесії на чужому ПК. Рішення: виходьте вручну; використовуйте приватні вікна/профілі.
Змішування гаманців. Рішення: роздільні «логін/ігровий» і «холодний».
Фішинг через «верифікацію бонусу/airdrop». Рішення: авторизація - не про'approve/transfer'. При вигляді газу - скасування.
10) Чеклист користувача (30-60 секунд)
- Відкрив сайт із закладки, домен збігається в браузері і у вікні гаманця.
- У модалці - Connect, потім Sign message, а не «Send/Approve».
- У тексті є nonce, домен, мета (login), термін дії.
- Для важливих акаунтів використовую апаратний гаманець.
- Після роботи - Logout, закриваю зайві вкладки/DApp з'єднання.
11) Міні-FAQ
Авторизація гаманцем - це безкоштовно? Так, це підпис повідомлення без газу.
Чи може сайт списати токени при вході? Ні, якщо ви підписуєте повідомлення. Списання вимагає транзакції/approve.
Що, якщо втрачу гаманець? Сесії закінчаться, але доступ до акаунтів на сайтах не повернеться без нового ключа. Робіть резерв seed і використовуйте «холод».
Чи можна входити з телефону? Так: WalletConnect (QR/глибоке посилання) або мобільне розширення/вбудований браузер гаманця.
Це замінює KYC? Ні, ні. Авторизація підтверджує володіння адресою, KYC - закон про клієнтів.
Вхід через Web3-гаманець - зручний і безпечний спосіб авторизації без паролів: ви підписуєте читане повідомлення (SIWE), сервіс перевіряє підпис і видає сесію. Головне - дисципліна: свої закладки, перевірка домену і тексту підпису, поділ гаманців, апаратне підтвердження для важливих акаунтів і регулярний logout. Тоді Web3-авторизація дасть і комфорт, і реальну безпеку.