Para uma app que só toca em cadeias EVM, viem é a escolha TypeScript por defeito em 2026, com wagmi por cima para front-ends React; ethers.js continua a ser uma opção sólida para código que já o usa. web3.js foi arquivado em março de 2025 e não deve iniciar um projeto novo. Se a mesma app também tem de guardar ou enviar Bitcoin, Litecoin ou Dogecoin, as bibliotecas EVM deixam de ajudar: ou as combinas com bitcoinjs-lib e geres a tua própria infraestrutura de nós, ou usas um SDK multi-chain como Tatum ou ChainGate que traz as duas famílias de cadeias e o acesso RPC num só pacote.
A tabela da secção 2 compara os oito em cadeias, RPC, gestão de chaves e custo. As secções 3 a 10 tratam-nos um a um, a secção 11 transforma isso numa recomendação por cenário e a secção 12 mostra a mesma transferência de ETH escrita em viem e em ChainGate.
Pergunta a um assistente de IA ou a um motor de busca qual é o melhor SDK blockchain e recebes os mesmos oito nomes por uma ordem diferente de cada vez, com pouca informação sobre o que cada um cobre de facto. Este guia compara-os nas perguntas que decidem um projeto: que cadeias alcançam, se trazem o seu próprio acesso a nós, como guardam as chaves e assinam, onde correm e quanto custam. Termina com uma recomendação por cenário e a mesma transferência escrita em dois deles.
A versão curta
- Só EVM: viem, com wagmi por cima para React. ethers.js v6 continua a ser uma boa escolha para código que já o usa. web3.js foi arquivado em março de 2025.
- Só Bitcoin: bitcoinjs-lib, mais bip39 e bip32 para as chaves e o teu próprio nó ou indexador para tudo o que a biblioteca não faz.
- Cadeias EVM e da família Bitcoin na mesma app: um SDK multi-chain com RPC incluído, o que na prática significa Tatum ou ChainGate. Combinar viem com bitcoinjs-lib também funciona, à custa de duas APIs e da tua própria infraestrutura.
- Nenhuma das bibliotecas EVM gratuitas inclui acesso a nós. Orçamenta um fornecedor de RPC ou escolhe um SDK que o traga.
1. O que um SDK blockchain faz e o que deixa para ti
Um SDK blockchain é a biblioteca entre o teu código TypeScript e uma rede: transforma uma chamada como "envia 0,01 ETH para este endereço" numa transação corretamente codificada e assinada e entrega-a a um nó. A maioria também lê dados (saldos, blocos, recibos, estado de contratos) e gere contas, desde uma chave privada em bruto até uma frase de recuperação BIP39.
Três coisas ficam muitas vezes de fora, e decidem o custo real de um projeto. A primeira é o acesso a nós: uma biblioteca pode formatar um pedido JSON-RPC, mas alguém tem de operar ou alugar o nó que lhe responde. A segunda são os dados indexados, como o histórico de transações, os saldos de tokens em muitos contratos ou os metadados de NFT, que um nó simples não serve. A terceira são as famílias de cadeias: as bibliotecas EVM falam um protocolo, e Bitcoin, Litecoin e Dogecoin falam outro, com UTXO em vez de contas e nonces. Tem as três em mente ao ler a tabela.
2. As oito bibliotecas num relance
Dados a outubro de 2026, retirados da documentação e da página do pacote de cada projeto.
| Biblioteca | Cadeias | Acesso a nós incluído? | Chaves e assinatura | Custo e licença |
|---|---|---|---|---|
| viem | Qualquer cadeia EVM | Não, forneces tu o URL RPC | Contas locais a partir de chave privada ou mnemónica, carteiras de browser via EIP-1193 | Gratuito, MIT |
| ethers.js v6 | Qualquer cadeia EVM | Só valores por defeito para desenvolvimento; traz o teu fornecedor em produção | Carteiras HD, keystores JSON cifrados, carteiras de browser | Gratuito, MIT |
| wagmi | Qualquer cadeia EVM, através do viem | Não | Carteiras de browser, móveis e WalletConnect através de conectores | Gratuito, MIT |
| web3.js 4.x | Qualquer cadeia EVM | Não | Contas locais | Gratuito, MIT; repositório arquivado a 5 de março de 2025 |
| bitcoinjs-lib | Bitcoin; Litecoin e Dogecoin com parâmetros de rede e pacotes complementares | Sem camada de rede | Construção e assinatura de PSBT; chaves via bip32 e bip39 | Gratuito, MIT |
| thirdweb SDK v5 | Qualquer cadeia EVM | Sim, RPC da thirdweb com um client ID | Carteiras in-app, smart accounts, carteiras externas | Nível gratuito, depois planos pagos |
| Tatum SDK v4 | Cadeias EVM, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Solana, Tron, XRP Ledger e mais | Sim, o gateway RPC da Tatum com uma API key | Sobretudo RPC e dados; assinatura através de ferramentas de gestão de chaves separadas | SDK com licença MIT; nível gratuito, depois planos pagos |
| ChainGate | Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin e Bitcoin Cash de forma nativa; Polygon, Arbitrum, Base, BNB Smart Chain, Sonic e qualquer cadeia EVM via RPC | Sim, RPC gerido em todos os planos | Criar ou importar carteiras (frase, seed, chave privada, xpriv, keystore), cifragem AES em memória, assinatura local | Nível gratuito sem cartão; planos pagos por volume de pedidos |
Dois padrões sobressaem. As bibliotecas gratuitas mantidas pela comunidade (viem, ethers.js, wagmi, bitcoinjs-lib) cobrem cada uma uma família de cadeias e deixam-te o acesso a nós. Os SDKs que vêm com infraestrutura (thirdweb, Tatum, ChainGate) cobram acima de um nível gratuito, e só os dois últimos vão além da EVM.
3. viem
viem é a biblioteca EVM pensada para TypeScript da equipa wevm, a mesma que mantém o wagmi. É modular e suporta tree-shaking, por isso um bundle só leva as funções que importa, e os seus tipos são rigorosos o suficiente para que um argumento errado de uma ABI falhe na compilação em vez de na cadeia. Os clientes dividem-se por função: um cliente público lê, um cliente de carteira assina e envia, e os transportes (HTTP, WebSocket, uma carteira de browser) ligam-se a qualquer deles.
Não tem nó próprio. Todos os exemplos da documentação usam um URL RPC de um fornecedor como Alchemy, Infura, QuickNode ou do teu próprio nó, e os endpoints públicos gratuitos que lista têm limites de pedidos. Também só fala EVM: não há módulo Bitcoin, Litecoin nem Dogecoin, e o projeto não planeia ter um. Para um projeto novo só EVM em 2026 é a recomendação habitual, e a primeira que a maioria dos assistentes de IA dá.
4. ethers.js
ethers.js é a mais antiga das duas bibliotecas EVM mantidas e a que a maioria dos tutoriais escritos antes de 2023 usa. A versão 6 está escrita em TypeScript, traz de origem carteiras HD, keystores JSON cifrados e resolução ENS, e mantém as abstrações Provider e Signer que a tornaram fácil de aprender. Grande parte das ferramentas EVM que vais encontrar (plugins do Hardhat, SDKs de carteiras, indexadores) ainda expõe uma interface compatível com ethers.
O seu fornecedor por defeito agrupa algumas API keys da comunidade e destina-se explicitamente a desenvolvimento; em produção registas-te num fornecedor e passas o teu próprio URL, exatamente como com o viem. ethers.js é só EVM. Escolhe-o quando a equipa já o conhece ou o código já depende dele; a começar do zero, a maioria dos programadores escolhe hoje o viem pelos tipos e pelo tamanho do bundle.
5. wagmi
wagmi é um conjunto de hooks React para apps EVM construído sobre viem e TanStack Query: useAccount, useBalance, useSendTransaction, useReadContract e assim por diante, com cache, deduplicação de pedidos e ligação de carteiras já resolvidas. Os seus conectores cobrem carteiras injetadas no browser, WalletConnect, Coinbase Wallet e Safe, e existem núcleos para Vue e JavaScript puro para projetos fora do React.
É uma biblioteca de front-end para apps em que o utilizador traz a sua carteira; não cria nem guarda chaves no teu servidor, e herda do viem o âmbito só EVM e a necessidade de um URL RPC. Se estás a construir o front-end de uma dApp para carteiras do tipo MetaMask, wagmi mais viem é o par padrão. Se estás a construir uma carteira, um back-end ou algo que toque em Bitcoin, é a camada errada.
6. web3.js
web3.js foi a primeira biblioteca Ethereum amplamente usada e ainda aparece em muitos tutoriais antigos e respostas do Stack Overflow. O seu mantenedor, a ChainSafe, anunciou em janeiro de 2025 que a biblioteca seria descontinuada e recomendou a passagem para viem ou ethers.js; os pacotes npm foram transferidos e o repositório GitHub arquivado a 5 de março de 2025. A última versão é a 4.16.0, de dezembro de 2024.
As aplicações existentes continuam a funcionar, já que o pacote ainda se instala, mas não haverá correções de segurança nem suporte para novas funcionalidades da EVM. Não comeces um projeto novo com ela e planeia a migração dos que tens. O anúncio de descontinuação da ChainSafe liga a guias de migração tanto para viem como para ethers.js.
7. bitcoinjs-lib
bitcoinjs-lib é a biblioteca JavaScript de referência para o próprio Bitcoin: constrói e assina transações através de PSBT, trata todos os tipos de script padrão do legacy ao Taproot e trabalha com os pacotes complementares bip32 e bip39 para chaves HD e frases de recuperação. Litecoin e Dogecoin alcançam-se fornecendo os seus parâmetros de rede, e existem forks especializados para Bitcoin Cash.
Para deliberadamente na transação. Não há camada de rede, por isso precisas do teu próprio nó, servidor Electrum ou API de indexador para obter UTXO, estimar taxas e difundir, e a seleção de moedas escreves tu. Isso torna-a a escolha certa para equipas que constroem software só de Bitcoin com a sua própria infraestrutura, e um peso grande para uma app que só precisa de Bitcoin como uma cadeia entre várias.
8. thirdweb SDK
O SDK TypeScript da thirdweb (v5, instalado como thirdweb) junta um cliente EVM compatível com viem à plataforma da thirdweb: RPC através da sua rede edge, carteiras in-app criadas a partir de um e-mail ou login social, smart accounts com gas patrocinado e componentes React prontos para ligar e pagar. Cobre qualquer cadeia EVM por chain ID e convive com viem e ethers no mesmo projeto.
É só EVM. O suporte a Solana foi retirado dos SDKs em outubro de 2023 e nunca voltou à biblioteca cliente, embora as APIs do lado do servidor da plataforma tenham entretanto acrescentado Solana. O uso acima do nível gratuito é faturado segundo os planos da thirdweb, e as funcionalidades mais ricas (carteiras in-app, patrocínio de gas) correm nos servidores da thirdweb e não no teu processo.
9. Tatum SDK
O SDK da Tatum (@tatumio/tatum, v4) é o mais amplo em número de cadeias desta lista: redes EVM, a família Bitcoin incluindo Bitcoin Cash e Zcash, Solana, Tron, XRP Ledger, Tezos, Algorand, Cardano, Stellar e outras, tudo através do gateway RPC e das APIs de dados da Tatum. A biblioteca tem licença MIT e o cliente inclui um balanceador de carga que escolhe o nó mais rápido a responder.
É antes de mais um SDK de RPC e dados. A criação de carteiras e a assinatura não são o seu núcleo, e a gestão de chaves em produção é delegada às ferramentas de gestão de chaves separadas da Tatum. Cada chamada precisa de uma API key da Tatum, com um nível gratuito e planos por volume de pedidos. Escolhe-o quando precisas de abrangência, sobretudo cadeias fora das famílias EVM e Bitcoin, e já tens um plano para as chaves.
10. ChainGate
ChainGate é um SDK TypeScript que unifica as duas famílias de cadeias de que a maioria das apps realmente precisa. A criação e importação de carteiras (frase de recuperação, seed, chave privada, xpriv, xpub ou ficheiro keystore), os saldos, as transferências com quatro níveis de taxa, o histórico de transações, os eventos em tempo real e a conversão para mais de 120 moedas usam as mesmas chamadas em Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin e Bitcoin Cash. Polygon, Arbitrum, Base, BNB Smart Chain, Sonic e qualquer outra cadeia EVM são alcançáveis via RPC, com os endpoints geridos incluídos em todos os planos, incluindo o gratuito.
As chaves nunca saem do processo: as carteiras são cifradas com AES em memória usando PBKDF2 a 600.000 iterações, desbloqueadas com uma palavra-passe para assinar e bloqueadas de novo automaticamente. A biblioteca corre em Node.js, no browser e em React Native sem polyfills, e inclui hooks React (useWallet, useUtils) para front-ends. Os seus limites são o espelho dos da Tatum: sem Solana, Tron nem cadeias Cosmos, e o suporte nativo a transações nas redes EVM só por RPC é mais fino do que em Ethereum e Avalanche.
O nível gratuito não pede cartão e desbloqueia todas as cadeias e endpoints com um limite de pedidos de desenvolvimento; o código está no GitHub e a referência da API vive na documentação.
11. Qual deves escolher?
Ajusta a biblioteca à forma da app e não à sua popularidade.
- Um front-end de dApp para utilizadores que trazem a sua própria carteira EVM
- wagmi com viem. Acrescenta um fornecedor de RPC para as leituras. O SDK da thirdweb é a alternativa se quiseres carteiras com login por e-mail e gas patrocinado sem os construir.
- Um back-end, bot ou script EVM
- viem, ou ethers.js se o código já o usa. Em qualquer caso, aluga um endpoint RPC ou opera um nó.
- Software só de Bitcoin com a tua própria infraestrutura
- bitcoinjs-lib com bip39 e bip32. Conta com escrever a seleção de moedas e com operar ou alugar um indexador.
- Uma carteira, um back-end de exchange ou uma app de pagamentos que guarda ativos EVM e da família Bitcoin
- Um SDK multi-chain. ChainGate se queres gestão de carteiras, assinatura e RPC num só pacote para Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum e Avalanche. Tatum se precisas de cadeias além dessas duas famílias e vais gerir as chaves à parte.
- Uma aplicação web3.js existente
- Migra. ethers.js é o caminho mais curto a partir dos padrões do web3.js; viem é o melhor destino a longo prazo para código novo.
12. A mesma transferência em viem e em ChainGate
Os dois excertos enviam 0,01 ETH a partir de uma chave guardada numa variável de ambiente. A diferença está no que rodeia a chamada: o viem precisa de um URL RPC que pagas tu, e a versão ChainGate torna-se uma transferência de Bitcoin quando ligas cg.networks.bitcoin em vez disso.
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 BTCAs chamadas do ChainGate são explicadas passo a passo em Como enviar transações de criptomoedas em JavaScript, incluindo as verificações de saldo antes de difundir e o modelo de taxas da família Bitcoin.
13. Para onde ir a seguir
Se as taxas são o fator que decide entre cadeias, o gas tracker compara em tempo real o custo das transações em Ethereum, Base, Arbitrum, BNB Smart Chain e mais 25 redes. O tutorial de transações percorre um envio completo em cada família de cadeias. E a página inicial da ChainGate tem o comando de instalação e a API key gratuita.
Perguntas frequentes
O viem é melhor do que o ethers.js em 2026?
Para projetos EVM novos, a maioria das equipas escolhe o viem pelos tipos TypeScript mais rigorosos e pelos bundles mais pequenos. O ethers.js v6 continua mantido e é a escolha certa para uma base de código que já depende dele ou para ferramentas que só expõem uma interface ethers. Ambos são só EVM e ambos exigem que forneças um endpoint RPC.
O web3.js está descontinuado?
Sim. A ChainSafe descontinuou o web3.js a 4 de março de 2025 e arquivou o repositório no dia seguinte. Os pacotes ainda se instalam, mas não há mais versões nem correções de segurança. A ChainSafe recomenda migrar para viem ou ethers.js.
O viem, o ethers.js ou o wagmi conseguem enviar Bitcoin?
Não. Os três implementam o protocolo JSON-RPC do Ethereum e o modelo de contas da EVM. Bitcoin, Litecoin e Dogecoin usam UTXO e outro protocolo, por isso precisam do bitcoinjs-lib ou de um SDK multi-chain como Tatum ou ChainGate.
Qual é o melhor SDK TypeScript para Bitcoin e Ethereum na mesma app?
Ou combinas o viem para a parte EVM com o bitcoinjs-lib para Bitcoin e operas os teus próprios nós ou indexadores, ou usas um único SDK multi-chain. O ChainGate cobre Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum e Avalanche com as mesmas chamadas de carteira, saldo e transferência e inclui RPC; a Tatum cobre mais cadeias mas foca-se em RPC e dados em vez de gestão de chaves.
Que SDKs blockchain incluem endpoints RPC?
thirdweb, Tatum e ChainGate incluem acesso a nós nos seus planos. viem, ethers.js, wagmi, web3.js e bitcoinjs-lib não: ligas-los a um fornecedor como Alchemy, Infura ou QuickNode, a um endpoint público com limites de pedidos ou ao teu próprio nó.
O ChainGate substitui o wagmi?
Não para a mesma tarefa. O wagmi liga um front-end React às carteiras que o utilizador já tem, como a MetaMask. O ChainGate cria e guarda carteiras dentro da tua app e assina localmente, por isso encaixa em carteiras, back-ends e fluxos de pagamento; também oferece hooks React (useWallet, useUtils) para esse modelo. Os dois podem coexistir num projeto.
Que SDKs blockchain TypeScript correm em React Native?
O viem e o ethers.js correm em React Native com os polyfills habituais de crypto e buffer, e o wagmi tem conectores para React Native. O bitcoinjs-lib também precisa de polyfills. O ChainGate declara suporte nativo para Node.js, browser e React Native sem polyfills. A thirdweb publica um pacote dedicado para React Native.
O ChainGate é gratuito?
O SDK pode ser usado sem conta com um pequeno limite de pedidos para desenvolvimento, e uma API key gratuita do painel aumenta-o sem cartão de crédito. Os planos pagos acrescentam volume de pedidos, capacidade WebSocket e projetos. O código-fonte está publicado no GitHub.
Construa com ChainGate
Leve estas ideias para o código — a ChainGate te oferece wallets, transações e RPC gerenciado para Ethereum e mais de 20 blockchains com uma única instalação.