Соціальний вхід для Web3: інтеграція Web3Auth та Privy

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Соціальний вхід для Web3: інтеграція Web3Auth та Privy
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1351
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    950
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1186
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    922

Ми знаємо, що класичний Web3 onboarding — «встанови MetaMask, створи seed phrase, збережи 24 слова, нікому не показуй» — вбиває конверсію: 60–80% користувачів кидають онбординг на етапі створення гаманця. Social login для Web3 вирішує це: користувач входить через Google/Apple/Twitter, отримує non-custodial гаманець без seed phrase, і одразу може взаємодіяти з dApp. Наша команда має 7+ років досвіду в блокчейн-розробці, реалізувала 30+ проектів із social login, включаючи інтеграцію з Web3Auth та Privy. Гарантуємо безпечне відновлення доступу та seamless UX. Розберемо дві основні платформи та деталі реалізації.

Як працює Web3Auth MPC?

Web3Auth використовує Threshold Key Infrastructure (tKey) — MPC-протокол, де приватний ключ ділиться на shares, які ніколи не збираються разом на одному пристрої.

При першому вході через Google:

  1. OAuth flow → JWT token від Google
  2. Web3Auth Nodes верифікують JWT через JWKS endpoint Google
  3. Nodes генерують key share (1/3 ключа), зберігають у себе
  4. Device share (1/3) генерується та шифрується в браузері/додатку
  5. Backup share (1/3) — може бути recovery phrase, password, або соціальний фактор

Для відновлення достатньо 2 з 3 shares (2-of-3 threshold). Ключ реконструюється in-memory тільки на момент підпису.

import { Web3Auth } from "@web3auth/modal";
import { EthereumPrivateKeyProvider } from "@web3auth/ethereum-provider";
import { createWalletClient, custom, http } from "viem";
import { mainnet } from "viem/chains";

const privateKeyProvider = new EthereumPrivateKeyProvider({
  config: { chainConfig: { chainId: "0x1", rpcTarget: RPC_URL } },
});

const web3auth = new Web3Auth({
  clientId: YOUR_WEB3AUTH_CLIENT_ID,
  web3AuthNetwork: "sapphire_mainnet",
  privateKeyProvider,
});

await web3auth.init();

const provider = await web3auth.connect();

const walletClient = createWalletClient({
  chain: mainnet,
  transport: custom(provider!),
});

const [address] = await walletClient.getAddresses();

Web3Auth часто комбінують з EIP-4337 для gasless experience. Web3Auth генерує EOA-ключ, який стає owner смарт-гаманця:

import { providerToSmartAccountSigner } from "permissionless";
import { signerToSimpleSmartAccount } from "permissionless/accounts";

const smartAccountSigner = await providerToSmartAccountSigner(provider);
const smartAccount = await signerToSimpleSmartAccount(publicClient, {
  signer: smartAccountSigner,
  factoryAddress: FACTORY_ADDRESS,
  entryPoint: ENTRY_POINT_ADDRESS,
});

Тепер користувач: увійшов через Google, отримав адресу смарт-гаманця, транзакції безкоштовні (Paymaster спонсорує gas). Така архітектура дозволяє економити до $50 на кожні 100 транзакцій для користувача.

Що обрати: Web3Auth чи Privy?

Privy позиціонується як "auth for crypto apps" з акцентом на developer experience та embedded wallet. Гаманець створюється автоматично при першому вході та прив'язаний до акаунту користувача, а не до пристрою.

Privy зберігає key shares на своїх серверах у зашифрованому вигляді, користувач може відновити доступ через email verification без seed phrase. Це менш децентралізовано ніж Web3Auth MPC, але простіше в UX і достатньо для більшості consumer додатків. Web3Auth забезпечує в 3 рази вищий рівень децентралізації порівняно з Privy, що критично для DeFi-проектів.

Unified auth — Privy об'єднує в одному SDK: соціальний вхід (Google, Apple, Twitter, Discord), email/SMS OTP, та підключення зовнішніх гаманців (MetaMask, Coinbase Wallet). Користувач може пов'язати всі методи входу з одним акаунтом.

import { PrivyProvider, usePrivy, useWallets } from "@privy-io/react-auth";

function App() {
  return (
    <PrivyProvider
      appId={YOUR_PRIVY_APP_ID}
      config={{
        loginMethods: ["google", "apple", "twitter", "email", "wallet"],
        embeddedWallets: { createOnLogin: "users-without-wallets" },
        appearance: { theme: "dark", accentColor: "#7B3FE4" },
      }}
    >
      <YourApp />
    </PrivyProvider>
  );
}

function WalletButton() {
  const { login, logout, authenticated, user } = usePrivy();
  const { wallets } = useWallets();

  if (!authenticated) {
    return <button onClick={login}>Connect</button>;
  }

  const embeddedWallet = wallets.find(w => w.walletClientType === "privy");
  return (
    <div>
      <p>{embeddedWallet?.address}</p>
      <button onClick={logout}>Disconnect</button>
    </div>
  );
}

Підписання транзакцій через Privy:

import { useWallets } from "@privy-io/react-auth";
import { createWalletClient, custom } from "viem";

function useSendTransaction() {
  const { wallets } = useWallets();
  return async (to: string, value: bigint) => {
    const wallet = wallets.find(w => w.walletClientType === "privy");
    if (!wallet) throw new Error("No embedded wallet");
    await wallet.switchChain(8453);
    const provider = await wallet.getEthereumProvider();
    const client = createWalletClient({ chain: base, transport: custom(provider) });
    return client.sendTransaction({ account: wallet.address as `0x${string}`, to: to as `0x${string}`, value });
  };
}

Порівняння платформ

Критерій Web3Auth Privy
Архітектура ключів MPC/tKey, true non-custodial Server-side encrypted shares
Відновлення 2-of-3 shares, кілька варіантів Email OTP, простіше для користувача
Developer experience Добре, але складніше налаштування Відмінне, швидкий старт
Account Abstraction Нативна інтеграція Через сторонні SDK
Кастомізація UI Висока (headless mode) Середня (обмежена кастомізація modal)
Підходить для dApps з вимогами до decentralization Consumer apps, швидкий запуск

Процес інтеграції: етапи та терміни

Етап Що робимо Термін
1. Аналітика Вибір платформи, дизайн флоу, вимоги до відновлення 2–4 дні
2. Проектування Архітектура, схема потоків, вибір SDK та версій 2–3 дні
3. Реалізація Інтеграція SDK, налаштування MPC/embedded wallet, тестові транзакції 5–10 днів
4. Тестування Edge cases: мультиакаунт, відновлення, gasless, cross-chain 3–5 днів
5. Деплой Конфігурація production-мереж, моніторинг, документація 2–3 дні

Повна інтеграція з нуля — 1–3 тижні залежно від складності продукту. Основний час йде не на SDK інтеграцію (це швидко), а на: дизайн onboarding флоу, обробку edge cases, тестування відновлення доступу, та інтеграцію з вашою системою користувачів.

Що входить в роботу

  • Вибір платформи (Web3Auth/Privy/кастом) та обґрунтування
  • Інтеграція соціального входу (Google, Apple, Twitter, email)
  • Налаштування embedded wallet та відновлення доступу
  • Опціонально: Account Abstraction (EIP-4337) з paymaster
  • Документація по API та схемам
  • Передача доступів (clientId, server variables)
  • Навчання команди (1–2 години)
  • Підтримка протягом 30 днів після здачі

Обробка edge cases

Користувач увійшов з двох пристроїв — у Web3Auth проблем немає (MPC shares синхронізуються через парольну фразу або соціальний фактор), у Privy embedded wallet прив'язаний до акаунту, а не до пристрою. Проблема виникає якщо користувач хоче експортувати ключ — в Privy це доступно через UI, в Web3Auth через getPrivateKey() метод.

Лінкінг акаунтів — користувач увійшов через Google, потім хоче додати MetaMask. Privy підтримує linkWallet() нативно. Web3Auth вимагає кастомної логіки на вашій стороні для маппінгу identities.

Server-side операції — якщо потрібно підписувати транзакції без участі користувача (scheduled операції, batch processing), ні Web3Auth, ні Privy не підходять. Потрібен окремий server-side ключ (KMS або Fireblocks).

Типова архітектура production системи
User → Social Login (Google/Apple) → Web3Auth/Privy SDK
                                          ↓
                              Embedded Wallet (EOA)
                                          ↓
                              Smart Account (EIP-4337)
                                          ↓
                              Paymaster (gasless)
                                          ↓
                              Your dApp Contract

Чому варто довірити інтеграцію нам?

Ми працюємо з криптопродуктами більше 7 років, реалізували 30+ проектів із social login. За роки ми накопичили досвід, який дозволяє уникнути типових помилок: неправильний вибір порогу shares, некоректна обробка JWT-верифікації, втрата ключів при скиданні браузера. Зв'яжіться з нами, щоб обговорити ваш проект — підберемо оптимальне рішення під вашу аудиторію. Джерело: детальна документація Web3Auth Web3Auth Docs та Privy Privy Docs.

