TON MCP cross-chain đầu tiên: agent dịch chuyển giá trị
TONNode là MCP đầu tiên cho TON nơi AI agent không chỉ đọc blockchain mà còn swap và cross-chain sang 6 mạng EVM theo hướng không lưu ký. DeFAI agent trên TON.
DeFAI agent trên TON: vì sao agent chỉ biết đọc blockchain là chưa đủ
AI agent của bạn trả lời được các câu hỏi về TON — số dư ví, trạng thái contract, lịch sử giao dịch. Người dùng viết: "Tôi có 500 USDT trên TON, muốn vào một vị thế trên Base". Và agent khựng lại. Nó nhìn thấy tất cả, nhưng chẳng làm được gì. Giữa "đọc blockchain" và "dịch chuyển giá trị" là một vực sâu mà MCP read-only thông thường không nhảy qua nổi. Một agent chỉ biết đọc thì cũng chỉ là cái dashboard có gắn thêm khung chat. DeFAI (DeFi + AI) bắt đầu ở chỗ agent dịch chuyển được giá trị, chứ không phải chỉ đứng nhìn nó.
Bức tường thứ hai là niềm tin. Phần lớn các "ví thông minh dành cho agent" đều lưu ký: để agent gửi được thứ gì đó, phải có ai đó giữ khóa và ký. Với một bot tự vận hành, điều đó có nghĩa là khóa riêng hoặc operator key nằm ở nơi bạn không kiểm soát được. Với môi trường production đang xử lý tiền của người khác, đó là điều không chấp nhận được.
TONNode là MCP server hosted dành cho TON (website tonnode.io), gồm đúng 16 công cụ: đọc, swap, cross-chain và tạo ví. Điểm then chốt: các công cụ swap, cross-chain và ví đều hoàn toàn không lưu ký. Server không bao giờ ký và không bao giờ giữ tiền hay khóa riêng — nó trả về các message TonConnect chưa ký, và chỉ ví của người dùng mới ký chúng. Đó chính là MCP cross-chain cho TON mà không phải đánh đổi quyền kiểm soát khóa.
Để một hành động là an toàn, cần hai thứ:
- Agent dựng giao dịch, nhưng không ký nó. Việc ký do ví của người dùng thực hiện qua TonConnect. Server không chạm vào khóa.
- Agent hoạt động được vượt ra ngoài phạm vi một mạng. Giá trị trong crypto sống ở nhiều mạng cùng lúc, nên "chỉ TON" mới chỉ giải được một nửa bài toán.
TONNode làm được cả hai. Bên dưới là cách ghép những công cụ này lại thành một DeFAI agent thực thụ.
Swap không lưu ký: get_swap_quote và build_swap_tx qua Omniston
Swap trong TONNode gồm hai công cụ, tách bạch theo trách nhiệm: trước là báo giá, sau là dựng giao dịch.
get_swap_quote— báo giá chắc chắn cho việc đổi GRAM⇄jetton qua giao thức Omniston, vốn gộp thanh khoản của STON.fi và DeDust. Nghĩa là agent nhận ngay mức giá tốt nhất từ hai DEX lớn nhất, thay vì phải đoán xem bên nào lợi hơn.build_swap_tx— dựng giao dịch swap chưa ký, sẵn sàng cho TonConnect. Chính bước này mới là bản chất của tính không lưu ký: server đưa ra message, còn ví của người dùng mới là bên ký nó.
Ví von cho dễ hình dung. get_swap_quote là bảng tỷ giá ở quầy đổi tiền. build_swap_tx là tờ biên nhận đã điền sẵn, bạn tự đọc rồi tự ký. Nhân viên quầy (server) không thò tay vào ví của bạn.
Trong hội thoại với agent, mọi thứ trông như sau:
Người dùng: đổi 100 GRAM sang USDT, cho tôi xem tỷ giá trước khi xác nhận
Agent → get_swap_quote (GRAM → USDT, 100)
Agent: bạn sẽ nhận ≈ X USDT theo tỷ giá Y (tuyến Omniston). Dựng giao dịch nhé?
Người dùng: có
Agent → build_swap_tx
Agent: xong, hãy ký trong ví ↓ (TonConnect)
Một chi tiết quan trọng để số lượng ra đúng: jetton được lưu theo đơn vị raw, và việc quy đổi phụ thuộc vào decimals. USDT có decimals = 6, còn đa số jetton là 9. Trước khi hiển thị số dư hay số lượng, agent phải gọi get_jetton_info (metadata của jetton: tên, ký hiệu, decimals, tổng cung) và get_jetton_balance (số dư jetton; jetton-wallet được tính on-chain). Nếu không, agent sẽ cho người dùng thấy "50000000" thay vì "50".
Khóa không rời khỏi thiết bị của người dùng ở bất kỳ bước nào. Chi tiết hơn về sơ đồ này, xem bài phân tích swap không lưu ký dành cho agent.
MCP cross-chain cho TON: HTLC escrow nguyên tử và đường sang 6 mạng EVM
Bây giờ là thứ mà chưa MCP nào khác cho TON làm được: cross-chain swap từ TON sang các mạng EVM mà không cần cầu nối lưu ký. TONNode làm điều đó qua HTLC escrow nguyên tử (Hashed TimeLock Contract).
Cơ chế giống một thương vụ qua két sắt có hai ổ khóa:
- Tiền bị khóa trong contract escrow ở cả hai mạng, dưới cùng một hash của secret.
- Chừng nào secret chưa được công bố, tiền không đi đâu cả.
- Việc công bố secret đồng thời mở khóa cả hai phía — hoặc giao dịch diễn ra trọn vẹn, hoặc không diễn ra chút nào. Ở đây không có trạng thái lưng chừng kiểu "tiền đã đi mà chẳng thấy về".
- Nếu đối tác treo giữa chừng, hết timeout là tiền quay về với chủ của nó.
Chỉ đúng những mạng này được hỗ trợ, và TON luôn là mạng nguồn:
- Ethereum
- Arbitrum
- Base
- BNB Chain
- Polygon
- Avalanche
TRON hiện chưa được hỗ trợ — cần nói thẳng điều này với người dùng, để agent không hứa những thứ bất khả thi.
Điểm mấu chốt của tính không lưu ký ở đây: build_crosschain_swap_tx trả về cả giao dịch HTLC escrow chưa ký, lẫn secret — secret nằm lại ở phía người dùng/agent, chứ không ở server. Việc công bố secret là một bước riêng và tường minh, sau khi đã kiểm tra mức độ sẵn sàng on-chain. Phân tích đầy đủ cơ chế nằm trong bài về cross-chain swap TON → Ethereum.
Năm công cụ cross-chain: báo giá, dựng, theo dõi, công bố, hoàn tiền
Một giao dịch cross-chain không phải một cái nút bấm, mà là một máy trạng thái hữu hạn. Mỗi trạng thái ứng với một công cụ riêng:
get_crosschain_quote— báo giá cho việc đổi cross-chain: người dùng nhận được bao nhiêu ở mạng đích, phí ra sao, tuyến đường thế nào.build_crosschain_swap_tx— giao dịch HTLC escrow chưa ký + secret. Giao dịch do ví của người dùng ký, secret nằm lại ở họ.track_crosschain_swap— các pha của giao dịch trên cả hai mạng: đã khóa trong escrow bên TON chưa, khoản khóa đối ứng bên EVM đã xuất hiện chưa, secret đã được công bố chưa, việc tất toán đã xong chưa.disclose_crosschain_secret— công bố secret để tất toán, nhưng chỉ sau khi đã kiểm tra mức độ sẵn sàng on-chain. Đây là lớp bảo vệ khỏi việc công bố secret quá sớm rồi mất quyền kiểm soát giao dịch.build_crosschain_refund— dựng giao dịch hoàn tiền từ escrow, nếu giao dịch treo lại và timeout đã kích hoạt.
Vòng đời đầy đủ của một giao dịch
Đây là luồng mà agent chạy từ lúc báo giá cho tới khi tất toán hoặc hoàn tiền:
get_crosschain_quote → báo giá TON → Base
build_crosschain_swap_tx → HTLC escrow tx chưa ký + secret
(người dùng ký escrow bằng ví của mình)
track_crosschain_swap → chờ phía đối ứng sẵn sàng
disclose_crosschain_secret → công bố secret, quá trình tất toán chạy
── nếu bị treo ──
build_crosschain_refund → hoàn tiền từ escrow
Hãy để ý: phần hoàn tiền nằm sẵn trong thiết kế, chứ không phải khâu vá thêm bên ngoài. Chính build_crosschain_refund làm cho cấu trúc này an toàn với một agent tự vận hành: kể cả khi có gì đó trục trặc, tiền cũng không kẹt lại — luôn có một đường về xác định. Bộ năm công cụ này biến "cây cầu đáng sợ" thành một quy trình từng bước, có thể dự đoán được.
Con hào của TONNode nằm ở đâu: không lưu ký + cross-chain + hosted
Hãy so sánh một cách sòng phẳng với gói chính thức. @ton/mcp của TON Foundation là một ví-agent lưu ký theo sơ đồ split-key: operator key do agent giữ, owner key thuộc về người dùng, và agent tự ký. Nó làm được nhiều thứ — đọc dữ liệu, gửi GRAM/jetton/NFT, swap qua DEX aggregator, làm việc với NFT và DNS, tạo và import ví-agent, và nó là bản chính thức. Đó là những điểm mạnh thật, chẳng có lý do gì để hạ thấp chúng.
Nhưng có hai giới hạn đáng kể:
- Nó lưu ký — operator key nằm ở agent, tức là agent có thể tiêu tiền một cách tự chủ. Với một số kịch bản thì đó là tiện lợi, với số khác lại là rủi ro không chấp nhận được.
- Nó chỉ có TON — không có cross-chain.
TONNode khác biệt trên ba trục:
@ton/mcp chính thức |
TONNode | |
|---|---|---|
| Mô hình khóa | Lưu ký (split-key, tự ký) | Không lưu ký (trả về message TonConnect chưa ký) |
| Cross-chain | Không, chỉ TON | TON → 6 mạng EVM, HTLC nguyên tử |
| Triển khai | Local / HTTP / serverless | Local (npx) và endpoint hosted |
Tính không lưu ký không phải một dấu tick trong bảng so sánh, mà là con hào kiến trúc. Server không bao giờ ký và không bao giờ giữ tiền hay khóa riêng. Ngay cả generate_wallet (tạo ví TON mới ở các phiên bản v3r2 / v4 / v5r1 / highload_v3) cũng giao mnemonic và khóa cho người dùng — server không lưu chúng lại. So sánh mở rộng giữa hai cách tiếp cận nằm trong bài MCP lưu ký và không lưu ký.
Một chi tiết nhỏ về thuật ngữ để khỏi nhầm lẫn: GRAM là Toncoin sau khi đổi tên (việc đổi tên diễn ra vào tháng 6/2026), còn bản thân mạng lưới vẫn gọi là TON.
Cách kết nối và tự dựng DeFAI agent của bạn
Có thể bắt đầu miễn phí và chạy local, không cần thẻ, không cần đăng ký. Gói @tonnode/mcp là open source (MIT), chạy theo giao thức ADNL gốc của TON mà không cần lớp HTTP trung gian.
Config local và hosted
Config local (bộ công khai, đọc đầy đủ) — chỉ cần thêm vào config của MCP client:
{
"mcpServers": {
"ton": { "command": "npx", "args": ["-y", "@tonnode/mcp"] }
}
}
Endpoint hosted (băng thông được đảm bảo, key riêng của bạn):
{
"mcpServers": {
"ton": {
"type": "http",
"url": "https://mcp.tonnode.io/mcp",
"headers": { "Authorization": "Bearer tn_live_…" }
}
}
}
Config này dùng được với mọi MCP client: Claude, Cursor, ChatGPT/Codex.
Khung sườn của một DeFAI agent
Khung sườn DeFAI agent dựng trên các công cụ của TONNode — luồng điển hình "vào một vị thế ở mạng khác":
Kiểm tra người dùng đang có gì:
get_balance → số dư GRAM
get_jetton_info → decimals của jetton (USDT = 6, thường là 9)
get_jetton_balance → số dư USDT/jetton (ví được tính on-chain)
Nếu người dùng muốn đổi bên trong TON:
get_swap_quote → build_swap_tx → ký trong ví
Nếu người dùng muốn đưa giá trị sang Base/Ethereum/…:
get_crosschain_quote
→ build_crosschain_swap_tx (ký, secret ở phía người dùng)
→ track_crosschain_swap (chờ sẵn sàng)
→ disclose_crosschain_secret (tất toán)
→ build_crosschain_refund (nếu bị treo)
Phần còn lại nằm ở system prompt — client sẽ tự route các lời gọi:
Bạn là trợ lý DeFAI cho TON. Quy tắc:
1. Trước mọi con số về jetton, hãy gọi get_jetton_info (decimals)
và get_jetton_balance.
2. Với swap: trước hết get_swap_quote, cho xem tỷ giá, rồi build_swap_tx.
Không bao giờ hỏi khóa riêng — giao dịch do ví của người dùng
ký qua TonConnect.
3. Với cross-chain: get_crosschain_quote → build_crosschain_swap_tx →
track_crosschain_swap → disclose_crosschain_secret.
Nguồn luôn là TON, đích là một trong 6 mạng EVM
(Ethereum, Arbitrum, Base, BNB Chain, Polygon, Avalanche);
TRON không được hỗ trợ.
4. Nếu giao dịch bị treo — hãy đề xuất build_crosschain_refund.
Việc dựng một trading agent theo từng bước được mổ xẻ trong bài riêng: cách xây trading agent trên TON.
Bảng giá
Trên mọi gói đều có đủ cả 16 công cụ, bạn chỉ trả tiền cho băng thông:
- Hobby — miễn phí vĩnh viễn, 60 request/phút
- Pro — $29/tháng, 300 request/phút
- Scale — $199/tháng, 1200 request/phút
Key Hobby miễn phí được cấp ngay sau khi đăng nhập, không cần thẻ. Có thể thanh toán Pro/Scale bằng GRAM hoặc USDT trên mạng TON qua TonConnect, hoặc bằng BTC/ETH/SOL và các đồng khác qua tài khoản xRocket trong Telegram; key được cấp tự động sau khi thanh toán được xác nhận.
MCP read-only biến agent thành người quan sát. Swap không lưu ký và cross-chain biến nó thành người thực thi — mà không cần lấy khóa của người dùng. Đọc TON thì nhiều bên làm được; dịch chuyển giá trị từ TON sang sáu mạng EVM mà không phải giao khóa đi — cho tới giờ chỉ có TONNode. Đó chính là DeFAI trên TON: agent dịch chuyển giá trị, còn quyền kiểm soát vẫn nằm ở chủ sở hữu.
Hãy lấy key Hobby miễn phí và kết nối agent đầu tiên ngay bây giờ → tonnode.io/dashboard?plan=hobby
Đọc tiếp theo chủ đề: danh sách đầy đủ các công cụ ở tonnode.io/mcp, giới hạn và bảng giá ở tonnode.io/pricing.
Cho agent của bạn quyền truy cập TON
16 công cụ MCP: đọc, swap phi lưu ký, cross-chain và ví. Gói miễn phí — 60 req/phút, không cần thẻ.