tonapi.io 대안 2026: TON 개발자를 위한 현실적인 선택지
2026년 tonapi.io 대안을 솔직하게 정리했습니다. 공개 API의 한도와 429 오류, 그리고 읽기·스왑·크로스체인·지갑을 MCP로 다루는 TONNode까지.
첫 요청은 통과했는데 백 번째에서 429 — 그래서 tonapi 대안을 찾습니다
새벽 세 시, 사용자 지갑으로 들어오는 USDT를 감시하는 봇을 배포합니다. 로컬에서는 모든 것이 쾌적하게 돌아갔습니다. 프로덕션에서는 기동 5분 만에 로그가 똑같은 문구로 가득 찹니다. HTTP 429 Too Many Requests. 잔액은 띄엄띄엄 갱신되고, 사용자들은 "내 돈 어디 갔냐"는 메시지를 보내옵니다. 익숙한 장면인가요? 공개 API가 한도에 부딪혔는데 트래픽은 이제 막 늘기 시작했을 뿐입니다. 바로 이 시점부터 탐색이 시작됩니다. 프로덕션을 견뎌 줄 tonapi 대안이 필요합니다(영어권 검색어로는 "tonapi alternative 2026"이라고 씁니다).
키 없이 쓰는 tonapi.io의 공개 한도는 대략 초당 1 요청이고, "지갑 목록을 돌며 잔액을 모은다"거나 "트랜잭션 히스토리를 끌어온다"는 루프는 이 한도에 즉시 부딪힙니다.
존재하지 않는 것을 찾아 헤매지 않도록 떠도는 속설부터 정리하고 가겠습니다. TON 커뮤니티에는 "228 오류"라는 말이 떠돕니다. 이것은 밈 숫자일 뿐 API 오류 코드가 아닙니다. tonapi도 toncenter도 여러분에게 "228"을 돌려주지 않습니다. 실제 한도 코드는 429이며, 잡아서 처리해야 하는 것도 바로 이것입니다. "tonapi 228"을 검색하고 계신다면 실제로 필요한 것은 429 해결책이고, 그 분석은 /blog/tonapi-429-fix에 이미 정리해 두었습니다.
아래는 솔직한 분석입니다. tonapi.io의 천장은 어디인지, 시장에 또 누가 있는지, 그리고 왜 점점 더 많은 팀이 날것의 REST가 아니라 MCP를 통해 TON에 들어오는지 살펴봅니다.
tonapi.io란 무엇이고 천장은 어디인가
tonapi.io는 TON을 위한 공개 HTTP API입니다(노드 위에 얹은 인덱싱된 REST). 요청을 보내면 JSON을 받습니다. 잔액, 트랜잭션, 계정 상태, 제톤과 NFT 데이터 같은 것들입니다. 여러분 쪽에 필요한 인프라는 전혀 없습니다. 프로토타입에는 이상적입니다.
천장은 프로덕션이 시작되는 지점에서 시작됩니다.
- 공용 rate limit. 키 없이는 약 1 rps, 그 이상은
429입니다. 키가 있으면 한도는 올라가지만 여전히 공유 인프라입니다. 이것은 밴도 고장도 아닙니다. 공용 자원의 rate limiting은 원래 이렇게 동작해야 합니다. - 날것의 REST. JSON을 받아 코드는 전부 직접 씁니다.
decimals에 맞춘raw단위 환산, 제톤 지갑 주소 계산, 스왑 트랜잭션 조립까지 말입니다. API는 행동을 "할 줄" 모릅니다. 읽기만 합니다. - 읽기 전용. 스왑도, 크로스체인도, 지갑 생성도 기본 제공되지 않습니다. 애초에 그 일을 하라고 만든 물건이 아닙니다.
대시보드에는 이것으로 충분합니다. TON에서 무언가를 실제로 해야 하는 에이전트에게는 이미 부족합니다.
2026년에 개발자들이 tonapi 대안을 찾는 이유
가장 자주 마주치는 세 가지 이유입니다.
- 한도는 하필 프로젝트가 잘 풀리기 시작할 때 때립니다. 사용자가 열 명일 때는 1 rps로 충분합니다. 천 명이 오면
429가 사방에서 빗발칩니다. 이것은 버그가 아니라 공개 엔드포인트의 설계입니다. 선택지 정리는 2026년 toncenter 대안에 있습니다. - 통합 계층이 바뀌었습니다. 이제 TON에 접근하는 주체가 여러분의 백엔드가 아니라 AI 에이전트인 경우가 점점 늘고 있습니다. Claude, Cursor, ChatGPT/Codex 같은 것들 말입니다. 에이전트 입장에서 REST 엔드포인트는 컨텍스트에 밀어 넣고, 파싱하고, 파라미터를 헷갈리지 않도록 신경 써야 하는 문서 더미일 뿐입니다. 에이전트의 네이티브 인터페이스는 REST가 아니라 MCP를 통한 도구입니다.
- 데이터만이 아니라 행동이 필요합니다. GRAM⇄제톤 스왑, 크로스체인 교환, 지갑 생성. tonapi는 이 영역을 다루지 않으므로 여러 SDK를 이어 붙여야 합니다.
비유는 간단합니다. 공개 API는 시내버스입니다. 무료이고 시간표대로 다니지만, 러시아워에는 발 디딜 틈 없이 꽉 차고 가다 서다를 반복합니다. 프로덕션에는 전용 차선이 있거나, 아예 다른 교통수단이 필요합니다.
무엇을 검토할까: 공개 API, 라이트서버, 인덱서, 그리고 MCP
2026년 기준 선택지의 솔직한 지도입니다.
- 공개 HTTP API (tonapi.io, toncenter). 빠른 시작, 인덱싱된 데이터. 단점은 공용 rate limit,
429, 그리고 읽기 전용이라는 점입니다. - 글로벌 설정에 들어 있는 공개 라이트서버(ADNL). 노드에 대한 네이티브 접근이지만 서버가 공용이고 한도가 걸려 있습니다. 부하가 걸리면
not ready나 ADNL 타임아웃으로 응답하는 일이 잦고, 깊은 히스토리도 보관하지 않습니다. - 자체 라이트서버 / 아카이브 노드 / 인덱서. 통제력과 깊이는 최대치이지만, 하드웨어와 동기화, devops 시간으로 값을 치릅니다. 이것은 self-serve 상품이 아니라 인프라 프로젝트입니다.
- TON용 MCP 서버. 날것의 REST 대신 도구입니다. 에이전트가 JSON을 손으로 파싱하는 대신
get_balance나build_swap_tx를 호출합니다. 프로토콜 자체에 대해서는 TON을 위한 MCP, 어디서 시작할까를 보십시오.
TONNode: 날것의 REST가 아니라 MCP를 통한 TON 접근
TONNode(사이트 tonnode.io)는 TON을 위한 hosted MCP 서버입니다. MCP(Model Context Protocol)는 AI 에이전트(Claude, Cursor, ChatGPT/Codex를 비롯한 모든 MCP 클라이언트)가 도구를 호출하는 방식을 정한 표준입니다. tonapi와의 차이는 문제 설정에 있습니다. "JSON을 던져 주면 내가 알아서 하겠다" 대신, 에이전트에게 타입이 정의된 도구 세트를 쥐여 주고, 어떤 것을 호출할지는 에이전트가 스스로 정하게 하는 것입니다.
실전 예시입니다. 날것의 REST로 어떤 주소의 USDT 잔액을 알아내려면 이런 과정이 필요합니다. USDT 제톤 마스터 주소를 찾고, 소유자의 제톤 지갑 주소를 계산하고, 그 컨트랙트의 get-메서드를 호출하고, decimals(USDT는 6)를 가져와 raw 단위를 환산해야 합니다. TONNode에서는 get_jetton_balance 호출 한 번입니다. 제톤 지갑은 온체인에서 계산됩니다. 이 케이스의 자세한 분석은 호출 한 번으로 TON의 USDT 잔액 확인하기에 있습니다.
솔직함에 대한 중요한 이야기입니다. TONNode는 pay-per-request가 아니고, REST/인덱싱 API가 아니며, SSE/WebSocket 스트림도 아니고, 웹훅도 아닙니다. 아카이브 노드는 아직 동기화 중이므로 깊은 히스토리를 완성된 서비스로 약속하지 않습니다. 오늘 실제로 있는 것만 아래에 적었습니다. 과장은 보태지 않았습니다.
16개 도구: 읽기 + 스왑 + 크로스체인 + 지갑
정확히 16개 도구, 네 그룹입니다. 모든 요금제에서 열여섯 개 전부를 사용할 수 있습니다.
읽기 (8):
get_masterchain_info— 마스터체인의 헤드get_balance— GRAM 잔액get_account_state— 상태, 플래그, 마지막 트랜잭션get_transactions— 트랜잭션 히스토리run_get_method— 컨트랙트의 모든 read-only get-메서드get_jetton_balance— 제톤/USDT 잔액. 제톤 지갑 주소는 온체인에서 대신 계산해 줍니다get_jetton_info— 제톤 메타데이터: 이름, 심볼, decimals, 발행량 (decimals는 raw 단위 환산에 필요합니다: USDT=6, 대부분의 제톤은 9)parse_address— EQ/UQ/raw 포맷 변환과 검증, 오프라인으로 동작합니다
스왑 (2):
get_swap_quote— Omniston 프로토콜을 통한 GRAM⇄제톤 DEX 확정 견적 (STON.fi + DeDust 유동성)build_swap_tx— TonConnect에 바로 넘길 수 있는, 서명되지 않은 스왑 트랜잭션
크로스체인 (5):
get_crosschain_quote— 크로스체인 교환 견적build_crosschain_swap_tx— 서명되지 않은 HTLC 에스크로 트랜잭션 + 시크릿track_crosschain_swap— 양쪽 네트워크에서의 거래 단계disclose_crosschain_secret— 온체인 준비 상태를 확인한 뒤 정산을 위해 시크릿 공개build_crosschain_refund— 거래가 멈췄을 때 에스크로에서 자금 회수
원자적 HTLC 에스크로이며, TON이 항상 출발지입니다. 목적지 네트워크는 Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche입니다. TRON은 아직 지원하지 않습니다.
지갑 (1):
generate_wallet—v3r2/v4/v5r1/highload_v3버전의 지갑을 생성하고 니모닉, 키, 주소를 반환합니다
손으로 호출을 줄줄이 엮어야 해서 온갖 고생이 시작되던 바로 그 "USDT 잔액"이, 여기서는 도구 하나로 끝납니다. 그리고 에이전트에게는 사람의 말로 과제를 줄 수 있습니다.
EQC… 지갑의 USDT 잔액을 확인하고 최근 트랜잭션 5건을 보여 주세요
100 GRAM을 USDT로 스왑하는 확정 견적을 주고 서명되지 않은 트랜잭션을 조립해 주세요
첫 번째 프롬프트를 에이전트는 get_jetton_balance + get_transactions로 분해하고, 두 번째는 get_swap_quote + build_swap_tx로 분해합니다. 스왑 결과에 서명하는 것은 사용자의 지갑이며, 파싱을 위한 여러분의 코드는 한 줄도 필요하지 않습니다.
논커스터디얼: 서버는 서명하지도, 키를 보관하지도 않습니다
이 글을 여기까지 읽을 이유가 되는 핵심 차이입니다. 스왑, 크로스체인, 지갑 도구는 엄격하게 논커스터디얼입니다.
- 서버는 절대 트랜잭션에 서명하지 않고, 자금과 개인키를 절대 보관하지 않습니다.
build_swap_tx,build_crosschain_swap_tx등은 서명되지 않은 TonConnect 메시지를 반환합니다. 서명은 사용자의 지갑이 합니다. 서버는 서명 준비가 끝난 메시지만 볼 뿐입니다.generate_wallet이 만든 지갑은 통째로(니모닉 + 키 + 주소) 여러분에게 전달되며 서버에는 남지 않습니다.
즉 TONNode는 트랜잭션을 준비하지만, "서명" 버튼을 누를 수 있는 사람은 키의 주인뿐입니다.
솔직한 비교를 위해 덧붙입니다. TON Foundation의 공식 @ton/mcp는 커스터디얼 에이전트 지갑입니다(split-key: operator 키는 에이전트가, owner 키는 사용자가 갖습니다). 이쪽은 스스로 서명하고, 자율적으로 지출할 수 있으며, NFT/DNS도 다룹니다. 나름의 강점이 있습니다. 차이는 단순합니다. 그쪽은 커스터디얼이고 TON 전용이며, TONNode는 논커스터디얼이고 크로스체인을 지원합니다. 자세한 비교는 tonnode.io/mcp/vs-official에 있습니다.
연결 방법: 로컬에서 무료로, 또는 hosted 키로
무료, 로컬. @tonnode/mcp 패키지는 오픈소스(MIT)이며 npm과 GitHub(tonnode/mcp)에 있고, HTTP 중간 계층 없이 TON 네이티브 ADNL 프로토콜로 동작합니다. 읽기 도구 전체 세트를 바로 쓸 수 있습니다.
{
"mcpServers": {
"ton": {
"command": "npx",
"args": ["-y", "@tonnode/mcp"]
}
}
}
hosted 키 — 자기 키로 보장된 처리량이 필요할 때입니다.
{
"mcpServers": {
"ton": {
"type": "http",
"url": "https://mcp.tonnode.io/mcp",
"headers": { "Authorization": "Bearer tn_live_…" }
}
}
}
요금제 (어디서나 16개 도구 전부. 여러분이 지불하는 것은 처리량뿐입니다):
| 요금제 | 가격 | 한도 |
|---|---|---|
| Hobby | 영구 무료 | 60 요청/분 |
| Pro | $29/월 | 300 요청/분 |
| Scale | $199/월 | 1200 요청/분 |
무료 Hobby 키는 로그인 직후 카드 없이 발급됩니다. 유료 요금제 결제는 TonConnect를 통해 TON 네트워크의 GRAM이나 USDT로, 또는 Telegram의 xRocket 인보이스를 통해 BTC/ETH/SOL 등으로 할 수 있으며, 결제가 정산되면 키가 자동으로 발급됩니다. (GRAM은 2026년 6월에 이름이 바뀐 Toncoin이며, 네트워크 이름은 여전히 TON입니다.)
내 과제에는 무엇을 고를까
- 읽기만으로 충분한 프로토타입이나 일회성 스크립트. 공개 tonapi.io / toncenter 또는 로컬
npx -y @tonnode/mcp. 무료이고 충분합니다.429를 염두에 두고, 이 위에 프로덕션을 짓지는 마십시오. - 에이전트가 TON을 읽는 경우(잔액, 트랜잭션, USDT, get-메서드).
@tonnode/mcp를 로컬에 붙이십시오. 무료이고, 읽기 도구가 전부 들어 있으며, 갖춰야 할 인프라는 없습니다. - 부하가 걸리는 프로덕션 + 스왑/크로스체인/지갑 생성. TONNode hosted 키입니다. 보장된 한도, 논커스터디얼 서명되지 않은 트랜잭션, 6개 EVM 네트워크에 대한 원자적 크로스체인을 제공합니다.
- NFT/DNS를 다루는 자율 에이전트 지갑이 필요한 경우. 공식
@ton/mcp를 보십시오. 커스터디얼이라는 점은 감안해야 합니다. TONNode의 NFT/DNS 도구는 로드맵에 있고, 깊은 아카이브 히스토리는 아직 동기화 중이며, 전용 라이트서버는 요청에 따라 수동으로 설치합니다. 이것이 치명적이라면 저희에게 연락 주십시오.
짧게 말하면 이렇습니다. 429는 여러분이 버스를 졸업했다는 신호이고, 부하 상황에서 최고의 tonapi 대안은 또 하나의 공용 REST가 아니라 MCP를 통해 보장되는 처리량입니다. 로컬에서 무료 읽기 세트로 시작하고, 한도에 부딪히면 그것을 보장해 주는 키를 가져가십시오.
무료 Hobby 키 받기(카드 불필요) → tonnode.io/dashboard?plan=hobby
모든 도구 보기 — tonnode.io/mcp · 요금제 — tonnode.io/pricing