SDK Usage
The GoTRON SDK provides a clean, idiomatic Go API for interacting with the TRON blockchain via gRPC.
Connecting to a Node
package main
import (
"fmt"
"log"
"github.com/fbsobreira/gotron-sdk/pkg/client"
)
func main() {
conn := client.NewGrpcClient("grpc.trongrid.io:50051")
if err := conn.Start(); err != nil {
log.Fatal(err)
}
defer conn.Stop()
}
Get Account Balance
acc, err := conn.GetAccount("TRX_ADDRESS")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Balance: %d SUN\n", acc.Balance)
Transfer TRX
tx, err := conn.Transfer(
"SENDER_ADDRESS",
"RECIPIENT_ADDRESS",
1000000, // amount in SUN (1 TRX = 1,000,000 SUN)
)
if err != nil {
log.Fatal(err)
}
TRC20 Token Operations
Get Token Balance
balance, err := conn.TRC20ContractBalance(
"HOLDER_ADDRESS",
"TOKEN_CONTRACT_ADDRESS",
)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Token balance: %s\n", balance.String())
Transfer Tokens
tx, err := conn.TRC20Send(
"SENDER_ADDRESS",
"RECIPIENT_ADDRESS",
"TOKEN_CONTRACT_ADDRESS",
big.NewInt(1000),
300000, // fee limit in SUN
)
Resource Management
Freeze TRX for Energy
tx, err := conn.FreezeBalance(
"OWNER_ADDRESS",
"RECEIVER_ADDRESS",
core.ResourceCode_ENERGY,
1000000000, // amount in SUN
)
Signing Transactions
With Keystore
import "github.com/fbsobreira/gotron-sdk/pkg/keystore"
ks := keystore.NewKeyStore(keystorePath)
account := ks.Accounts()[0]
signedTx, err := ks.SignTx(account, tx)
if err != nil {
log.Fatal(err)
}
// Broadcast
result, err := conn.Broadcast(signedTx)
With Ledger Hardware Wallet
import "github.com/fbsobreira/gotron-sdk/pkg/ledger"
signedTx, err := ledger.SignTx(txBytes)
Next Steps
- API Reference — Complete API documentation
- Examples — Real-world usage examples