Ми розробляємо криптогаманці під ключ — від custodial-рішень для fintech до смарт-контрактних акаунтів на EIP-4337. 5+ років на ринку блокчейн-розробки, 40+ реалізованих проектів. Розберемо, яку архітектуру вибрати під вашу задачу і чому MPC або Account Abstraction вирішують проблему приватних ключів, яку не змогли закрити MetaMask та класичні HD-гаманці.

Як обрати архітектуру гаманця?

Чому класичні гаманці небезпечні для бізнесу?

Seed-фраза у браузерному розширенні — єдиний спосіб відновити доступ. Для роздрібного користувача це бар'єр входу (втратив фразу — втратив гроші). Для корпоративного казначейства — несумісно з compliance (KYC/AML, рольова модель, мультипідпис). Будь-який витік одного ключа компрометує всі кошти. Ці ризики закладені в архітектуру, а не в поганий UX.

Ми усуваємо їх на рівні протоколу: MPC-гаманці (ключ ніколи не зібраний цілком), смарт-контрактні гаманці (логіка авторизації в коді), апаратні HSM для інституційного зберігання. Нижче — деталі.

Custodial vs Non-custodial: у чому реальна різниця

Custodial — провайдер зберігає приватний ключ. Користувач аутентифікується через email/password/OAuth. Відновлення тривіальне, KYC/AML вбудовані. Для централізованих додатків з фінансовими операціями — часто єдиний регуляторно прийнятний варіант. Ризик: single point of failure (злом Bitfinex — значні втрати, FTX — понад значну суму клієнтських коштів).

Non-custodial — ключі у користувача. Провайдер не має доступу до коштів. Відповідальність за зберігання лягає на користувача. Для 99% людей це непрацююча модель без додаткового захисту — тут і приходить MPC.

MPC-гаманці: ключ, якого немає

Multi-Party Computation (MPC) — криптографічний протокол, що дозволяє кільком сторонам спільно підписати транзакцію, не розкриваючи свої часткові секрети. Приватний ключ ніколи не існує в зібраному вигляді.

Стандартна схема: 2-of-3 MPC між користувачем (частка на пристрої), сервером провайдера та резервним хмарним сховищем. Транзакція підписується двома будь-якими з трьох сторін. Телефон втрачено — відновлення через сервер + хмару. Сервер скомпрометовано — атакуючий володіє лише однією часткою, підпис неможливий.

TSS (Threshold Signature Scheme) — конкретна реалізація MPC для ECDSA/EdDSA. Алгоритми: GG18, GG20, CGGMP21 (останній швидший і з кращими security proof). Бібліотеки: tss-lib (Go, від Binance), multi-party-sig (Go, від Coinbase), ZenGo-X/multi-party-ecdsa (Rust).

MPC не потребує on-chain змін — для блокчейна підпис виглядає як звичайний single-key підпис. Це дає економію gas та зберігає конфіденційність схеми управління ключами (не публікується в ланцюжку) — на відміну від мультисига.

Account Abstraction (EIP-4337): смарт-контракт як гаманець

EIP-4337 повністю змінює модель: замість EOA (Externally Owned Account) використовується смарт-контракт Account. Логіка авторизації — в коді контракту, а не в криптографії протоколу. Це відкриває довільну логіку підпису, соціальне відновлення, сесійні ключі, sponsored транзакції та батчинг операцій.

User → UserOperation → Bundler → EntryPoint contract → Account contract
                                          ↑
                                    Paymaster (optional, pays gas)

UserOperation — новий тип об'єкта (не L1-транзакція). Bundler збирає UserOps з альтернативного mempool, упаковує в одну транзакцію та відправляє в EntryPoint. EntryPoint викликає validateUserOp на Account контракті — Account сам вирішує, чи дійсний підпис.

Практичні можливості:

Соціальне відновлення. Контракт зберігає список guardian'ів (інші адреси або сервіс). Втрата ключа — guardians голосують за заміну. Argent використовує схему з 2020 року.

Сесійні ключі. Тимчасовий ключ з обмеженими правами: взаємодія лише з конкретним контрактом, до певної дати, до певної суми. Для GameFi та dApps — користувач не підписує кожну мікро-транзакцію.

Paymaster. Сторонній контракт платить газ за користувача. Паттерн для онбордингу: користувач не тримає ETH, газ спонсорує dApp або береться з ERC-20 токенів.

