Skip to main content

SDKs

Easily navigate to your preferred programming language using the right sidebar.

Overview

There are different ways to connect to the blockchain:

  1. RPC data provider or other API – Requires stability and security from a third-party service.
  2. ADNL connection - Connects to a liteserver. While it may be inaccessible at times, it cannot provide false data due to built-in validation.
  3. Tonlib binary - Also connects to a liteserver, inheriting the same advantages and limitations. However, your application includes a dynamically loaded library compiled externally.
  4. Offchain-only - These SDKs allow you to create and serialize cells, which can then be sent to APIs.

TypeScript / JavaScript

LibraryBlockchain connectionDescription
tonvia RPC (Orbs / Toncenter / etc)Convenient client library with wallet wrappers for developing dApps on TON Blockchain.
tonwebvia RPC (Orbs / Toncenter / etc)Old-style TON JS SDK, with minimal external dependencies, extensively tested in production.
tonkite/adnlADNL natively / via WebSocketADNL TypeScript implementation.
tonutilsNative ADNLTypeScript-based interface for TON application development. Due to native ADNL dependency, it cannot be used in browsers.
fotonvia RPC (Orbs / Toncenter / etc)TypeScript toolkit for interacting with TON wallets and blockchain. Wraps existing solutions (Blueprint and TON Connect) into one API.

Java

LibraryBlockchain connectionDescription
ton4jTonlib binaryJava SDK for The Open Network (TON)

Python

LibraryBlockchain connectionDescription
pytoniqNative ADNLPython SDK with native LiteClient and other ADNL-based protocols.
pytoniq-coreoffchain-onlyTransport-free, powerful SDK.
tonutilsvia RPC (TONAPI / Toncenter) / Native ADNL (pytoniq)High-level OOP library for interacting with TON Blockchain.
pytonlibTonlib binaryStandalone Python library based on libtonlibjson.
mytonlibNative ADNLNative Python SDK library for working with The Open Network
TonToolsvia RPC (Orbs / Toncenter / etc)High-level OOP Python library for interacting with TON.
tonpyNative ADNLPPython package providing TON Blockchain interaction.
tvm_valuetypesoffchain-onlyUtilities for handling TVM types.
pytvmoffchainPython TVM emulator using C++ bindings.

C#

LibraryBlockchain connectionDescription
TonSdk.NETNative ADNL or RPCNative C# SDK for The Open Network.
justdmitry/TonLib.NETTonlib binary.NET SDK for The Open Network, connecting via libtonlibjson.

Rust

LibraryBlockchain connectionDescription
tonlib-rsTonlib binaryRust SDK for TON, using binary dependency from TON monorepo.
getgems-io/ton-grpcTonlib binaryRust bindings for tonlibjson with additional services.

Go

LibraryBlockchain connectionDescription
tonutils-goNative ADNLGolang library for interacting with TON.
tongoNative ADNLGo implementation of TON Blockchain libraries.
tonlib-goTonlib binaryOfficial bindings for libtonlibjson.

SDKs for other languages

LibraryLanguageBlockchain connectionDescription
ton-kotlinKotlinNative ADNLKotlin/Multiplatform SDK for The Open Network.
tonlib-javaJavaTonlib binJVM wrapper for TonLib, usable with Java, Scala, Kotlin, etc.
ayrat555/tonElixiroffchain-onlyTON SDK for Elixir.
C++ TonlibC++Tonlib binaryOfficial examples on smart contract interaction from the TON monorepo.
Java TonlibJavaTonlib binaryOfficial Java-based examples from the TON monorepo.
labraburn/SwiftyTONSwiftTonlib binaryNative Swift wrapper for tonlib with async/await support.
tonlib-xcframeworkSwiftTonlib binaryTonlib build helper for iOS, supporting all architectures.
labraburn/node-tonlibNodeJSTonlib binaryC++ addon for NodeJS to work with tonlibjson.
olifanton/tonPHPvia RPC (Orbs / Toncenter / etc)PHP SDK with TON primitives and smart contract tools.