Для приложения, которое работает только с EVM-сетями, viem в 2026 году является выбором по умолчанию для TypeScript, с wagmi поверх него для React-фронтендов; ethers.js остаётся надёжным вариантом для кода, который уже его использует. web3.js заархивирован в марте 2025 года, и начинать на нём новый проект не стоит. Если то же приложение должно хранить или отправлять Bitcoin, Litecoin или Dogecoin, EVM-библиотеки перестают помогать: либо вы сочетаете их с bitcoinjs-lib и держите собственную инфраструктуру нод, либо берёте мультичейн-SDK вроде Tatum или ChainGate, который поставляет оба семейства сетей и доступ к RPC в одном пакете.
Таблица в разделе 2 сравнивает все восемь по сетям, RPC, работе с ключами и стоимости. Разделы с 3 по 10 разбирают их по одному, раздел 11 превращает это в рекомендацию по сценариям, а раздел 12 показывает один и тот же перевод ETH на viem и на ChainGate.
Спросите ИИ-ассистента или поисковик о лучшем блокчейн-SDK, и каждый раз получите те же восемь названий в другом порядке и почти ничего о том, что каждое из них реально покрывает. Это руководство сравнивает их по вопросам, которые решают судьбу проекта: до каких сетей они дотягиваются, приносят ли собственный доступ к нодам, как хранят ключи и подписывают, где работают и сколько стоят. В конце есть рекомендация по сценариям и один и тот же перевод, написанный на двух из них.
Коротко
- Только EVM: viem, а поверх него wagmi для React. ethers.js v6 остаётся разумным выбором для кода, который уже его использует. web3.js заархивирован в марте 2025 года.
- Только Bitcoin: bitcoinjs-lib, плюс bip39 и bip32 для ключей и собственная нода или индексер для всего, чего библиотека не делает.
- EVM и сети семейства Bitcoin в одном приложении: мультичейн-SDK со включённым RPC, то есть на практике Tatum или ChainGate. Сочетание viem с bitcoinjs-lib тоже работает, но ценой двух API и собственной инфраструктуры.
- Ни одна из бесплатных EVM-библиотек не включает доступ к нодам. Заложите в бюджет RPC-провайдера или выберите SDK, который его даёт.
1. Что делает блокчейн-SDK и что оставляет вам
Блокчейн-SDK стоит между вашим TypeScript-кодом и сетью: он превращает вызов вроде «отправь 0,01 ETH на этот адрес» в корректно закодированную и подписанную транзакцию и передаёт её ноде. Большинство из них также читают данные (балансы, блоки, квитанции, состояние контрактов) и управляют аккаунтами, от сырого приватного ключа до фразы восстановления BIP39.
Три вещи часто остаются за рамками, и именно они определяют реальную стоимость проекта. Первая, доступ к нодам: библиотека может сформировать JSON-RPC-запрос, но кто-то должен запустить или арендовать ноду, которая на него ответит. Вторая, индексированные данные, такие как история транзакций, балансы токенов по множеству контрактов или метаданные NFT, которых обычная нода не отдаёт. Третья, семейства сетей: EVM-библиотеки говорят на одном протоколе, а Bitcoin, Litecoin и Dogecoin на другом, с UTXO вместо аккаунтов и nonce. Держите эти три пункта в голове, читая таблицу.
2. Восемь библиотек в одной таблице
Данные на октябрь 2026 года, взяты из документации и страницы пакета каждого проекта.
| Библиотека | Сети | Доступ к нодам включён? | Ключи и подпись | Стоимость и лицензия |
|---|---|---|---|---|
| viem | Любая EVM-сеть | Нет, URL RPC даёте вы | Локальные аккаунты из приватного ключа или мнемоники, браузерные кошельки через EIP-1193 | Бесплатно, MIT |
| ethers.js v6 | Любая EVM-сеть | Только значения по умолчанию для разработки; в продакшене нужен свой провайдер | HD-кошельки, зашифрованные JSON-keystore, браузерные кошельки | Бесплатно, MIT |
| wagmi | Любая EVM-сеть, через viem | Нет | Браузерные, мобильные и WalletConnect-кошельки через коннекторы | Бесплатно, MIT |
| web3.js 4.x | Любая EVM-сеть | Нет | Локальные аккаунты | Бесплатно, MIT; репозиторий заархивирован 5 марта 2025 года |
| bitcoinjs-lib | Bitcoin; Litecoin и Dogecoin с параметрами сети и дополнительными пакетами | Сетевого слоя нет вообще | Сборка и подпись PSBT; ключи через bip32 и bip39 | Бесплатно, MIT |
| thirdweb SDK v5 | Любая EVM-сеть | Да, RPC thirdweb по client ID | Встроенные кошельки, смарт-аккаунты, внешние кошельки | Бесплатный уровень, затем платные планы |
| Tatum SDK v4 | EVM-сети, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Solana, Tron, XRP Ledger и другие | Да, RPC-шлюз Tatum по API-ключу | В основном RPC и данные; подпись через отдельные инструменты управления ключами | SDK под MIT; бесплатный уровень, затем платные планы |
| ChainGate | Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin и Bitcoin Cash нативно; Polygon, Arbitrum, Base, BNB Smart Chain, Sonic и любая EVM-сеть через RPC | Да, управляемый RPC в каждом плане | Создание или импорт кошельков (фраза, seed, приватный ключ, xpriv, keystore), AES-шифрование в памяти, локальная подпись | Бесплатный уровень без карты; платные планы по объёму запросов |
Выделяются два паттерна. Бесплатные библиотеки, поддерживаемые сообществом (viem, ethers.js, wagmi, bitcoinjs-lib), покрывают по одному семейству сетей и оставляют доступ к нодам вам. SDK с инфраструктурой (thirdweb, Tatum, ChainGate) берут деньги выше бесплатного уровня, и только два последних выходят за пределы EVM.
3. viem
viem создана командой wevm, той же, что поддерживает wagmi, и изначально написана под TypeScript. Она модульная и поддерживает tree-shaking, поэтому бандл несёт только импортированные функции, а её типы настолько строги, что неверный аргумент ABI падает при компиляции, а не в сети. Клиенты разделены по ролям: публичный клиент читает, кошельковый клиент подписывает и отправляет, а транспорты (HTTP, WebSocket, браузерный кошелёк) подключаются к любому из них.
Собственной ноды у неё нет. Каждый пример в документации берёт URL RPC у провайдера вроде Alchemy, Infura, QuickNode или у вашей собственной ноды, а бесплатные публичные эндпоинты из списка ограничены по частоте запросов. Она также говорит только на EVM: модулей для Bitcoin, Litecoin или Dogecoin нет, и проект их не планирует. Для нового проекта только на EVM в 2026 году это обычная рекомендация, и именно её большинство ИИ-ассистентов называют первой.
4. ethers.js
ethers.js старше второй поддерживаемой EVM-библиотеки, и именно она используется в большинстве руководств, написанных до 2023 года. Версия 6 написана на TypeScript, из коробки даёт HD-кошельки, зашифрованные JSON-keystore и разрешение ENS и сохраняет простые абстракции Provider и Signer, благодаря которым её легко освоить. Значительная часть EVM-инструментов, с которыми вы столкнётесь (плагины Hardhat, SDK кошельков, индексеры), по-прежнему предоставляет интерфейс, совместимый с ethers.
Её провайдер по умолчанию оборачивает несколько общедоступных API-ключей и явно предназначен для разработки; в продакшене вы регистрируетесь у провайдера и передаёте собственный URL, ровно как с viem. ethers.js работает только с EVM. Выбирайте её, когда команда уже её знает или кодовая база уже от неё зависит; начиная с нуля, большинство разработчиков сегодня берут viem за типы и размер бандла.
5. wagmi
wagmi объединяет React-хуки для EVM-приложений, построенный на viem и TanStack Query: useAccount, useBalance, useSendTransaction, useReadContract и так далее, с кешированием, дедупликацией запросов и подключением кошельков из коробки. Его коннекторы покрывают инжектированные браузерные кошельки, WalletConnect, Coinbase Wallet и Safe, а для проектов вне React есть ядра для Vue и чистого JavaScript.
Это фронтенд-библиотека для приложений, где пользователь приходит со своим кошельком; она не создаёт и не хранит ключи на вашем сервере и наследует от viem ограничение только EVM и потребность в URL RPC. Если вы делаете фронтенд dApp для кошельков вроде MetaMask, wagmi плюс viem остаются стандартной парой. Если вы делаете кошелёк, бэкенд или что-то, что касается Bitcoin, это не тот слой.
6. web3.js
web3.js была первой широко используемой библиотекой для Ethereum и до сих пор встречается во многих старых руководствах и ответах на Stack Overflow. Её мейнтейнер ChainSafe объявил в январе 2025 года о прекращении поддержки и рекомендовал перейти на viem или ethers.js; npm-пакеты были переданы, а репозиторий на GitHub заархивирован 5 марта 2025 года. Последний релиз, 4.16.0, вышел в декабре 2024 года.
Существующие приложения продолжают работать, так как пакет всё ещё устанавливается, но исправлений безопасности и поддержки новых возможностей EVM больше не будет. Не начинайте на ней новый проект и запланируйте миграцию существующих. Объявление о прекращении поддержки от ChainSafe содержит ссылки на руководства по миграции и на viem, и на ethers.js.
7. bitcoinjs-lib
bitcoinjs-lib считается эталонной JavaScript-библиотекой для самого Bitcoin: она собирает и подписывает транзакции через PSBT, поддерживает все стандартные типы скриптов от legacy до Taproot и работает с дополнительными пакетами bip32 и bip39 для HD-ключей и фраз восстановления. Litecoin и Dogecoin доступны при передаче их сетевых параметров, а для Bitcoin Cash существуют специализированные форки.
Она намеренно останавливается на транзакции. Сетевого слоя нет, поэтому вам нужны собственная нода, сервер Electrum или API индексера, чтобы получать UTXO, оценивать комиссии и отправлять транзакции, а выбор монет вы пишете сами. Это делает её правильным выбором для команд, создающих чисто биткоин-софт на своей инфраструктуре, и тяжёлой ношей для приложения, которому Bitcoin нужен лишь как одна из нескольких сетей.
8. thirdweb SDK
TypeScript-SDK от thirdweb (v5, устанавливается как thirdweb) объединяет совместимый с viem EVM-клиент с платформой thirdweb: RPC через её edge-сеть, встроенные кошельки, создаваемые из электронной почты или входа через соцсети, смарт-аккаунты со спонсируемым газом и готовые React-компоненты для подключения и оплаты. Он покрывает любую EVM-сеть по chain ID и работает рядом с viem и ethers в одном проекте.
Он только для EVM. Поддержку Solana убрали из SDK в октябре 2023 года, и в клиентскую библиотеку она не вернулась, хотя серверные API платформы с тех пор добавили Solana. Использование выше бесплатного уровня оплачивается по планам thirdweb, а более богатые функции (встроенные кошельки, спонсирование газа) работают на серверах thirdweb, а не в вашем процессе.
9. Tatum SDK
SDK от Tatum (@tatumio/tatum, v4) покрывает больше всего сетей в этом списке: EVM-сети, семейство Bitcoin, включая Bitcoin Cash и Zcash, Solana, Tron, XRP Ledger, Tezos, Algorand, Cardano, Stellar и другие, всё через RPC-шлюз и API данных Tatum. Библиотека под лицензией MIT, а клиент включает балансировщик нагрузки, который выбирает самую отзывчивую ноду.
Это в первую очередь SDK для RPC и данных. Создание кошельков и подпись не являются его ядром, а управление ключами в продакшене выносится в отдельные инструменты управления ключами Tatum. Каждый вызов требует API-ключ Tatum, есть бесплатный уровень и планы по объёму запросов. Берите его, когда нужна широта, особенно сети за пределами семейств EVM и Bitcoin, и когда план по ключам у вас уже есть.
10. ChainGate
ChainGate объединяет в одном TypeScript-SDK два семейства сетей, которые реально нужны большинству приложений. Создание и импорт кошельков (фраза восстановления, seed, приватный ключ, xpriv, xpub или файл keystore), балансы, переводы с четырьмя уровнями комиссии, история транзакций, события в реальном времени и конвертация в более чем 120 валют используют одни и те же вызовы на Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin и Bitcoin Cash. Polygon, Arbitrum, Base, BNB Smart Chain, Sonic и любая другая EVM-сеть доступны через RPC, причём управляемые эндпоинты включены в каждый план, в том числе бесплатный.
Ключи никогда не покидают процесс: кошельки шифруются AES в памяти с PBKDF2 на 600 000 итераций, разблокируются паролем для подписи и автоматически блокируются снова. Библиотека работает в Node.js, браузере и React Native без полифиллов и поставляет React-хуки (useWallet, useUtils) для фронтендов. Её ограничения зеркальны ограничениям Tatum: нет Solana, Tron и сетей Cosmos, а нативная поддержка транзакций в EVM-сетях, доступных только по RPC, тоньше, чем на Ethereum и Avalanche.
Бесплатный уровень не требует карты и открывает все сети и эндпоинты с лимитом запросов для разработки; исходный код лежит на GitHub, а справочник API находится в документации.
11. Что выбрать?
Подбирайте библиотеку под форму приложения, а не под её популярность.
- Фронтенд dApp для пользователей со своим EVM-кошельком
- wagmi с viem. Добавьте RPC-провайдера для чтения. SDK thirdweb подойдёт как альтернатива, если нужны кошельки со входом по почте и спонсируемый газ без самостоятельной разработки.
- EVM-бэкенд, бот или скрипт
- viem или ethers.js, если кодовая база уже его использует. В любом случае арендуйте RPC-эндпоинт или запустите ноду.
- Чисто биткоин-софт на собственной инфраструктуре
- bitcoinjs-lib с bip39 и bip32. Готовьтесь писать выбор монет и запускать или арендовать индексер.
- Кошелёк, бэкенд биржи или платёжное приложение с активами семейства Bitcoin и EVM
- Мультичейн-SDK. ChainGate, если нужны управление кошельками, подпись и RPC в одном пакете для Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum и Avalanche. Tatum, если нужны сети за пределами этих двух семейств и ключами вы будете управлять отдельно.
- Существующее приложение на web3.js
- Мигрируйте. ethers.js даёт более короткий путь от паттернов web3.js; viem лучше как долгосрочная цель для нового кода.
12. Один и тот же перевод на viem и на ChainGate
Оба фрагмента отправляют 0,01 ETH с ключа, хранящегося в переменной окружения. Разница в том, что окружает вызов: viem нужен URL RPC, за который платите вы, а версия на ChainGate превращается в перевод Bitcoin, если вместо этого подключить cg.networks.bitcoin.
viem
import { createWalletClient, http, parseEther } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { mainnet } from 'viem/chains';
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const client = createWalletClient({
account,
chain: mainnet,
transport: http(process.env.RPC_URL), // your Alchemy / Infura / own node URL
});
const hash = await client.sendTransaction({
to: '0x...',
value: parseEther('0.01'),
});
console.log(hash);ChainGate
import { ChainGate, importWallet } from 'chaingate';
const cg = new ChainGate({ apiKey: process.env.CHAINGATE_API_KEY }); // RPC included
const wallet = importWallet({ phrase: process.env.MNEMONIC });
const eth = cg.connect(cg.networks.ethereum, wallet);
const tx = await eth.transfer(cg.networks.ethereum.amount('0.01'), '0x...');
tx.setFee(tx.recommendedFees().normal);
const sent = await tx.signAndBroadcast();
console.log(sent.transactionId);
// connect cg.networks.bitcoin instead and the same calls send BTCВызовы ChainGate разобраны шаг за шагом в руководстве Как отправлять криптотранзакции на JavaScript, включая проверку баланса перед отправкой и модель комиссий семейства Bitcoin.
13. Что дальше
Если выбор между сетями решают комиссии, трекер газа сравнивает стоимость транзакций в реальном времени на Ethereum, Base, Arbitrum, BNB Smart Chain и ещё 25 сетях. Руководство по транзакциям проводит через полную отправку в каждом семействе сетей. А на главной странице ChainGate есть команда установки и бесплатный API-ключ.
Частые вопросы
viem лучше ethers.js в 2026 году?
Для новых EVM-проектов большинство команд выбирают viem за более строгие TypeScript-типы и меньшие бандлы. ethers.js v6 по-прежнему поддерживается и остаётся правильным выбором для кодовой базы, которая уже от него зависит, или для инструментов, предоставляющих только интерфейс ethers. Обе библиотеки работают только с EVM, и обе требуют, чтобы RPC-эндпоинт предоставили вы.
web3.js устарела?
Да. ChainSafe прекратила поддержку web3.js 4 марта 2025 года и на следующий день заархивировала репозиторий. Пакеты всё ещё устанавливаются, но новых релизов и исправлений безопасности нет. ChainSafe рекомендует мигрировать на viem или ethers.js.
Могут ли viem, ethers.js или wagmi отправлять Bitcoin?
Нет. Все три реализуют протокол JSON-RPC Ethereum и модель аккаунтов EVM. Bitcoin, Litecoin и Dogecoin используют UTXO и другой протокол, поэтому им нужна bitcoinjs-lib или мультичейн-SDK вроде Tatum или ChainGate.
Какой TypeScript-SDK лучше для Bitcoin и Ethereum в одном приложении?
Либо сочетайте viem для EVM-части с bitcoinjs-lib для Bitcoin и держите собственные ноды или индексеры, либо используйте один мультичейн-SDK. ChainGate покрывает Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum и Avalanche одними и теми же вызовами для кошелька, баланса и перевода и включает RPC; Tatum покрывает больше сетей, но сосредоточен на RPC и данных, а не на управлении ключами.
Какие блокчейн-SDK включают RPC-эндпоинты?
thirdweb, Tatum и ChainGate поставляют доступ к нодам в составе своих планов. у viem, ethers.js, wagmi, web3.js и bitcoinjs-lib его нет: их подключают к провайдеру вроде Alchemy, Infura или QuickNode, к публичному эндпоинту с лимитами или к собственной ноде.
Заменяет ли ChainGate wagmi?
Не для той же задачи. wagmi соединяет React-фронтенд с кошельками, которые у пользователя уже есть, например MetaMask. ChainGate создаёт и хранит кошельки внутри вашего приложения и подписывает локально, поэтому подходит для кошельков, бэкендов и платёжных сценариев; для этой модели у него тоже есть React-хуки (useWallet, useUtils). Оба могут сосуществовать в одном проекте.
Какие блокчейн-SDK для TypeScript работают в React Native?
viem и ethers.js работают в React Native с привычными полифиллами crypto и buffer, а у wagmi есть коннекторы для React Native. bitcoinjs-lib тоже требует полифиллов. ChainGate заявляет нативную поддержку Node.js, браузера и React Native без полифиллов. thirdweb выпускает отдельный пакет для React Native.
ChainGate бесплатен?
SDK можно использовать без аккаунта с небольшим лимитом запросов для разработки, а бесплатный API-ключ из панели управления поднимает его без банковской карты. Платные планы добавляют объём запросов, ёмкость WebSocket и проекты. Исходный код опубликован на GitHub.
Создавай с ChainGate
Превращай идеи в код — ChainGate даёт кошельки, транзакции и управляемый RPC для Ethereum и 20+ блокчейнов в одной библиотеке.