Rent energy
Send energy to any TRON address for a set time, and let it broadcast on its own.
The delegate_energy mode sends energy to an address. Tronergy does not broadcast anything. The address uses the energy for its own transactions, so it does not burn TRX. When the time is up, the energy is taken back.
Use it when the wallet already broadcasts by itself, for example an exchange hot wallet or a payment processor. You pay from your balance. To see the current energy price without an API key, use Pricing.
Only energy is delegated. Bandwidth is not covered in this mode.
Find out how much energy you need
Ask estimate for a common action, such as a USDT transfer.
const quote = await call('/chain_relayers/portal/estimate', {
chain: 'tron',
mode: 'delegate_energy',
environment: 'live',
payload: { token: 'USDT', operation: 'transfer', target_address: 'TXyz...' },
})
const energyAmount = quote.breakdown.effectiveEnergyAmount ?? quote.breakdown.energyAmountoperation is transfer or approve. Only USDT is supported. You can also price an exact amount with { "target_address": "TXyz...", "energy_amount": 65000 }.
call() is a small fetch helper. See the quickstart script.
Execute
curl -X POST https://apiv2.tronergy.io/api/chain_relayers/portal/execute \
-H "x-api-key: $TRONERGY_API_KEY" \
-H "content-type: application/json" \
-d '{
"chain": "tron",
"mode": "delegate_energy",
"environment": "live",
"idempotencyKey": "0b7f1d7e-8a51-4b6e-9d2f-1a3c5e7f9b11",
"payload": { "target_address": "TXyz...", "energy_amount": 65000, "duration_seconds": 3600 }
}'The payload takes exactly three fields. Extra fields are rejected.
target_address: the address that gets the energy.energy_amount: a positive whole number.duration_seconds: optional. From3600(1 hour, the default) to2592000(30 days).
Wait for the energy
Track the operation. When it is completed, the energy is on the address and the wallet can send.
Too small an amount
If energy_amount is below the minimum order, execute returns 422 ENERGY_AMOUNT_BELOW_MINIMUM. It does not round up for you. Retry with details.suggestedEnergyAmount and a new idempotencyKey.
See execute for every field and error.