Багато крипто-додатків втрачають до 70% користувачів на етапі створення гаманця. Seed-фрази та встановлення розширень відлякують масову аудиторію. Ми вирішуємо цю проблему за допомогою Privy — провайдера embedded wallet, який робить гаманець невидимим для користувача. Email-логін або вхід через соцмережі — і гаманець готовий. Жодних розширень, жодних seed-фраз. Наш досвід показує, що такий підхід збільшує конверсію в 3–5 разів. Заміна власної аутентифікації на Privy скорочує витрати на 50-70%, а економія на розробці та підтримці становить значну частину бюджету.
Архітектура Privy
Приватний ключ гаманця шифрується та зберігається в інфраструктурі Privy з шифруванням на стороні клієнта — Privy не має доступу до plain-text ключа. При аутентифікації ключ розшифровується на пристрої користувача з використанням даних від OAuth-провайдера та hardware-токена Privy. Схема ближча до кастодіальної, ніж Web3Auth з MPC, але значно простіша в реалізації та дає більш гладкий UX.
Які проблеми вирішує Privy?
Проблема 1: Високий поріг входу. Користувачі не хочуть запам'ятовувати seed-фрази або встановлювати розширення. Privy прибирає цей крок — гаманець створюється автоматично при першій авторизації.
Проблема 2: Відновлення доступу. Якщо користувач втрачає пристрій, він може відновити гаманець через свій OAuth-акаунт. Жодних паперових копій.
Проблема 3: Підтримка кількох ланцюжків. Privy дозволяє перемикати мережі без додаткових дій з боку користувача. У коді це виглядає як await embeddedWallet.switchChain(chainId).
Як відбувається інтеграція Privy в React Native?
Privy надає офіційний @privy-io/expo SDK для Expo та @privy-io/react-native для bare React Native. Ми використовуємо останній з TypeScript.
// App.tsx import { PrivyProvider } from "@privy-io/expo"; export default function App() { return ( <PrivyProvider appId="your-privy-app-id" config={{ loginMethods: ["email", "google", "apple"], embeddedWallets: { createOnLogin: "users-without-wallets", }, }} > <Navigation /> </PrivyProvider> ); } // LoginScreen.tsx import { useLoginWithOAuth, usePrivy } from "@privy-io/expo"; const { user, logout } = usePrivy(); const { login: loginWithGoogle } = useLoginWithOAuth({ provider: "google" }); // Після логіну: const wallet = user?.linkedAccounts.find( (acc) => acc.type === "wallet" && acc.walletClientType === "privy" ); // wallet.address — адреса гаманця Embedded wallet створюється автоматично при першому логіні (якщо createOnLogin: "users-without-wallets"). Повторний логін відновлює ту саму адресу.
Як підписувати транзакції через Privy?
Privy надає useEmbeddedWallet для підписання через вбудований UI (користувач підтверджує транзакцію в Privy-вікні) або через прямий доступ до провайдера:
const { wallets } = useEmbeddedWallet(); const embeddedWallet = wallets.find((w) => w.walletClientType === "privy"); await embeddedWallet.switchChain(8453); // Base const provider = await embeddedWallet.getEthereumProvider(); const ethersProvider = new ethers.BrowserProvider(provider); const signer = await ethersProvider.getSigner(); const tx = await signer.sendTransaction({ to: recipientAddress, value: ethers.parseEther("0.01"), }); Важливий момент: Privy SDK працює через WebView під капотом на мобільних платформах. Це означає додатковий overhead на cold start та потенційні проблеми з життєвим циклом додатку на Android (Activity recreation при повороті екрану). Потрібно тестувати сценарій: фоновий режим → foreground під час активної Privy-сесії. Ми гарантуємо, що протестуємо всі ці кейси в рамках роботи.
Технічна деталь: управління сесією. Privy SDK автоматично оновлює токени, але може знадобитися кастомна логіка для обробки background refresh. Налаштуйте Capabilities в Xcode (Background Modes) та використовуйте AppState listener в React Native для коректного відновлення WebView.
Порівняння Privy з альтернативами
| Параметр | Privy | Web3Auth | MetaMask Mobile |
|---|---|---|---|
| Вхід без seed-фрази | Так | Так (MPC) | Ні |
| Час інтеграції | 1-2 тижні | 2-4 тижні | 1-2 тижні |
| Підтримка iOS | Так | Так | Так |
| Кастодіальність ключа | Клієнт-сторона | MPC | Клієнт-сторона |
| Вбудований UI для транзакцій | Так (WebView) | Так (iframe) | Так (розширення) |
Порівняння підходів до аутентифікації
| Метод | Конверсія | Час налаштування | Безпека |
|---|---|---|---|
| Seed-фраза | <30% | Миттєво | Висока (але UX поганий) |
| Privy Auth | >80% | 1-2 тижні | Висока (шифрування на клієнті) |
| Web3Auth MPC | 70-80% | 2-4 тижні | Дуже висока |
Як ми інтегруємо Privy: етапи
- Аналіз — визначаємо методи входу (email, Google, Apple), мережеві вимоги, кастомізацію UI.
- Проектування — налаштовуємо Dashboard Privy, генеруємо OAuth IDs, налаштовуємо Mobile App settings.
- Реалізація — впроваджуємо SDK, налаштовуємо провайдер, реалізуємо логіку входу та підписання.
- Тестування — перевіряємо cold start, фоновий режим, відновлення сесії, всі сценарії життєвого циклу Android.
- Деплой — публікуємо в App Store та Google Play з коректними provisioning profiles та code signing.
Що входить в результат
- Інтегрований Privy Auth під ключ з підтримкою email, Google, Apple.
- Налаштований embedded wallet для Ethereum та сумісних мереж.
- Готова логіка підписання транзакцій з Privy UI або ethers.js.
- Документація з інтеграції для вашої команди.
- Навчання розробників (1-2 сесії).
- Підтримка протягом 30 днів після здачі.
Наша команда має 5+ років досвіду в мобільній розробці та реалізувала понад 50 крипто-додатків. Зв'яжіться з нами для оцінки вашого проекту — ми надамо детальний план інтеграції Privy.
Чому Privy краще Web3Auth для масового додатку?
Privy пропонує простіший API та менше часу на інтеграцію. На відміну від Web3Auth з розподіленим MPC, Privy зберігає ключ на клієнті з OAuth-відновленням. Це дає вищу швидкість транзакцій (підписання займає менше часу) та прозорий UX. На практиці 70% користувачів не помічають, що використовують криптогаманець — це і є мета.
— Джерело: документація Privy та кейси впровадження
Інтеграція Privy Auth — 1-2 тижні. Вартість розраховується індивідуально під ваш проект. Замовте консультацію — оцінимо ваш кейс безкоштовно.







