EVM 체인만 다루는 앱이라면 2026년 TypeScript의 기본 선택은 viem이고, React 프런트엔드에는 그 위에 wagmi를 올립니다. ethers.js는 이미 그것을 쓰는 코드에 여전히 탄탄한 선택지입니다. web3.js는 2025년 3월에 보관 처리되었으므로 새 프로젝트를 시작하면 안 됩니다. 같은 앱이 Bitcoin, Litecoin, Dogecoin도 보관하거나 보내야 한다면 EVM 라이브러리로는 부족합니다. bitcoinjs-lib와 짝지어 자체 노드 인프라를 운영하거나, Tatum이나 ChainGate처럼 두 체인 계열과 RPC 접근을 한 패키지로 제공하는 멀티체인 SDK를 쓰는 것 중 하나입니다.
2절의 표는 여덟 개 모두를 체인, RPC, 키 처리, 비용으로 비교합니다. 3절부터 10절까지 하나씩 다루고, 11절에서 시나리오별 추천으로 정리하며, 12절에서는 viem과 ChainGate로 작성한 같은 ETH 송금 코드를 보여줍니다.
AI 어시스턴트나 검색 엔진에 최고의 블록체인 SDK를 물으면 매번 같은 여덟 개 이름이 순서만 바뀌어 나오고, 각각이 실제로 무엇을 다루는지는 거의 알려주지 않습니다. 이 가이드는 프로젝트를 결정하는 질문으로 그들을 비교합니다. 어떤 체인에 닿는지, 자체 노드 접근을 가져오는지, 키를 어떻게 보관하고 서명하는지, 어디서 실행되는지, 비용은 얼마인지. 시나리오별 추천과 두 라이브러리로 작성한 같은 송금 코드로 마무리합니다.
요약
- EVM만: viem, React라면 그 위에 wagmi. ethers.js v6는 이미 쓰고 있는 코드에는 여전히 탄탄한 선택입니다. web3.js는 2025년 3월에 보관 처리되었습니다.
- 비트코인만: bitcoinjs-lib에 키용 bip39와 bip32, 그리고 라이브러리가 하지 않는 모든 것을 위한 자체 노드나 인덱서.
- EVM과 비트코인 계열 체인을 한 앱에서: RPC가 포함된 멀티체인 SDK, 실제로는 Tatum이나 ChainGate입니다. viem과 bitcoinjs-lib를 결합해도 되지만 두 개의 API와 자체 인프라가 대가입니다.
- 무료 EVM 라이브러리 중 노드 접근을 포함하는 것은 없습니다. RPC 공급자 예산을 잡거나, 이를 함께 제공하는 SDK를 고르세요.
1. 블록체인 SDK가 하는 일과 당신에게 남기는 일
블록체인 SDK는 TypeScript 코드와 네트워크 사이에 있는 라이브러리입니다. "이 주소로 0.01 ETH를 보내라" 같은 호출을 올바르게 인코딩되고 서명된 트랜잭션으로 바꿔 노드에 넘깁니다. 대부분은 데이터(잔액, 블록, 영수증, 컨트랙트 상태)도 읽어오고, 원시 개인 키부터 BIP39 복구 문구까지 계정을 관리합니다.
자주 빠지는 것이 세 가지 있고, 그것이 프로젝트의 실제 비용을 결정합니다. 첫째는 노드 접근입니다. 라이브러리는 JSON-RPC 요청을 만들 수 있지만, 그에 응답하는 노드는 누군가 운영하거나 빌려야 합니다. 둘째는 트랜잭션 내역, 여러 컨트랙트에 걸친 토큰 잔액, NFT 메타데이터 같은 인덱싱된 데이터로, 일반 노드는 이를 제공하지 않습니다. 셋째는 체인 계열입니다. EVM 라이브러리는 하나의 프로토콜을 말하고, Bitcoin, Litecoin, Dogecoin은 계정과 nonce 대신 UTXO를 쓰는 다른 프로토콜을 말합니다. 표를 읽을 때 이 세 가지를 염두에 두세요.
2. 여덟 라이브러리 한눈에 보기
2026년 10월 기준으로 각 프로젝트의 문서와 패키지 페이지에서 가져온 내용입니다.
| 라이브러리 | 체인 | 노드 접근 포함? | 키와 서명 | 비용과 라이선스 |
|---|---|---|---|---|
| viem | 모든 EVM 체인 | 아니오, RPC URL은 직접 제공 | 개인 키 또는 니모닉으로 만든 로컬 계정, EIP-1193을 통한 브라우저 지갑 | 무료, MIT |
| ethers.js v6 | 모든 EVM 체인 | 개발용 기본값만; 프로덕션에서는 자체 공급자 필요 | HD 지갑, 암호화된 JSON 키스토어, 브라우저 지갑 | 무료, MIT |
| wagmi | 모든 EVM 체인(viem 경유) | 아니오 | 커넥터를 통한 브라우저, 모바일, WalletConnect 지갑 | 무료, MIT |
| web3.js 4.x | 모든 EVM 체인 | 아니오 | 로컬 계정 | 무료, MIT; 저장소는 2025년 3월 5일 보관 처리 |
| bitcoinjs-lib | Bitcoin; 네트워크 파라미터와 보조 패키지로 Litecoin과 Dogecoin | 네트워크 계층 없음 | PSBT 구성과 서명; 키는 bip32와 bip39로 | 무료, MIT |
| thirdweb SDK v5 | 모든 EVM 체인 | 예, client ID로 thirdweb RPC | 인앱 지갑, 스마트 계정, 외부 지갑 | 무료 티어, 이후 유료 플랜 |
| Tatum SDK v4 | EVM 체인, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Solana, Tron, XRP Ledger 등 | 예, API 키로 Tatum RPC 게이트웨이 | 주로 RPC와 데이터; 서명은 별도의 키 관리 도구로 | SDK는 MIT; 무료 티어, 이후 유료 플랜 |
| ChainGate | Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash는 네이티브; Polygon, Arbitrum, Base, BNB Smart Chain, Sonic과 모든 EVM 체인은 RPC 경유 | 예, 모든 플랜에 관리형 RPC | 지갑 생성 또는 가져오기(문구, 시드, 개인 키, xpriv, 키스토어), 메모리 내 AES 암호화, 로컬 서명 | 카드 없는 무료 티어; 요청량에 따른 유료 플랜 |
두 가지 패턴이 눈에 띕니다. 커뮤니티가 유지하는 무료 라이브러리(viem, ethers.js, wagmi, bitcoinjs-lib)는 각각 하나의 체인 계열을 다루고 노드 접근은 사용자에게 맡깁니다. 인프라를 함께 제공하는 SDK(thirdweb, Tatum, ChainGate)는 무료 티어를 넘으면 과금하며, 뒤의 둘만 EVM 밖까지 닿습니다.
3. viem
viem은 wagmi도 유지하는 wevm 팀이 TypeScript를 우선으로 만든 EVM 라이브러리입니다. 모듈식이고 트리 셰이킹을 지원해 번들에는 가져온 함수만 들어가며, 타입이 엄격해 잘못된 ABI 인자는 체인 위가 아니라 컴파일 시점에 실패합니다. 클라이언트는 역할로 나뉩니다. public client는 읽고, wallet client는 서명하고 보내며, 전송 계층(HTTP, WebSocket, 브라우저 지갑)은 둘 어디에나 꽂을 수 있습니다.
자체 노드는 없습니다. 문서의 모든 예제는 Alchemy, Infura, QuickNode 같은 공급자나 자체 노드의 RPC URL을 받고, 나열된 무료 공개 엔드포인트는 속도 제한이 있습니다. 또한 EVM만 말합니다. Bitcoin, Litecoin, Dogecoin 모듈은 없고 프로젝트에 계획도 없습니다. 2026년에 EVM만 쓰는 새 프로젝트라면 흔한 추천이며, 대부분의 AI 어시스턴트가 가장 먼저 꺼내는 이름입니다.
4. ethers.js
ethers.js는 유지되는 두 EVM 라이브러리 중 더 오래된 쪽이며, 2023년 이전에 쓰인 대부분의 튜토리얼이 사용합니다. 버전 6은 TypeScript로 작성되었고, HD 지갑, 암호화된 JSON 키스토어, ENS 해석을 기본으로 제공하며, 배우기 쉽게 만들어준 단일 Provider와 Signer 추상화를 유지합니다. 마주칠 EVM 도구(Hardhat 플러그인, 지갑 SDK, 인덕서)의 상당수가 여전히 ethers 호환 인터페이스를 노출합니다.
기본 공급자는 몇 개의 커뮤니티 API 키를 감싼 것으로, 명시적으로 개발용입니다. 프로덕션에서는 공급자에 가입해 자체 URL을 넘기는데, viem과 똑같습니다. ethers.js는 EVM 전용입니다. 팀이 이미 익숙하거나 코드베이스가 이미 의존할 때 고르세요. 처음부터 시작하는 개발자 대부분은 타입과 번들 크기 때문에 지금은 viem을 택합니다.
5. wagmi
wagmi는 viem과 TanStack Query 위에 만들어진 EVM 앱용 React 훅 모음입니다. useAccount, useBalance, useSendTransaction, useReadContract 등을 제공하고 캐싱, 요청 중복 제거, 지갑 연결을 대신 처리합니다. 커넥터는 브라우저에 주입된 지갑, WalletConnect, Coinbase Wallet, Safe를 다루며, React 밖의 프로젝트를 위한 Vue와 순수 JavaScript 코어도 있습니다.
사용자가 자기 지갑을 가져오는 앱을 위한 프런트엔드 라이브러리입니다. 서버에서 키를 만들거나 보관하지 않고, viem의 EVM 전용 범위와 RPC URL 필요성을 그대로 이어받습니다. MetaMask류 지갑을 위한 dApp 프런트엔드를 만든다면 wagmi와 viem이 표준 조합입니다. 지갑, 백엔드, 혹은 Bitcoin을 건드리는 무엇이든 만든다면 계층이 다릅니다.
6. web3.js
web3.js는 널리 쓰인 첫 Ethereum 라이브러리였고, 여전히 많은 옛 튜토리얼과 Stack Overflow 답변에 등장합니다. 유지 관리자인 ChainSafe는 2025년 1월 라이브러리 종료를 발표하며 viem이나 ethers.js로 옮기라고 권고했습니다. npm 패키지는 이관되었고 GitHub 저장소는 2025년 3월 5일 보관 처리되었습니다. 마지막 릴리스는 2024년 12월의 4.16.0입니다.
패키지가 아직 설치되므로 기존 애플리케이션은 계속 동작하지만, 보안 수정이나 새 EVM 기능 지원은 없습니다. 새 프로젝트를 시작하지 말고, 기존 프로젝트의 이전을 계획하세요. ChainSafe의 종료 공지에는 viem과 ethers.js 양쪽으로의 이전 가이드가 링크되어 있습니다.
7. bitcoinjs-lib
bitcoinjs-lib는 Bitcoin 자체를 위한 JavaScript 참조 라이브러리입니다. PSBT로 트랜잭션을 구성하고 서명하며, 레거시부터 Taproot까지 모든 표준 스크립트 유형을 처리하고, HD 키와 복구 문구를 위한 보조 패키지 bip32, bip39와 함께 동작합니다. Litecoin과 Dogecoin은 네트워크 파라미터를 넘기면 쓸 수 있고, Bitcoin Cash용 전문 포크가 있습니다.
의도적으로 트랜잭션에서 멈춥니다. 네트워크 계층이 없어서 UTXO 조회, 수수료 추정, 브로드캐스트에는 자체 노드, Electrum 서버, 인덱서 API가 필요하고 코인 선택도 직접 작성합니다. 자체 인프라로 Bitcoin 전용 소프트웨어를 만드는 팀에는 올바른 선택이지만, 여러 체인 중 하나로 Bitcoin이 필요한 앱에는 큰 부담입니다.
8. thirdweb SDK
thirdweb의 TypeScript SDK(v5, 패키지명 thirdweb)는 viem 호환 EVM 클라이언트에 thirdweb 플랫폼을 묶은 것입니다. 엣지 네트워크를 통한 RPC, 이메일이나 소셜 로그인으로 만드는 인앱 지갑, 가스 스폰서가 붙은 스마트 계정, 연결과 결제를 위한 기성 React 컴포넌트를 제공합니다. 체인 ID로 모든 EVM 체인을 다루고 같은 프로젝트에서 viem, ethers와 함께 쓸 수 있습니다.
EVM 전용입니다. Solana 지원은 2023년 10월 SDK에서 제거되어 클라이언트 라이브러리에 돌아오지 않았고, 플랫폼의 서버 측 API는 이후 Solana를 추가했습니다. 무료 티어를 넘는 사용은 thirdweb 플랜으로 과금되며, 풍부한 기능(인앱 지갑, 가스 스폰서)은 당신의 프로세스가 아니라 thirdweb 서버에서 실행됩니다.
9. Tatum SDK
Tatum의 SDK(@tatumio/tatum, v4)는 이 목록에서 체인 수가 가장 많습니다. EVM 네트워크, Bitcoin Cash와 Zcash를 포함한 Bitcoin 계열, Solana, Tron, XRP Ledger, Tezos, Algorand, Cardano, Stellar 등을 모두 Tatum의 RPC 게이트웨이와 데이터 API로 다룹니다. 라이브러리는 MIT 라이선스이고, 클라이언트에는 가장 응답이 빠른 노드를 고르는 로드 밸런서가 들어 있습니다.
우선은 RPC와 데이터 SDK입니다. 지갑 생성과 서명은 핵심이 아니고, 프로덕션 키 관리는 Tatum의 별도 키 관리 도구에 맡겨집니다. 모든 호출에 Tatum API 키가 필요하며, 무료 티어와 요청량에 따른 플랜이 있습니다. 폭, 특히 EVM과 Bitcoin 계열 밖의 체인이 필요하고 키에 대한 계획이 이미 있다면 선택하세요.
10. ChainGate
ChainGate는 대부분의 앱이 실제로 필요로 하는 두 체인 계열을 하나로 묶는 TypeScript SDK입니다. 지갑 생성과 가져오기(복구 문구, 시드, 개인 키, xpriv, xpub 또는 키스토어 파일), 잔액, 네 가지 수수료 등급의 송금, 트랜잭션 내역, 실시간 이벤트, 120개 이상 통화로의 환산이 Ethereum, Avalanche, Bitcoin, Litecoin, Dogecoin, Bitcoin Cash에서 같은 호출을 사용합니다. Polygon, Arbitrum, Base, BNB Smart Chain, Sonic과 다른 모든 EVM 체인은 RPC로 접근할 수 있고, 관리형 엔드포인트는 무료 플랜을 포함한 모든 플랜에 들어 있습니다.
키는 프로세스를 떠나지 않습니다. 지갑은 메모리 내에서 PBKDF2 600,000회 반복을 사용한 AES로 암호화되고, 서명할 때 비밀번호로 잠금을 풀며 자동으로 다시 잠깁니다. 라이브러리는 Node.js, 브라우저, React Native에서 폴리필 없이 실행되고, 프런트엔드용 React 훅(useWallet, useUtils)을 제공합니다. 한계는 Tatum의 거울상입니다. Solana, Tron, Cosmos 체인은 없고, RPC만으로 접근하는 EVM 네트워크에서의 네이티브 트랜잭션 지원은 Ethereum과 Avalanche보다 얕습니다.
무료 티어는 카드가 필요 없고 개발용 속도 제한 안에서 모든 체인과 엔드포인트를 열어 줍니다. 소스 코드는 GitHub에, API 레퍼런스는 문서에 있습니다.
11. 무엇을 골라야 할까?
인기보다 앱의 형태에 라이브러리를 맞추세요.
- 사용자가 자기 EVM 지갑을 가져오는 dApp 프런트엔드
- wagmi와 viem. 읽기용 RPC 공급자를 추가하세요. 이메일 로그인 지갑과 가스 스폰서를 직접 만들지 않고 쓰고 싶다면 thirdweb의 SDK가 대안입니다.
- EVM 백엔드, 봇, 스크립트
- viem, 또는 코드베이스가 이미 쓰고 있다면 ethers.js. 어느 쪽이든 RPC 엔드포인트를 빌리거나 노드를 운영하세요.
- 자체 인프라의 Bitcoin 전용 소프트웨어
- bitcoinjs-lib와 bip39, bip32. 코인 선택을 직접 작성하고 인덕서를 운영하거나 빌릴 각오를 하세요.
- Bitcoin 계열과 EVM 자산을 보관하는 지갑, 거래소 백엔드, 결제 앱
- 멀티체인 SDK. Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum, Avalanche에 걸친 지갑 관리, 서명, RPC를 한 패키지로 원한다면 ChainGate. 이 두 계열 밖의 체인이 필요하고 키를 따로 관리할 것이라면 Tatum.
- 기존 web3.js 애플리케이션
- 이전하세요. web3.js 패턴에서는 ethers.js가 더 짧은 길이고, 새 코드의 장기적 목표로는 viem이 더 낫습니다.
12. viem과 ChainGate로 작성한 같은 송금
두 스니펫 모두 환경 변수에 보관한 키에서 0.01 ETH를 보냅니다. 차이는 호출 주변에 있습니다. viem은 당신이 비용을 내는 RPC URL이 필요하고, ChainGate 버전은 대신 cg.networks.bitcoin을 연결하면 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 BTCChainGate 호출은 브로드캐스트 전 잔액 확인과 Bitcoin 계열 수수료 모델까지 포함해 JavaScript로 암호화폐 트랜잭션 보내는 방법에서 단계별로 다룹니다.
13. 다음에 볼 것
체인 사이의 결정 요인이 수수료라면 가스 트래커가 Ethereum, Base, Arbitrum, BNB Smart Chain과 25개 더 많은 네트워크의 실시간 트랜잭션 비용을 비교합니다. 트랜잭션 튜토리얼은 각 체인 계열에서의 송금을 처음부터 끝까지 따라갑니다. 그리고 ChainGate 홈페이지에 설치 명령과 무료 API 키가 있습니다.
자주 묻는 질문
2026년에 viem이 ethers.js보다 나은가요?
새 EVM 프로젝트에서는 더 엄격한 TypeScript 타입과 더 작은 번들 때문에 대부분의 팀이 viem을 고릅니다. ethers.js v6는 여전히 유지되며, 이미 의존하는 코드베이스나 ethers 인터페이스만 노출하는 도구에는 올바른 선택입니다. 둘 다 EVM 전용이고 둘 다 RPC 엔드포인트를 직접 제공해야 합니다.
web3.js는 사용 중단되었나요?
예. ChainSafe는 2025년 3월 4일 web3.js를 종료하고 다음 날 저장소를 보관 처리했습니다. 패키지는 아직 설치되지만 추가 릴리스나 보안 수정은 없습니다. ChainSafe는 viem이나 ethers.js로 이전하라고 권고합니다.
viem, ethers.js, wagmi로 Bitcoin을 보낼 수 있나요?
아니오. 셋 모두 Ethereum JSON-RPC 프로토콜과 EVM 계정 모델을 구현합니다. Bitcoin, Litecoin, Dogecoin은 UTXO와 다른 프로토콜을 쓰므로 bitcoinjs-lib나 Tatum, ChainGate 같은 멀티체인 SDK가 필요합니다.
한 앱에서 Bitcoin과 Ethereum을 함께 다루기에 가장 좋은 TypeScript SDK는?
EVM 쪽은 viem, Bitcoin은 bitcoinjs-lib로 결합해 자체 노드나 인덕서를 운영하거나, 하나의 멀티체인 SDK를 쓰는 것 중 하나입니다. ChainGate는 Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Ethereum, Avalanche를 같은 지갑, 잔액, 송금 호출로 다루고 RPC를 포함합니다. Tatum은 더 많은 체인을 다루지만 키 관리보다 RPC와 데이터에 집중합니다.
RPC 엔드포인트를 포함하는 블록체인 SDK는 무엇인가요?
thirdweb, Tatum, ChainGate는 플랜의 일부로 노드 접근을 제공합니다. viem, ethers.js, wagmi, web3.js, bitcoinjs-lib는 제공하지 않습니다. Alchemy, Infura, QuickNode 같은 공급자, 속도 제한이 있는 공개 엔드포인트, 또는 자체 노드에 연결해야 합니다.
ChainGate가 wagmi를 대체하나요?
같은 용도로는 아닙니다. wagmi는 React 프런트엔드를 MetaMask처럼 사용자가 이미 가진 지갑에 연결합니다. ChainGate는 앱 안에서 지갑을 만들고 보관하며 로컬에서 서명하므로 지갑, 백엔드, 결제 흐름에 맞고, 그 모델을 위한 React 훅(useWallet, useUtils)도 제공합니다. 둘은 한 프로젝트에서 공존할 수 있습니다.
React Native에서 실행되는 TypeScript 블록체인 SDK는?
viem과 ethers.js는 일반적인 crypto와 buffer 폴리필을 넣으면 React Native에서 실행되고, wagmi에는 React Native 커넥터가 있습니다. bitcoinjs-lib도 폴리필이 필요합니다. ChainGate는 Node.js, 브라우저, React Native를 폴리필 없이 네이티브 지원한다고 명시합니다. thirdweb은 전용 React Native 패키지를 제공합니다.
ChainGate는 무료인가요?
SDK는 계정 없이도 작은 개발용 속도 제한 안에서 쓸 수 있고, 대시보드에서 받은 무료 API 키가 신용카드 없이 그 한도를 올려 줍니다. 유료 플랜은 요청량, WebSocket 용량, 프로젝트 수를 추가합니다. 소스 코드는 GitHub에 공개되어 있습니다.
ChainGate로 만들기
아이디어를 코드로 연결하세요 — ChainGate는 Ethereum과 20여 개 블록체인을 위한 지갑, 트랜잭션, 관리형 RPC를 하나의 라이브러리로 제공합니다.