TON SDKs (software development kits) are collections of libraries, APIs, code samples, and testing tools that streamline the creation of applications and smart‑contract interactions on the TON network. Each SDK targets a specific programming language, abstracting low‑level blockchain details.
SDKs by programming language#
JavaScript / TypeScript (Node.js)
node‑tonlib – a C++ addon that wraps the tonlibjson JSON interface, enabling wallet creation, transaction handling, and smart‑contract calls from Node.js.
TON JS Client – a cross‑platform client maintained by Dan Volkov, offering high‑level methods such as mnemonicNew(), WalletContractV4.create(), contract.getBalance() and contract.createTransfer(). It supports both mainnet and testnet via configurable HTTP API endpoints.
tonutils – a modular TypeScript toolkit that implements core TON networking protocols (ADNL, DHT, keyring, config, TL) and provides access to services like TON Proxy, TON Sites, and TON Storage.
TonWeb – a JavaScript SDK usable in browsers and Node.js. It offers wallet creation (tonweb.wallet.create()), address handling (including non‑bounceable formats), wallet deployment, transaction creation with fee estimation, and network selection between mainnet and testnet.
Installation notes
Pre‑built binaries for node‑tonlib are available for Ubuntu 20.04 and macOS Mojave.
Python
tontools – an object‑oriented library that supports multiple providers (TonCenter API, Lite servers, GraphQL, TonAPI) and includes classes for NFTs, Jettons, and generic contracts. It simplifies wallet management, smart‑contract interaction, and blockchain queries.
pytoniq – provides a native LiteClient implementation with configurable trust levels, a LiteBalancer for optimal server selection, a local block store for zero‑trust validation, and built‑in ADNL and DHT support. Install via pip install pytoniq.
tonpy – combines a high‑performance C++ core with a Python wrapper, delivering fast handling of TON data structures, wallet operations, transaction signing, and interaction with FunC/TVM contracts.
Go (Golang)
tonutils‑go – a robust Go library that implements TON’s core networking protocols and offers concurrent wallet operations, contract GET methods, deployment utilities, and NFT/Jetton/DNS management.
C#
TonSdk.NET – a suite of NuGet packages (TonSdk.Core, TonSdk.Client, TonSdk.Contracts, TonSdk.Connect, TonSdk.Adnl) that enable C# developers to interact with TonCenter, manage wallets, and integrate TON Connect 2.0.
JVM languages
TonKotlin – a cross‑platform Kotlin SDK with modules for ADNL, TL schema, bitstrings, TL‑B structures, bag‑of‑cells serialization, and cryptographic primitives.
Tonlib‑java – a JVM wrapper around TonLib (C++) providing JNI integration, typed message classes, and Merkle‑proof verification for data received from lite servers.
Other languages
- Elixir –
ayrat555/ton(off‑chain only) - C++ –
tonlibexample binaries - Swift –
SwiftyTONandtonlib‑xcframeworkbinaries
See also#
- TON Connect
- TON Dev Study
- The Open Network
- TON Wallets
- TON Storage