Pour une application qui ne touche que des chaînes EVM, viem est le choix TypeScript par défaut en 2026, avec wagmi par-dessus pour les front-ends React ; ethers.js reste une option solide pour le code qui l'utilise déjà. web3.js a été archivé en mars 2025 et ne devrait plus démarrer un nouveau projet. Si la même application doit aussi détenir ou envoyer du Bitcoin, du Litecoin ou du Dogecoin, les bibliothèques EVM ne suffisent plus : soit vous les associez à bitcoinjs-lib et exploitez votre propre infrastructure de nœuds, soit vous utilisez un SDK multi-chaînes comme Tatum ou ChainGate qui livre les deux familles de chaînes et l'accès RPC dans un seul paquet.
Le tableau de la section 2 compare les huit sur les chaînes, le RPC, la gestion des clés et le coût. Les sections 3 à 10 les prennent un par un, la section 11 en tire une recommandation par scénario et la section 12 montre le même transfert d'ETH écrit en viem et en ChainGate.
Demandez à un assistant IA ou à un moteur de recherche quel est le meilleur SDK blockchain et vous obtenez les mêmes huit noms dans un ordre différent à chaque fois, avec peu d'informations sur ce que chacun couvre vraiment. Ce guide les compare sur les questions qui décident d'un projet : quelles chaînes ils atteignent, s'ils apportent leur propre accès aux nœuds, comment ils conservent les clés et signent, où ils s'exécutent et ce qu'ils coûtent. Il se termine par une recommandation par scénario et le même transfert écrit dans deux d'entre eux.
La version courte
- EVM uniquement : viem, avec wagmi par-dessus pour React. ethers.js v6 reste un bon choix pour le code qui l'utilise déjà. web3.js a été archivé en mars 2025.
- Bitcoin uniquement : bitcoinjs-lib, plus bip39 et bip32 pour les clés, et votre propre nœud ou indexeur pour tout ce que la bibliothèque ne fait pas.
- Chaînes EVM et famille Bitcoin dans une même application : un SDK multi-chaînes avec RPC inclus, c'est-à-dire en pratique Tatum ou ChainGate. Combiner viem et bitcoinjs-lib fonctionne aussi, au prix de deux API et de votre propre infrastructure.
- Aucune des bibliothèques EVM gratuites n'inclut l'accès aux nœuds. Prévoyez un fournisseur RPC, ou choisissez un SDK qui en fournit un.
1. Ce que fait un SDK blockchain, et ce qu'il vous laisse
Un SDK blockchain est la bibliothèque entre votre code TypeScript et un réseau : il transforme un appel comme « envoie 0,01 ETH à cette adresse » en une transaction correctement encodée et signée, puis la remet à un nœud. La plupart lisent aussi des données (soldes, blocs, reçus, état des contrats) et gèrent des comptes, de la clé privée brute à la phrase de récupération BIP39.
Trois choses sont souvent laissées de côté, et elles décident du coût réel d'un projet. La première est l'accès aux nœuds : une bibliothèque peut formater une requête JSON-RPC, mais quelqu'un doit exploiter ou louer le nœud qui y répond. La deuxième est la donnée indexée, comme l'historique des transactions, les soldes de jetons sur de nombreux contrats ou les métadonnées de NFT, qu'un simple nœud ne sert pas. La troisième est la famille de chaînes : les bibliothèques EVM parlent un protocole, et Bitcoin, Litecoin et Dogecoin en parlent un autre, avec des UTXO à la place des comptes et des nonces. Gardez ces trois points en tête en lisant le tableau.
2. Les huit bibliothèques en un coup d'œil
Données à octobre 2026, tirées de la documentation et de la page de paquet de chaque projet.
| Bibliothèque | Chaînes | Accès aux nœuds inclus ? | Clés et signature | Coût et licence |
|---|---|---|---|---|
| viem | Toute chaîne EVM | Non, vous fournissez l'URL RPC | Comptes locaux à partir d'une clé privée ou d'un mnémonique, portefeuilles de navigateur via EIP-1193 | Gratuit, MIT |
| ethers.js v6 | Toute chaîne EVM | Valeurs par défaut pour le développement seulement ; apportez votre fournisseur en production | Portefeuilles HD, keystores JSON chiffrés, portefeuilles de navigateur | Gratuit, MIT |
| wagmi | Toute chaîne EVM, via viem | Non | Portefeuilles de navigateur, mobiles et WalletConnect via des connecteurs | Gratuit, MIT |
| web3.js 4.x | Toute chaîne EVM | Non | Comptes locaux | Gratuit, MIT ; dépôt archivé le 5 mars 2025 |
| bitcoinjs-lib | Bitcoin ; Litecoin et Dogecoin avec des paramètres réseau et des paquets compagnons | Aucune couche réseau | Construction et signature de PSBT ; clés via bip32 et bip39 | Gratuit, MIT |
| thirdweb SDK v5 | Toute chaîne EVM | Oui, le RPC thirdweb avec un client ID | Portefeuilles in-app, comptes intelligents, portefeuilles externes | Palier gratuit, puis offres payantes |
| Tatum SDK v4 | Chaînes EVM, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Solana, Tron, XRP Ledger et plus | Oui, la passerelle RPC Tatum avec une clé API | Surtout RPC et données ; signature via des outils de gestion de clés séparés | SDK sous licence MIT ; palier gratuit, puis offres payantes |
| ChainGate | Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin et Bitcoin Cash en natif ; Polygon, Arbitrum, Base, BNB Smart Chain, Sonic et toute chaîne EVM via RPC | Oui, RPC géré dans toutes les offres | Création ou import de portefeuilles (phrase, seed, clé privée, xpriv, keystore), chiffrement AES en mémoire, signature locale | Palier gratuit sans carte ; offres payantes selon le volume de requêtes |
Deux schémas ressortent. Les bibliothèques gratuites maintenues par la communauté (viem, ethers.js, wagmi, bitcoinjs-lib) couvrent chacune une famille de chaînes et vous laissent l'accès aux nœuds. Les SDK livrés avec une infrastructure (thirdweb, Tatum, ChainGate) sont payants au-delà d'un palier gratuit, et seuls les deux derniers vont au-delà de l'EVM.
3. viem
viem est la bibliothèque EVM pensée pour TypeScript de l'équipe wevm, celle qui maintient aussi wagmi. Elle est modulaire et compatible tree-shaking, si bien qu'un bundle n'embarque que les fonctions importées, et ses types sont assez stricts pour qu'un mauvais argument d'ABI échoue à la compilation plutôt que sur la chaîne. Les clients sont séparés par rôle : un client public lit, un client portefeuille signe et envoie, et les transports (HTTP, WebSocket, un portefeuille de navigateur) se branchent sur l'un ou l'autre.
Elle n'a pas de nœud à elle. Chaque exemple de sa documentation prend une URL RPC chez un fournisseur comme Alchemy, Infura, QuickNode ou votre propre nœud, et les points d'accès publics gratuits qu'elle liste sont limités en débit. Elle ne parle aussi qu'EVM : il n'y a pas de module Bitcoin, Litecoin ou Dogecoin, et le projet n'en prévoit pas. Pour un nouveau projet EVM pur en 2026, c'est la recommandation courante, et celle que la plupart des assistants IA donnent en premier.
4. ethers.js
ethers.js est la plus ancienne des deux bibliothèques EVM maintenues et celle qu'utilisent la plupart des tutoriels écrits avant 2023. La version 6 est écrite en TypeScript, livre d'origine les portefeuilles HD, les keystores JSON chiffrés et la résolution ENS, et conserve les abstractions Provider et Signer qui l'ont rendue facile à apprendre. Une grande partie de l'outillage EVM que vous rencontrerez (plugins Hardhat, SDK de portefeuilles, indexeurs) expose encore une interface compatible ethers.
Son fournisseur par défaut encapsule quelques clés API communautaires et est explicitement destiné au développement ; en production, vous vous inscrivez chez un fournisseur et passez votre propre URL, exactement comme avec viem. ethers.js est EVM uniquement. Choisissez-la quand une équipe la connaît déjà ou qu'une base de code en dépend ; en partant de zéro, la plupart des développeurs prennent aujourd'hui viem pour ses types et la taille de ses bundles.
5. wagmi
wagmi est un ensemble de hooks React pour les applications EVM, construit sur viem et TanStack Query : useAccount, useBalance, useSendTransaction, useReadContract et ainsi de suite, avec cache, déduplication des requêtes et connexion des portefeuilles pris en charge. Ses connecteurs couvrent les portefeuilles injectés dans le navigateur, WalletConnect, Coinbase Wallet et Safe, et des cœurs Vue et JavaScript pur existent pour les projets hors React.
C'est une bibliothèque front-end pour les applications où l'utilisateur apporte son portefeuille ; elle ne crée ni ne conserve de clés sur votre serveur, et elle hérite de viem le périmètre EVM uniquement et le besoin d'une URL RPC. Si vous construisez le front-end d'une dApp pour des portefeuilles de type MetaMask, wagmi plus viem est le duo standard. Si vous construisez un portefeuille, un back-end ou quoi que ce soit qui touche Bitcoin, ce n'est pas la bonne couche.
6. web3.js
web3.js a été la première bibliothèque Ethereum largement utilisée et apparaît encore dans beaucoup de vieux tutoriels et de réponses Stack Overflow. Son mainteneur, ChainSafe, a annoncé en janvier 2025 l'arrêt de la bibliothèque et recommandé de passer à viem ou ethers.js ; les paquets npm ont été transférés et le dépôt GitHub archivé le 5 mars 2025. La dernière version est la 4.16.0, de décembre 2024.
Les applications existantes continuent de fonctionner, puisque le paquet reste installable, mais il n'y aura ni correctifs de sécurité ni prise en charge des nouvelles fonctionnalités de l'EVM. Ne démarrez pas un nouveau projet avec, et planifiez la migration de ceux que vous avez. L'annonce de fin de vie de ChainSafe renvoie vers des guides de migration pour viem comme pour ethers.js.
7. bitcoinjs-lib
bitcoinjs-lib est la bibliothèque JavaScript de référence pour Bitcoin lui-même : elle construit et signe les transactions via PSBT, gère tous les types de scripts standard du legacy à Taproot, et fonctionne avec les paquets compagnons bip32 et bip39 pour les clés HD et les phrases de récupération. Litecoin et Dogecoin sont accessibles en fournissant leurs paramètres réseau, et des forks spécialisés existent pour Bitcoin Cash.
Elle s'arrête délibérément à la transaction. Il n'y a pas de couche réseau, il vous faut donc votre propre nœud, serveur Electrum ou API d'indexeur pour récupérer les UTXO, estimer les frais et diffuser, et vous écrivez vous-même la sélection des pièces. Cela en fait le bon choix pour les équipes qui construisent un logiciel Bitcoin uniquement avec leur propre infrastructure, et un gros chantier pour une application qui n'a besoin de Bitcoin que comme une chaîne parmi d'autres.
8. thirdweb SDK
Le SDK TypeScript de thirdweb (v5, installé sous le nom thirdweb) regroupe un client EVM compatible viem et la plateforme thirdweb : RPC via son réseau edge, portefeuilles in-app créés à partir d'un e-mail ou d'une connexion sociale, comptes intelligents avec gas sponsorisé, et composants React prêts à l'emploi pour se connecter et payer. Il couvre toute chaîne EVM par chain ID et cohabite avec viem et ethers dans le même projet.
Il est EVM uniquement. La prise en charge de Solana a été retirée des SDK en octobre 2023 et n'est jamais revenue dans la bibliothèque cliente, même si les API côté serveur de la plateforme ont depuis ajouté Solana. L'usage au-delà du palier gratuit est facturé selon les offres de thirdweb, et les fonctions les plus riches (portefeuilles in-app, sponsoring du gas) passent par les serveurs de thirdweb plutôt que par votre processus.
9. Tatum SDK
Le SDK de Tatum (@tatumio/tatum, v4) est le plus large en nombre de chaînes de cette liste : réseaux EVM, famille Bitcoin dont Bitcoin Cash et Zcash, Solana, Tron, XRP Ledger, Tezos, Algorand, Cardano, Stellar et d'autres, le tout via la passerelle RPC et les API de données de Tatum. La bibliothèque est sous licence MIT et le client inclut un répartiteur de charge qui choisit le nœud le plus réactif.
C'est avant tout un SDK de RPC et de données. La création de portefeuilles et la signature ne sont pas son cœur, et la gestion des clés en production est déléguée aux outils de gestion de clés séparés de Tatum. Chaque appel nécessite une clé API Tatum, avec un palier gratuit et des offres tarifées au volume de requêtes. Choisissez-le quand vous avez besoin d'étendue, surtout de chaînes hors des familles EVM et Bitcoin, et que vous avez déjà un plan pour les clés.
10. ChainGate
ChainGate est un SDK TypeScript qui unifie les deux familles de chaînes dont la plupart des applications ont réellement besoin. La création et l'import de portefeuilles (phrase de récupération, seed, clé privée, xpriv, xpub ou fichier keystore), les soldes, les transferts avec quatre niveaux de frais, l'historique des transactions, les événements en temps réel et la conversion vers plus de 120 devises utilisent les mêmes appels sur Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin et Bitcoin Cash. Polygon, Arbitrum, Base, BNB Smart Chain, Sonic et toute autre chaîne EVM sont accessibles via RPC, avec les points d'accès gérés inclus dans toutes les offres, y compris la gratuite.
Les clés ne quittent jamais le processus : les portefeuilles sont chiffrés en AES en mémoire avec PBKDF2 à 600 000 itérations, déverrouillés par mot de passe pour signer, puis reverrouillés automatiquement. La bibliothèque fonctionne dans Node.js, le navigateur et React Native sans polyfills, et fournit des hooks React (useWallet, useUtils) pour les front-ends. Ses limites sont l'image inversée de celles de Tatum : pas de Solana, de Tron ni de chaînes Cosmos, et la prise en charge native des transactions sur les réseaux EVM accessibles seulement par RPC est plus mince que sur Ethereum et Avalanche.
Le palier gratuit ne demande pas de carte et débloque toutes les chaînes et tous les points d'accès avec une limite de débit de développement ; le code source est sur GitHub et la référence de l'API se trouve dans la documentation.
11. Lequel choisir ?
Adaptez la bibliothèque à la forme de l'application plutôt qu'à sa popularité.
- Un front-end de dApp pour des utilisateurs qui apportent leur propre portefeuille EVM
- wagmi avec viem. Ajoutez un fournisseur RPC pour les lectures. Le SDK de thirdweb est l'alternative si vous voulez des portefeuilles à connexion par e-mail et du gas sponsorisé sans les construire.
- Un back-end, un bot ou un script EVM
- viem, ou ethers.js si la base de code l'utilise déjà. Dans les deux cas, louez un point d'accès RPC ou exploitez un nœud.
- Un logiciel Bitcoin uniquement avec votre propre infrastructure
- bitcoinjs-lib avec bip39 et bip32. Prévoyez d'écrire la sélection des pièces et d'exploiter ou de louer un indexeur.
- Un portefeuille, un back-end d'exchange ou une application de paiement qui détient des actifs EVM et de la famille Bitcoin
- Un SDK multi-chaînes. ChainGate si vous voulez la gestion des portefeuilles, la signature et le RPC dans un seul paquet pour Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum et Avalanche. Tatum si vous avez besoin de chaînes au-delà de ces deux familles et gérez les clés séparément.
- Une application web3.js existante
- Migrez. ethers.js est le chemin le plus court depuis les habitudes de web3.js ; viem est la meilleure cible à long terme pour le nouveau code.
12. Le même transfert en viem et en ChainGate
Les deux extraits envoient 0,01 ETH depuis une clé stockée dans une variable d'environnement. La différence tient à ce qui entoure l'appel : viem a besoin d'une URL RPC que vous payez, et la version ChainGate devient un transfert Bitcoin quand vous connectez cg.networks.bitcoin à la place.
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 BTCLes appels ChainGate sont détaillés pas à pas dans Comment envoyer des transactions crypto en JavaScript, y compris la vérification du solde avant diffusion et le modèle de frais de la famille Bitcoin.
13. Pour aller plus loin
Si les frais sont le critère qui départage les chaînes, le gas tracker compare en direct le coût des transactions sur Ethereum, Base, Arbitrum, BNB Smart Chain et 25 autres réseaux. Le tutoriel sur les transactions déroule un envoi complet dans chaque famille de chaînes. Et la page d'accueil de ChainGate donne la commande d'installation et la clé API gratuite.
Questions fréquentes
viem est-il meilleur qu'ethers.js en 2026 ?
Pour les nouveaux projets EVM, la plupart des équipes choisissent viem pour ses types TypeScript plus stricts et ses bundles plus petits. ethers.js v6 est toujours maintenu et reste le bon choix pour une base de code qui en dépend déjà ou pour un outillage qui n'expose qu'une interface ethers. Les deux sont EVM uniquement et les deux exigent que vous fournissiez un point d'accès RPC.
web3.js est-il obsolète ?
Oui. ChainSafe a mis fin à web3.js le 4 mars 2025 et archivé le dépôt le lendemain. Les paquets s'installent encore, mais il n'y a plus de versions ni de correctifs de sécurité. ChainSafe recommande de migrer vers viem ou ethers.js.
viem, ethers.js ou wagmi peuvent-ils envoyer du Bitcoin ?
Non. Les trois implémentent le protocole JSON-RPC d'Ethereum et le modèle de comptes de l'EVM. Bitcoin, Litecoin et Dogecoin utilisent des UTXO et un autre protocole, il leur faut donc bitcoinjs-lib ou un SDK multi-chaînes comme Tatum ou ChainGate.
Quel est le meilleur SDK TypeScript pour Bitcoin et Ethereum dans une même application ?
Soit vous combinez viem pour le côté EVM et bitcoinjs-lib pour Bitcoin en exploitant vos propres nœuds ou indexeurs, soit vous utilisez un seul SDK multi-chaînes. ChainGate couvre Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum et Avalanche avec les mêmes appels de portefeuille, de solde et de transfert, et inclut le RPC ; Tatum couvre plus de chaînes mais se concentre sur le RPC et les données plutôt que sur la gestion des clés.
Quels SDK blockchain incluent des points d'accès RPC ?
thirdweb, Tatum et ChainGate fournissent l'accès aux nœuds dans leurs offres. viem, ethers.js, wagmi, web3.js et bitcoinjs-lib non : vous les connectez à un fournisseur comme Alchemy, Infura ou QuickNode, à un point d'accès public limité en débit, ou à votre propre nœud.
ChainGate remplace-t-il wagmi ?
Pas pour la même tâche. wagmi connecte un front-end React aux portefeuilles que l'utilisateur possède déjà, comme MetaMask. ChainGate crée et conserve des portefeuilles dans votre application et signe en local, il convient donc aux portefeuilles, aux back-ends et aux flux de paiement ; il propose aussi des hooks React (useWallet, useUtils) pour ce modèle. Les deux peuvent coexister dans un projet.
Quels SDK blockchain TypeScript fonctionnent dans React Native ?
viem et ethers.js fonctionnent dans React Native avec les polyfills crypto et buffer habituels, et wagmi a des connecteurs React Native. bitcoinjs-lib a aussi besoin de polyfills. ChainGate annonce une prise en charge native de Node.js, du navigateur et de React Native sans polyfills. thirdweb publie un paquet React Native dédié.
ChainGate est-il gratuit ?
Le SDK s'utilise sans compte avec une petite limite de débit pour le développement, et une clé API gratuite depuis le tableau de bord la relève sans carte bancaire. Les offres payantes ajoutent du volume de requêtes, de la capacité WebSocket et des projets. Le code source est publié sur GitHub.
Construisez avec ChainGate
Mettez ces idées en pratique — ChainGate fournit wallets, transactions et RPC managé pour Ethereum et plus de 20 autres blockchains en une seule installation.