Интеграция с Web3Auth
Web3Auth решает одну из главных проблем Web3 onboarding: пользователям не нужно хранить seed phrase или устанавливать MetaMask. Вместо этого — вход через Google, Apple, Twitter, email. Под капотом ключи генерируются и разделяются через threshold cryptography (MPC/TSS), так что ни пользователь, ни Web3Auth не держат полный ключ.
Интеграция актуальна для приложений где целевая аудитория — не crypto-native пользователи.
Как это работает
Web3Auth использует distributed key generation. При первом входе через OAuth генерируется ключевая пара. Приватный ключ разделяется на shares через Shamir Secret Sharing: одна часть хранится у Web3Auth nodes (tKey), другая — в браузере пользователя (deviceShare), третья — опционально backup (например, зашифрованная паролем).
Для восстановления доступа нужны минимум 2 из 3 shares. Потерял устройство — восстанавливаешь через OAuth + backup. Web3Auth никогда не имеет все части одновременно.
Быстрая интеграция
import { Web3Auth } from '@web3auth/modal'
import { CHAIN_NAMESPACES } from '@web3auth/base'
const web3auth = new Web3Auth({
clientId: 'YOUR_CLIENT_ID', // из Web3Auth Dashboard
chainConfig: {
chainNamespace: CHAIN_NAMESPACES.EIP155,
chainId: '0x1',
rpcTarget: 'https://rpc.ankr.com/eth'
}
})
await web3auth.initModal()
// Вход — показывает модал с Google/Twitter/Email
const provider = await web3auth.connect()
// Стандартный EIP-1193 provider
const ethersProvider = new ethers.BrowserProvider(provider)
const signer = await ethersProvider.getSigner()
Web3Auth возвращает EIP-1193 совместимый provider — работает с любым существующим кодом, который ожидает стандартный wallet provider. Минимальные изменения в существующем коде.
Кастомизация и White-label
Для production приложения обычно нужен white-label вариант — свой UI без Web3Auth брендинга. Web3Auth No Modal SDK позволяет полностью контролировать UI:
import { Web3AuthNoModal } from '@web3auth/no-modal'
import { OpenloginAdapter } from '@web3auth/openlogin-adapter'
const web3auth = new Web3AuthNoModal({ clientId, chainConfig })
const openloginAdapter = new OpenloginAdapter({
adapterSettings: {
uxMode: 'redirect', // или 'popup'
whiteLabel: {
appName: 'My App',
logoLight: 'https://example.com/logo.png',
defaultLanguage: 'ru'
}
}
})
web3auth.configureAdapter(openloginAdapter)
await web3auth.init()
// Конкретный провайдер авторизации
await web3auth.connectTo('openlogin', { loginProvider: 'google' })
Сроки
Базовая интеграция с готовым модалом: 1-2 дня. White-label с кастомным UI, несколькими OAuth провайдерами, интеграцией с существующей auth системой: 1-2 недели. Web3Auth хорошо документирован, SDK зрелый.







