OpenViSTAI · Agents · Blockchain · Crypto
Menu
Developer Tools

Tonutils Go

Tonutils Go is an MIT-licensed Go SDK for building applications that interact with The Open Network. It implements ADNL, the lite protocol, DHT, RLDP and overlay protocols, and provides a pool for connecting to multiple lite servers with library-managed balancing. Its documented examples cover account data, wallet operations, smart contracts, NFTs, jettons, DNS and TON data structures.

Independent OpenViST project profile, based on linked sources.

Tonutils Go — OpenViST project profile in Developer Tools.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Tonutils Go when developing in Go and needing native TON protocol access or application-level blockchain functions. The README describes both public lite-server configuration files and connecting to a developer-operated full node.

Who it is for

  • Go developers building applications or services that interact with TON.
  • Teams implementing TON account, wallet or smart-contract functionality in Go.
  • Developers working directly with TON protocols such as ADNL, DHT or RLDP.

Documented uses

  • Connect a Go application to TON lite servers using a connection pool.
  • Retrieve account balances and transactions or subscribe to account activity.
  • Use wallet operations to transfer funds or send messages to contracts.
  • Call contract get methods and work with TON data structures, NFTs, jettons or DNS.
Before you choose

Requirements & limits

The project is available as a public GitHub repository and specifies the MIT license.

  • The SDK is written in Go and implements TON-specific protocols rather than providing a language-neutral interface.
  • Connection pooling can balance requests across multiple lite servers; the README warns that differing block application state across nodes can cause errors.
  • The README documents sticky contexts for keeping an operation’s requests on one node.
  • Connection setup can use TON configuration files or a developer-operated full node.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Connect a Go client to TON testnet lite servers

Initialize a connection pool from TON’s testnet configuration and create a TON API client.

Before you start

  • A Go project using tonutils-go.
  • Access to the testnet configuration URL https://ton-blockchain.github.io/testnet-global.config.json.

Steps

  1. Create a liteclient connection pool with liteclient.NewConnectionPool().

  2. Call AddConnectionsFromConfigUrl with context.Background() and the testnet configuration URL; handle any returned error.

  3. Create an API client from the pool with ton.NewAPIClient(client).WithRetryTimeout(0, 5*time.Second).

Expected outcome

A TON API client is initialized with connections from the testnet configuration, automatic retries, failover, and a per-attempt timeout.

Guide limitations

  • The README notes that pooled servers may not have applied the same block yet, which can cause errors.
  • To bind all requests in an operation to one node, create client.StickyContext(context.Background()) and pass that context to methods.
Source-based practical guide

Read a TON smart contract GET method

Call a contract GET method and parse a single 64-bit integer result using an initialized TON API client.

Before you start

  • An initialized ton.APIClient connected to TON, as described in the README’s Connection section.
  • A contract address and GET method name with arguments.

Steps

  1. Fetch fresh block information with api.CurrentMasterchainInfo(context.Background()).

  2. Call api.RunGetMethod with the context, block information, contract address, method name, and arguments.

  3. Parse the first returned cell with MustCell(0).BeginParse(), then read its value with LoadUInt(64).

Expected outcome

The GET method result is parsed as a 64-bit unsigned integer; the README’s example returns 56 for multiplying 7 by 8.

Guide limitations

  • The example assumes the return value is one cell and that it can be parsed as a 64-bit integer.
  • A nonzero contract exit code is treated as an error.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
10 October 2026
Original website title
xssnick/tonutils-go · Official homepage title · retained in its source language