GitPedia

Gotron sdk

Go SDK & CLI for TRON blockchain — build wallets, exchanges, bots & backend services. gRPC client, HD wallets, Ledger support, TRC20/TRC10, multi-sig, staking.

From fbsobreira·Updated June 7, 2026·View on GitHub·

GoTRON SDK is a comprehensive Go SDK and CLI tool for interacting with the TRON blockchain. It provides both a command-line interface (`tronctl`) and Go libraries for TRON blockchain operations. The project is written primarily in Go, distributed under the GNU Lesser General Public License v3.0 license, first published in 2020. Key topics include: blockchain, cli, cryptocurrency, defi, exchange.

Latest release: v0.26.0
March 22, 2026View Changelog →

GoTRON SDK

Go Reference
Go Report Card
codecov
License

GoTRON SDK is a comprehensive Go SDK and CLI tool for interacting with the TRON blockchain. It provides both a command-line interface (tronctl) and Go libraries for TRON blockchain operations.

<p align="center"> <img src=".github/demo.gif" alt="tronctl demo" width="800"> </p>

Built For

  • Exchanges — deposit/withdrawal engines, hot wallet management
  • Wallets — HD wallet derivation, hardware signing, multi-sig
  • Trading Bots — fast gRPC client, typed responses, batch operations
  • Staking Services — freeze/delegate resources, vote for SRs
  • Infrastructure — CLI scripting, monitoring, automation

Why GoTRON?

GoTRON SDK is built for backend and infrastructure teams that need performance, reliability, and operational tooling.

GoTRON SDKtronweb (JS/TS)tron-api-python
TransportgRPC (binary, streaming)HTTP/JSONHTTP/JSON
DeploymentSingle static binaryNode.js runtimePython runtime
Hardware SigningBuilt-in Ledger supportSeparate adapterNo
CLI Toolingtronctl includedNoneYes (CLI framework)
ConcurrencyGoroutines (native)Event loopGIL-limited
HD WalletsYes (BIP39/44)Yes (BIP39/44)No
Multi-sigYesYesNot documented
Type SafetyFull (compiled)Full (TypeScript)Not documented

Comparison as of 2026-03-16. Verify claims against each project's README.

Features

  • 🔧 Complete CLI Tool: Manage accounts, send transactions, interact with smart contracts
  • 📚 Go SDK: Build TRON applications with a clean, idiomatic Go API
  • 🔐 Secure Key Management: Hardware wallet support, encrypted keystores
  • 🚀 High Performance: Native gRPC communication with TRON nodes
  • 🛠️ Developer Friendly: Comprehensive examples and documentation
  • 🤖 AI-Ready: MCP server lets AI agents interact with TRON blockchain

MCP Server

Connect AI agents to TRON via the GoTRON MCP Server. Zero install — hosted at mcp.gotron.sh.

Claude Code:

bash
claude mcp add gotron --scope user --transport http https://mcp.gotron.sh/mcp

Claude Desktop: Add via Settings > Connectors using URL https://mcp.gotron.sh/mcp

Includes read-only blockchain queries, unsigned transaction builders, and full SDK documentation for AI-assisted development. See the gotron-mcp repo for local mode with signing support.

Quick Start

Installation

Quick Install

bash
curl -fsSL gotron.sh/install | sh

Install with Go

bash
go install github.com/fbsobreira/gotron-sdk/cmd/tronctl@latest

Install with Homebrew

bash
brew install fbsobreira/tap/tronctl

Install from source

bash
git clone https://github.com/fbsobreira/gotron-sdk.git cd gotron-sdk make install

Use as a Go library

bash
go get -u github.com/fbsobreira/gotron-sdk

Basic Usage

CLI Usage

bash
# Create a new account tronctl keys add <account-name> # Check balance tronctl account balance <address> # Send TRX tronctl account send <to-address> <amount> --signer <signer-name>

30-Second Quickstart (SDK)

go
package main import ( "fmt" "log" "github.com/fbsobreira/gotron-sdk/pkg/client" ) func main() { c := client.NewGrpcClient("grpc.trongrid.io:50051") if err := c.Start(client.GRPCInsecure()); err != nil { log.Fatal(err) } defer c.Stop() account, err := c.GetAccount("TUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH") if err != nil { log.Fatal(err) } fmt.Printf("Balance: %d SUN\n", account.Balance) }

Documentation

Supported Features

Account Management

  • Create and import accounts
  • Hardware wallet support (Ledger)
  • Keystore management
  • Multi-signature support

Transactions

  • TRX transfers
  • TRC10 token operations
  • TRC20 token operations
  • Smart contract interactions
  • Transaction signing and broadcasting

Smart Contracts

  • Contract deployment
  • Contract calls and triggers
  • ABI encoding/decoding
  • Event monitoring

Blockchain Queries

  • Block information
  • Transaction details
  • Account resources
  • Witness/SR information
  • Proposal management

Configuration

Environment Variables

bash
# Set custom node export TRON_NODE="grpc.trongrid.io:50051" # Enable TLS export TRON_NODE_TLS="true" # Set Trongrid API key export TRONGRID_APIKEY="your-api-key" # Enable debug mode export GOTRON_SDK_DEBUG="true"

Configuration File

Create ~/.tronctl/config.yaml:

yaml
node: grpc.trongrid.io:50051 network: mainnet timeout: 60s tls: true apiKey: your-api-key

Transfer JSON Format

For batch transfers, use a JSON file with the following format:

KeyValue-typeValue-description
fromstring[Required] Sender's address, must have key in keystore
tostring[Required] Receiver's address
amountstring[Required] Amount to send in TRX
passphrase-filestring[Optional] File path containing passphrase
passphrase-stringstring[Optional] Passphrase as string
stop-on-errorboolean[Optional] Stop on error (default: false)

Example:

json
[ { "from": "TUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH", "to": "TKSXDA8HfE9E1y39RczVQ1ZascUEtaSToF", "amount": "100", "passphrase-string": "", "stop-on-error": true } ]

Shell Completion

Add to your .bashrc or .zshrc:

bash
# Bash source <(tronctl completion bash) # Zsh source <(tronctl completion zsh)

Development

Requirements

  • Go 1.24 or higher
  • Make (for building)
  • Protocol Buffers compiler (for regenerating protos)

Building

bash
# Build binary make build # Cross-compile for Windows make build-windows # Run tests make test # Run linter make lint # Generate protobuf files ./gen-proto.sh

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Version History

Note on Versions

The v2.x.x releases were incorrectly tagged without proper Go module versioning. These versions have been retracted. Please use v1.x.x versions or later.

Projects Using GoTRON

Using GoTRON SDK in your project? Open an issue to add it here!

License

This project is licensed under the LGPL-3.0 License - see the LICENSE file for details.

Support

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from fbsobreira/gotron-sdk via the GitHub API.Last fetched: 6/25/2026