For the complete documentation index, see llms.txt. This page is also available as Markdown.

UnfreezeBalanceV2 - Tron

Example code for the UnfreezeBalanceV2 gRPC method. Complete guide on how to use UnfreezeBalanceV2 gRPC method in GetBlock Web3 documentation.

This method builds an unsigned Stake 2.0 transaction that unstakes previously staked TRX. After an unstake, the TRX enters a waiting period before it can be withdrawn.

Service

This method is served by the protocol.Wallet service.

Method

rpc UnfreezeBalanceV2 (UnfreezeBalanceV2Contract) returns (TransactionExtention)

Request Message

UnfreezeBalanceV2Contract

Field
Type
Description

owner_address

bytes

Staking account address

unfreeze_balance

int64

Amount of staked TRX to unstake, in SUN

resource

ResourceCode

Resource to release: ENERGY or BANDWIDTH

Request

grpcurl -H 'x-api-key: <ACCESS-TOKEN>' \
  -d '{"owner_address": "41f0cc5a2a84cd0f68ed1667070934542d673acbd8", "unfreeze_balance": 1000000000, "resource": "ENERGY"}' \
  go.getblock.io:443 protocol.Wallet/UnfreezeBalanceV2
example.py
import grpc
# Stubs generated from java-tron's api.proto with grpcio-tools
from api import api_pb2_grpc
from core import Contract_pb2, Tron_pb2

creds = grpc.ssl_channel_credentials()
channel = grpc.secure_channel('go.getblock.io:443', creds)
metadata = [('x-api-key', '<ACCESS-TOKEN>')]
stub = api_pb2_grpc.WalletStub(channel)

response = stub.UnfreezeBalanceV2(Contract_pb2.UnfreezeBalanceV2Contract(
    owner_address=bytes.fromhex('41f0cc5a2a84cd0f68ed1667070934542d673acbd8'), unfreeze_balance=1000000000,
    resource=Contract_pb2.ENERGY), metadata=metadata)
print(response)
example.go
conn, _ := grpc.Dial(
    "go.getblock.io:443",
    grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),
)
defer conn.Close()

client := api.NewWalletClient(conn)
ctx := metadata.AppendToOutgoingContext(
    context.Background(), "x-api-key", "<ACCESS-TOKEN>")

resp, _ := client.UnfreezeBalanceV2(ctx, &core.UnfreezeBalanceV2Contract{OwnerAddress: owner, UnfreezeBalance: 1000000000, Resource: core.ResourceCode_ENERGY})
fmt.Println(resp)

Response Message

TransactionExtention

Field
Type
Description

transaction

Transaction

The built, unsigned transaction

txid

bytes

The transaction id

result

Return

Build result, with a result flag and any error code

constant_result

repeated bytes

Return data for constant (read-only) calls

energy_used

int64

Energy the call consumes

Use Cases

  • Release Stake: Begin unstaking TRX staked for resources

  • Liquidity Recovery: Free staked TRX after resource needs drop

  • Resource Rebalance: Move stake between Energy and Bandwidth

  • Wallet Flows: Build an unstake for user withdrawals

Error Handling

Code
Status
Description

3

INVALID_ARGUMENT

A request field is missing or malformed

5

NOT_FOUND

The requested account, block, or transaction does not exist

16

UNAUTHENTICATED

The access token is missing or invalid

13

INTERNAL

The node failed to process the request

Was this helpful?