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.
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.
GoTRON SDK
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.
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 SDK | tronweb (JS/TS) | tron-api-python | |
|---|---|---|---|
| Transport | gRPC (binary, streaming) | HTTP/JSON | HTTP/JSON |
| Deployment | Single static binary | Node.js runtime | Python runtime |
| Hardware Signing | Built-in Ledger support | Separate adapter | No |
| CLI Tooling | tronctl included | None | Yes (CLI framework) |
| Concurrency | Goroutines (native) | Event loop | GIL-limited |
| HD Wallets | Yes (BIP39/44) | Yes (BIP39/44) | No |
| Multi-sig | Yes | Yes | Not documented |
| Type Safety | Full (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:
bashclaude 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
bashcurl -fsSL gotron.sh/install | sh
Install with Go
bashgo install github.com/fbsobreira/gotron-sdk/cmd/tronctl@latest
Install with Homebrew
bashbrew install fbsobreira/tap/tronctl
Install from source
bashgit clone https://github.com/fbsobreira/gotron-sdk.git cd gotron-sdk make install
Use as a Go library
bashgo 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)
gopackage 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
- Installation Guide - Detailed installation instructions
- CLI Usage Guide - Complete CLI command reference
- SDK Usage Guide - Go SDK examples and patterns
- API Reference - Detailed API documentation
- Examples - Common use cases and examples
- More Examples - Detailed protocol-specific examples
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:
yamlnode: 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:
| Key | Value-type | Value-description |
|---|---|---|
from | string | [Required] Sender's address, must have key in keystore |
to | string | [Required] Receiver's address |
amount | string | [Required] Amount to send in TRX |
passphrase-file | string | [Optional] File path containing passphrase |
passphrase-string | string | [Optional] Passphrase as string |
stop-on-error | boolean | [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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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.
