go-tron-sdk

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 25, 2025 License: LGPL-3.0

README ΒΆ

GoTRON SDK

Go Reference Go Report Card 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.

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

Quick Start

Installation
Install from source
git clone https://github.com/TheByteArray/go-tron-sdk.git
cd go-tron-sdk
make install
Install with go get
go get -u github.com/TheByteArray/go-tron-sdk
Basic Usage
CLI Usage
# 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>
SDK Usage
package main

import (
	"fmt"
	"log"

	"github.com/TheByteArray/go-tron-sdk/pkg/address"
	"github.com/TheByteArray/go-tron-sdk/pkg/client"
)

func main() {
	// Create client
	c := client.NewGrpcClient("grpc.trongrid.io:50051")
	err := c.Start(client.GRPCInsecure())
	if err != nil {
		log.Fatal(err)
	}
	defer c.Stop()

	// Get account info
	addr, _ := address.Base58ToAddress("TUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH")
	account, err := c.GetAccount(addr.String())
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("Balance: %d\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
# 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:

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:

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:

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

Shell Completion

Add to your .bashrc or .zshrc:

# Bash
source <(tronctl completion bash)

# Zsh
source <(tronctl completion zsh)

Development

Requirements
  • Go 1.18 or higher
  • Make (for building)
  • Protocol Buffers compiler (for regenerating protos)
Building
# 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.

License

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

Support

Directories ΒΆ

Path Synopsis
cmd
pkg
abi
keys/hd
Package hd provides basic functionality Hierarchical Deterministic Wallets.
Package hd provides basic functionality Hierarchical Deterministic Wallets.
keystore
Package keystore implements encrypted storage of secp256k1 private keys.
Package keystore implements encrypted storage of secp256k1 private keys.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL