Розробка White-label криптокошелька
White-label кошелек — це не "скачати MetaMask й поставити інший логотип". Це повнофункціональний продукт з вашим брендом, вашою бізнес-логікою й вашим контролем над користувальницьким досвідом. Різниця принципова: коли користувач працює через MetaMask або Trust Wallet, дані аналітики, точки входу й монетизація належать їм. Коли через ваш кошелек — вам. Нижче — реальна архітектура, не маркетингові тези.
Архітектурні рішення: що вибрати в основу
Custodial vs Non-custodial vs MPC
Перше архітектурне рішення визначає все інше.
Custodial — ключи зберігаються на ваших серверах. Користувач працює через логін/пароль. Простіший UX, але: ви несете повну юридичну відповідальність за активи, ліцензія потрібна у більшості юрисдикцій, ви стаєте мішенню для хакерів. Підходить для B2B-продуктів з корпоративними клієнтами під NDA.
Non-custodial (HD Wallet) — ключи генеруються й зберігаються на пристрої користувача, BIP-32/39/44 деривація. Ви не можете відновити активи якщо користувач втратив seed phrase. Стандарт для consumer-facing продуктів.
MPC (Multi-Party Computation) — приватний ключ ніколи не існує цілком ні на одному пристрої. Key shares розподілені між клієнтом і серверами. Схема 2-of-2 або 2-of-3 (TSS — Threshold Signature Scheme). Провайдери: Fireblocks MPC, Web3Auth MPC, Lit Protocol. Золота середина: користувач не зберігає seed phrase, але активи non-custodial. Це напрям — індустріальний тренд 2024–2025.
Вибір SDK й базового коду
WalletCore від Trust Wallet (open source) — C++ ядро з біндингами для iOS (Swift), Android (Kotlin/Java), WebAssembly. Підтримка 100+ блокчейнів. Найзріліший open source варіант для мультичейн HD кошелька. Складність інтеграції — висока, але криптографічно перевірений код.
Coinbase Wallet SDK — open source, фокус на EVM + Base. Хороший якщо ваша аудиторія орієнтована на Ethereum-екосистему.
WalletKit від Reown (ex-WalletConnect) — SDK для інтеграції WalletConnect v2 протоколу у ваш кошелек. Обов'язковий якщо хочете, щоб ваш кошелек працював з dApps.
Власна реалізація — використовуємо @noble/curves (Constantine, secp256k1, ed25519) + @scure/bip32 + @scure/bip39. Повний контроль, немає залежності від сторонніх SDK. Виправданий для спеціалізованих продуктів.
Ключові технічні компоненти
Генерація й зберігання ключів
Безпека починається з генерації ентропії. crypto.getRandomValues() у браузері, /dev/urandom на сервері — лише CSPRNG.
import { generateMnemonic, mnemonicToSeedSync } from "@scure/bip39";
import { wordlist } from "@scure/bip39/wordlists/english";
import { HDKey } from "@scure/bip32";
// Генерація 24-словного мнемоніка (256 бітової ентропії)
const mnemonic = generateMnemonic(wordlist, 256);
const seed = mnemonicToSeedSync(mnemonic);
const masterKey = HDKey.fromMasterSeed(seed);
// BIP-44 деривація: m/44'/60'/0'/0/0 для першої ETH адреси
const ethKey = masterKey.derive("m/44'/60'/0'/0/0");
Зберігання на мобільних: iOS Keychain з kSecAttrAccessibleWhenUnlockedThisDeviceOnly, Android Keystore з апаратною прив'язкою. Без AsyncStorage, SharedPreferences без шифрування.
У вебі — додаткова складність: немає нативного безпечного сховища. Варіанти: зашифрований IndexedDB (ключ шифрування — похідна від пароля через Argon2/PBKDF2), або відмова від browser extension у користь mobile-first.
Мультичейн підтримка
Типовий набір для white-label продукту 2025 року:
| Екосистема | Сітки | Стандарт деривації |
|---|---|---|
| EVM | Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche | BIP-44, coin type 60 |
| Bitcoin | BTC mainnet/testnet | BIP-84 (Native SegWit), BIP-86 (Taproot) |
| Solana | Mainnet, Devnet | BIP-44, coin type 501 |
| TON | Mainnet | BIP-44, coin type 607 |
| Cosmos | Atom, Osmosis + IBC chains | BIP-44, coin type 118 |
Кожна екосистема — окремий провайдер у коді. Абстракція через інтерфейс:
interface ChainProvider {
getBalance(address: string): Promise<bigint>;
sendTransaction(tx: UnsignedTransaction, key: Uint8Array): Promise<string>;
estimateGas(tx: UnsignedTransaction): Promise<bigint>;
getTransactionHistory(address: string): Promise<Transaction[]>;
}
WalletConnect v2 інтеграція
Без WalletConnect v2 кошелек не працює з більшістю dApps. Протокол використовує relay servers від Reown для передачі повідомлень між кошельком і dApp через QR-код або deep link.
import { Core } from "@walletconnect/core";
import { Web3Wallet } from "@walletconnect/web3wallet";
const core = new Core({ projectId: YOUR_PROJECT_ID });
const wallet = await Web3Wallet.init({
core,
metadata: {
name: "Your Wallet Name",
description: "Your wallet description",
url: "https://yourwallet.com",
icons: ["https://yourwallet.com/icon.png"],
},
});
// Обробка session proposal від dApp
wallet.on("session_proposal", async ({ id, params }) => {
const session = await wallet.approveSession({
id,
namespaces: buildNamespaces(params.requiredNamespaces),
});
});
// Обробка запиту на підпис транзакції
wallet.on("session_request", async ({ topic, params, id }) => {
const { request } = params;
if (request.method === "eth_sendTransaction") {
// показати користувачеві деталі транзакції, отримати підтвердження
const txHash = await signAndSend(request.params[0]);
await wallet.respondSessionRequest({ topic, response: { id, result: txHash, jsonrpc: "2.0" } });
}
});
Баланси й транзакції: агрегація даних
Прямі RPC виклики до нодів — не масштабуються при мультичейн кошельку. Використовуємо спеціалізовані API:
Alchemy / Infura / QuickNode — JSON-RPC доступ до EVM сітей з rate limiting й надійністю.
Moralis / Covalent / Ankr Advanced API — агреговані API для балансів, NFT, історії транзакцій по всім EVM сітям одним запитом. Економить 80% backend коду.
TrustWallet Assets — open source репозиторій з метаданими токенів (іконки, decimals, контракти) для 100+ сітей. Інтегруємо як npm пакет або self-hosted.
Helius (Solana) — аналог Alchemy для Solana, з API для токенів і NFT.
Кастомізація й білий лейбл
Що реально кастомізується
- Візуальний брендинг — кольори, шрифти, іконки, splash screen, onboarding флоу. Через design tokens у Tailwind/StyleSheet.
- Список підтримуваних сітей — конфігураційний файл, не хардкод.
- Вбудовані функції — включити/відключити swap, стейкинг, NFT галерею, fiat on/off ramp.
- Fiat on-ramp провайдер — MoonPay, Transak, Ramp Network. Всі надають white-label віджети.
- In-app браузер для dApps — WebView з інжектованим EIP-1193 провайдером.
- Push сповіщення — Firebase Cloud Messaging + моніторинг адрес через Alchemy Notify.
Що не варто пересобирати з нуля
Криптографічні примітиви — ніколи. secp256k1 підпис, keccak256, BIP-32 деривація — використовуємо перевірені бібліотеки, не власну реалізацію. Помилка у криптографії = втрата коштів користувачів і ваша репутаційна катастрофа.
Мобільне приложення vs браузерне розширення
React Native — єдиний кодбейс для iOS й Android. react-native-quick-crypto для нативної криптографії (у 10–100x швидше JS реалізації). Expo SDK спрощує сборку, але обмежує нативні можливості — для production кошелька краще bare React Native.
Browser Extension — Manifest V3 (Chrome/Firefox/Edge). service_worker замість background_page, що створює складності з persistent WebSocket сполуками. Використовуємо Plasmo framework — значно спрощує розробку розширень з hot reload.
Web App (PWA) — найдоступніший варіант але з обмеженнями: немає нативного безпечного сховища, обмежений доступ до біометрії, немає deep links для WalletConnect.
Безпека й compliance
Біометрична аутентифікація — TouchID/FaceID на iOS, BiometricPrompt на Android. Обов'язкова для будь-якого production кошелька. Не замінює шифрування, а захищає доступ до розшифрованого ключа в пам'яті.
Jailbreak/root detection — react-native-jail-monkey або нативні перевірки. При виявленні — попередження або повна блокування.
Certificate pinning — для backend API. Запобігає MITM атакам через скомпрометовані CA.
Transaction simulation — перед підписом показуємо користувачеві очікувані зміни балансів. Інтегруємо Tenderly Simulation API або Blowfish (спеціалізований на security checks, виявляє drainer контракти).
Сроки й бюджет
| Варіант | Склад | Термін | Орієнтовний бюджет |
|---|---|---|---|
| MVP (EVM only, mobile) | RN приложення, BIP-44, WC v2, Alchemy | 6–8 тиж | $30k–60k |
| Стандартний white-label | Multi-chain, swap, fiat on-ramp, браузер | 3–5 міс | $100k–200k |
| Повнофункціональний | + MPC, extension, аудит, compliance | 6–10 міс | $250k–500k |
Реалістична оцінка: більшість клієнтів починають з MVP для конкретної сітки, потім ітеративно розширюють. Це правильно — намагатися все разом дорого й ризиковано.