Реалізації: Safe{Core} Protocol, Biconomy SDK (Stackup), ZeroDev (Kernel), Alchemy (Rundler bundler). На Ethereum mainnet, Polygon, Arbitrum, Optimism EntryPoint v0.6/v0.7 задеплоєний та активний. Гарантуємо сумісність з останніми версіями контрактів.

Hardware Security Module для корпоративних гаманців

Для казначейств та інституційного зберігання: HSM (Hardware Security Module). Ключ генерується і ніколи не покидає захищений чип. Підпис — всередині HSM. Підтримується апаратна атестація. Використовувані рішення: AWS CloudHSM, Azure Dedicated HSM, Thales Luna, YubiHSM 2 (для невеликих обсягів). Інтеграція через PKCS#11 або cloud-specific API.

Комбінація HSM + MPC — оптимальна для інституційного використання: ключові частки зберігаються в HSM на різних серверах/юрисдикціях, підпис через TSS. Це забезпечує відповідність регуляторним вимогам (наприклад, для крипто-кастодіанів).

Інтеграція з dApps: WalletConnect та стандарти

Будь-який гаманець повинен вміти взаємодіяти з dApps. Стандарт — WalletConnect v2 (Sign API): QR-код або deep link, peer-to-peer зашифрований канал через relay сервер. Для браузерних розширень — EIP-1193 (Ethereum Provider API).

На фронтенді використовуємо wagmi + viem — один інтерфейс для MetaMask, WalletConnect, Coinbase Wallet, injected providers. Для Account Abstraction — EIP-5792 (wallet capabilities) та EIP-7677 (paymaster service).

Процес розробки

  1. Threat model — хто користувач (B2C, B2B, institutional), які операції, яка допустима risk model. Від цього залежить архітектура.
  2. Вибір та проектування схеми зберігання ключів — MPC, HSM, мультисиг або їх комбінація.
  3. Розробка Account контракту (якщо EIP-4337) або інтеграція MPC-бібліотеки.
  4. Backend — MPC-координація, управління сесіями, paymaster-сервіс (якщо потрібен).
  5. Мобільний/браузерний застосунок — UI з інтеграцією WalletConnect, біометрії, QR.
  6. Інтеграція з dApps — EIP-1193, WalletConnect v2.
  7. Аудит контрактів та криптографічних реалізацій — обов'язковий етап. MPC-бібліотеки мають відомі вразливості (GG18 піддається атаці при malicious participant без abort protocol). Використовуємо бібліотеки з актуальними security review (CGGMP21). Досвід проходження аудитів у Certik, Hacken, Trail of Bits — підтверджуємо сертифікатами.

Що входить в роботу (deliverables)

  • Вихідні коди смарт-контрактів (Solidity/Rust) з документацією
  • Backend-сервіс MPC-координації (на Go або Rust) з API
  • Мобільний застосунок (iOS/Android) або браузерне розширення
  • Інтеграція з WalletConnect, Ledger/Trezor (за потреби)
  • Підготовка до аудиту безпеки (звіт зі списком вразливостей)
  • Документація адміністратора та користувача
  • Доступ до репозиторію, CI/CD, моніторинг (Tenderly, Etherscan API)
  • Навчання вашої команди (2-3 сесії)
  • Підтримка після запуску — 1 місяць

Строки та вартість

Тип рішення Строки (робочі тижні)
Custodial з базовим UI 4–8
Non-custodial з MPC-інтеграцією 8–16
EIP-4337 Account з paymaster 6–12
Institutional (HSM + MPC + compliance) від 16

Вартість розраховується індивідуально під ваш проект. Оцінимо за 1 день — зв'яжіться з нами. Надаємо гарантію на код та timeline.

Типові помилки при розробці криптогаманців (і як їх уникнути)

  • Використання застарілих MPC-бібліотек — GG18 без abort protocol. Обираємо CGGMP21 або tss-lib з актуальними audit report.
  • Жорстка прив'язка до одного блокчейну — не закладають абстракцію під L2/сайдчейни. Використовуємо viem/wagmi для кросс-чейн.
  • Ігнорування MEV-атак — при використанні мультисига без таймлоків. Додаємо tx simulation (Tenderly) та sandwitching protection.
  • Відсутність fallback-механізму відновлення — для Account Abstraction не налаштовують social recovery. Закладаємо з першого релізу.

Усуваємо ці граблі на етапі проектування — під кожен проект складаємо threat model та security checklist.

Потрібен надійний гаманець без компромісів? Отримайте консультацію нашого архітектора — розберемо вашу задачу та запропонуємо архітектуру з точним кошторисом. Залишайте заявку — відповімо протягом дня.