Examples
Practical examples for common TRON blockchain operations using GoTRON SDK.
Monitor Account Balance
Watch an account for balance changes:
package main
import (
"fmt"
"log"
"time"
"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()
address := "TRX_ADDRESS"
var lastBalance int64
for {
acc, err := conn.GetAccount(address)
if err != nil {
log.Printf("Error: %v", err)
continue
}
if acc.Balance != lastBalance {
fmt.Printf("Balance changed: %d -> %d SUN\n", lastBalance, acc.Balance)
lastBalance = acc.Balance
}
time.Sleep(3 * time.Second)
}
}
Batch TRC20 Transfers
Send tokens to multiple recipients using goroutines:
package main
import (
"fmt"
"log"
"math/big"
"sync"
"github.com/fbsobreira/gotron-sdk/pkg/client"
)
type Transfer struct {
To string
Amount *big.Int
}
func main() {
conn := client.NewGrpcClient("grpc.trongrid.io:50051")
if err := conn.Start(); err != nil {
log.Fatal(err)
}
defer conn.Stop()
contract := "TOKEN_CONTRACT"
from := "SENDER_ADDRESS"
feeLimit := int64(300000)
transfers := []Transfer{
{To: "ADDR_1", Amount: big.NewInt(1000)},
{To: "ADDR_2", Amount: big.NewInt(2000)},
{To: "ADDR_3", Amount: big.NewInt(3000)},
}
var wg sync.WaitGroup
for _, t := range transfers {
wg.Add(1)
go func(t Transfer) {
defer wg.Done()
tx, err := conn.TRC20Send(from, t.To, contract, t.Amount, feeLimit)
if err != nil {
log.Printf("Failed to send to %s: %v", t.To, err)
return
}
fmt.Printf("Sent %s tokens to %s: %s\n", t.Amount, t.To, tx.GetTxid())
}(t)
}
wg.Wait()
}
Check Energy Cost Before Transaction
Estimate energy consumption before sending a transaction:
resource, err := conn.GetAccountResource("YOUR_ADDRESS")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Energy: %d / %d\n",
resource.GetEnergyUsed(),
resource.GetEnergyLimit(),
)
fmt.Printf("Bandwidth: %d / %d\n",
resource.GetFreeNetUsed(),
resource.GetFreeNetLimit(),
)
CLI Examples
Export Account Activity
# Check account details
tronctl account info TRX_ADDRESS
# Get recent transactions
tronctl account transactions TRX_ADDRESS --limit 20
Token Operations via CLI
# Check TRC20 balance
tronctl trc20 balance USDT_CONTRACT HOLDER_ADDRESS
# Transfer TRC20 tokens
tronctl trc20 transfer \
--contract USDT_CONTRACT \
--from SENDER \
--to RECIPIENT \
--amount 100
Staking via CLI
# Stake for energy
tronctl stake --from ADDRESS --amount 1000 --resource ENERGY
# Vote for SR
tronctl vote --from ADDRESS --witness SR_ADDRESS --count 1000
# Check rewards
tronctl rewards ADDRESS
Next Steps
- Installation — Set up GoTRON SDK
- API Reference — Full API documentation