curl --request POST \
--url https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/freezebalance \
--header 'Content-Type: application/json' \
--data '
{
"owner_address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e",
"frozen_balance": 1000000,
"frozen_duration": 3,
"resource": "BANDWIDTH",
"receiver_address": "<string>",
"visible": false
}
'{
"visible": true,
"txID": "<string>",
"raw_data": {
"contract": "<array>",
"ref_block_bytes": "<string>",
"ref_block_hash": "<string>",
"expiration": 123,
"timestamp": 123
},
"raw_data_hex": "<string>"
}curl --request POST \
--url https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/freezebalance \
--header 'Content-Type: application/json' \
--data '
{
"owner_address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e",
"frozen_balance": 1000000,
"frozen_duration": 3,
"resource": "BANDWIDTH",
"receiver_address": "<string>",
"visible": false
}
'{
"visible": true,
"txID": "<string>",
"raw_data": {
"contract": "<array>",
"ref_block_bytes": "<string>",
"ref_block_hash": "<string>",
"expiration": 123,
"timestamp": 123
},
"raw_data_hex": "<string>"
}wallet/freezebalance endpoint is disabled on mainnet and returns:{"Error":"class org.tron.core.exception.ContractValidateException : freeze v2 is open, old freeze is closed"}
wallet/freezebalancev2. The examples below are kept for historical context and may only work on specific networks where legacy staking is still enabled.owner_address — the address that owns the TRX to freeze (hex format)frozen_balance — the amount of TRX to freeze (in sun, where 1 TRX = 1,000,000 sun)frozen_duration — the duration to freeze for (minimum 3 days)resource — the resource type to obtain (“BANDWIDTH” or “ENERGY”)receiver_address — optional address to receive the resources. Omit this field to freeze for yourself. If provided, it must be different from owner_address.visible — optional boolean to specify address format (default: false for hex format)visible — boolean indicating address format usedtxID — transaction ID hashraw_data — raw transaction data objectraw_data_hex — hexadecimal representation of raw transaction datawallet/freezebalance method is used for:
freezebalancev2 method.receiver_address):
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/freezebalance' \
--header 'Content-Type: application/json' \
--data '{
"owner_address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e",
"frozen_balance": 1000000,
"frozen_duration": 3,
"resource": "BANDWIDTH",
"visible": false
}'
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/freezebalance' \
--header 'Content-Type: application/json' \
--data '{
"owner_address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e",
"frozen_balance": 1000000,
"frozen_duration": 3,
"resource": "ENERGY",
"receiver_address": "41e9d79cc47518930bc322d9bf7cddd260a0260a8d",
"visible": false
}'
receiver_address equal to owner_address, the node returns:{
"Error": "class org.tron.core.exception.ContractValidateException : receiverAddress must not be the same as ownerAddress"
}
receiver_address. For new staking, prefer wallet/freezebalancev2.curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/freezebalancev2' \
--header 'Content-Type: application/json' \
--data '{
"owner_address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e",
"frozen_balance": 1000000,
"resource": "BANDWIDTH",
"visible": false
}'
wallet/unfreezebalancev2 followed by wallet/withdrawexpireunfreeze after the waiting period.BANDWIDTH, ENERGY Optional. Address to receive the resources. Omit to freeze for yourself. Must not equal owner_address.
Was this page helpful?