API ADDRESS NG PAGBABAYAD
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Ipadala TRX sa address na ito. Ang iyong tx hash ay ginagamit upang i-claim ang energy delegation.

Ganap na integrasyon ng PHP gamit ang iexbase/tron-api library. Ang bawat hakbang ay isang standalone na code block na maaari mong kopyahin sa iyong proyekto. Gumagana sa anumang PHP framework o plain PHP.

Mga Kinakailangan: PHP 7.4+, pinagana ang Composer, ext-gmp at ext-bcmath, isang pinondohan na Tron wallet.
Tungkol sa pag-sign in sa PHP: Ang TronEnergy API ay nangangailangan ng isang wallet signature gamit ang tronWeb.trx.signMessageV2()Ang iexbase/tron-api Hindi inilalantad ng library ang eksaktong signing primitive na ito, kaya gumagamit ang gabay na ito ng isang maliit na Node.js helper para sa hakbang ng pag-sign. Ang lahat ng iba pa (pagpapadala ng TRX , pagtawag sa API , pagpapadala USDT ) ay nananatili sa PHP. Kung mayroon kang pure-PHP signing solution na gumagawa ng isang wastong signMessageV2 signature, maaari mong palitan ang helper nang hindi binabago ang anumang iba pang hakbang.

Ang Daloy

Walang API key. Walang pag-sign-up. Ipapadala ng iyong code TRX on-chain sa TronEnergy payment address, pipirma ng mensaheng nagpapatunay ng pagmamay-ari, pagkatapos ay kinukumpisal ang delegasyon. Darating Energy sa loob ng humigit-kumulang 3 segundo. Pagkatapos, ipapadala ng iyong code USDT gamit ang itinalagang enerhiya.

1
Ipadala TRX
Magpadala ng 4 o higit pang TRX sa payment address na on-chain (minimum na 4, max na 1000).
2
Karatula
Lagdaan ang tx_hash:delegate_to upang patunayan na ikaw ang nagpadala.
3
Pag-angkin
POST /delegate na may tx hash at lagda. Energy ay dumarating sa loob ng ~3 segundo.
Linear ang presyo: 16,250 Energy bawat TRX . Minimum order 4 TRX (65,000 Energy — one standard USDT transfer), maximum 1,000 TRX (16.25M Energy). The amount you send determines exactly how much Energy is delegated back — no tiers, no packages. For a single standard transfer, use $trxAmount = 4. For a new-wallet transfer, use 8. For batch work, use more. The code below uses a $trxAmount variable so you can change it in one place.

Hakbang-hakbang

1. I-install

composer
composer require iexbase/tron-api

2. Pag-setup

setup.php
require_once 'vendor/autoload.php'; use IEXBase\TronAPI\Tron; $tron = new Tron(); $tron->setPrivateKey('YOUR_PRIVATE_KEY'); $tron->setAddress('YOUR_WALLET_ADDRESS'); $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; // API payment address $usdt = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; // USDT contract
Huwag kailanman i-hardcode ang mga kredensyal. Use environment variables or a secrets manager. The example above is for illustration only.

3. Kunin ang Impormasyon sa Pagbabayad (Opsyonal)

get payment info
// Get pricing and payment address (optional, energy is always available) $supply = json_decode( file_get_contents("${api}/supply"), true ); echo "Pay to: " . $supply['pay_to'] . "\n"; echo "Energy per TRX: " . $supply['energy_per_trx'] . "\n";

4. Ipadala TRX

send TRX
// Send TRX to the API payment address — pricing is linear. // 16,250 energy per TRX. Min 4 TRX, max 1,000 TRX. // $trxAmount = 4 → 65,000 energy (standard USDT transfer) // $trxAmount = 8 → 130,000 energy (new wallet transfer) // $trxAmount = 40 → 650,000 energy (10 standard transfers) // $trxAmount = 1000 → 16,250,000 energy (max) $trxAmount = 4; $payment = $tron->sendTrx($addr, $trxAmount); if (!isset($payment['result']) || !$payment['result']) { throw new Exception('TRX transfer failed'); } $txHash = $payment['txid']; echo "Payment sent: ${txHash}\n";

5. Pirmahan ang Mensahe

Ang API ay nangangailangan ng lagda na nagpapatunay na ang parehong wallet na nagpadala ng TRX ay humihingi ng delegasyon. Ginagawa natin ito gamit ang isang maliit na Node.js helper. I-save ito bilang sign.js sa tabi ng iyong PHP file:

sign.js (run with node)
// Usage: node sign.js <tx_hash> <delegate_to> // Outputs the signature to stdout. Reads private key from TRON_PRIVATE_KEY env var. const { TronWeb } = require('tronweb'); const [, , txHash, delegateTo] = process.argv; const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); tronWeb.trx.signMessageV2(`${txHash}:${delegateTo}`) .then(sig => process.stdout.write(sig)) .catch(e => { console.error(e.message); process.exit(1); });

I-install TronWeb sa parehong folder: npm install tronwebPagkatapos ay tawagin ito mula sa PHP:

sign from PHP
// Both the sender (in $tron) and the signer must be the SAME wallet. // Make sure TRON_PRIVATE_KEY in your environment matches the wallet that sent the TRX. $delegateTo = 'TWalletThatNeedsEnergy'; $signature = trim(shell_exec( sprintf('node sign.js %s %s', escapeshellarg($txHash), escapeshellarg($delegateTo) ) )); if (!$signature) { throw new Exception('Signing failed. Check that node and tronweb are installed and TRON_PRIVATE_KEY is set.'); } echo "Signed: " . substr($signature, 0, 20) . "...\n";

6. Angkinin ang Delegasyon

claim delegation
// $txHash, $delegateTo, and $signature are all defined in the previous steps. $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $result = json_decode($response, true); if (isset($result['error'])) { throw new Exception("Delegation failed: " . $result['message']); } echo "Delegated: " . $result['energy'] . " energy\n"; echo "Ref: " . $result['ref'] . "\n";

7. Ipadala USDT

send USDT
// Send USDT using the delegated energy $usdtContract = $tron->contract($usdt); // Amount in smallest unit (6 decimals for USDT) // 10 USDT = 10 * 1,000,000 = 10000000 $amount = 10 * pow(10, 6); $recipient = 'TRecipientAddress'; $transfer = $usdtContract->transfer($recipient, $amount); echo "USDT sent: " . $transfer . "\n";

Paghawak ng Error

I-wrap ang claim call sa isang maliit na retry helper. Ang pinakakaraniwang error ay payment_verification_failed kapag ang tx ay hindi pa naka-index sa chain — maghintay ng ilang segundo at subukan muli nang isang beses.

error handling
function claimDelegation($api, $txHash, $delegateTo, $signature, $retries = 3) { for ($i = 0; $i < $retries; $i++) { $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!isset($result['error'])) { return $result; // Success } switch ($result['error']) { case 'payment_verification_failed': // Most common: tx not yet indexed. Wait and retry. sleep(3); continue 2; case 'hash_already_used': throw new Exception('This tx hash has already been claimed'); case 'signature_mismatch': throw new Exception('Signer does not match payment sender. Sign with the same wallet that sent TRX.'); case 'delegation_failed': // Refund queued automatically if payment was verified throw new Exception('Delegation failed: ' . $result['message']); default: throw new Exception($result['message'] ?? 'Unknown error'); } } throw new Exception('Transaction not found after retries'); }

Kumpletong Halimbawa

delegate-energy.php
<?php require_once 'vendor/autoload.php'; use IEXBase\TronAPI\Tron; $tron = new Tron(); $tron->setPrivateKey(getenv('TRON_PRIVATE_KEY')); $tron->setAddress(getenv('TRON_WALLET_ADDRESS')); $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; try { $delegateTo = 'TRecipientWallet'; $trxAmount = 4; // min 4, max 1000 — energy = trxAmount × 16,250 // 1. Send TRX (linear pricing: 16,250 energy per TRX) $payment = $tron->sendTrx($addr, $trxAmount); $txHash = $payment['txid']; echo "Payment: ${txHash}\n"; // 2. Sign via Node helper (see Step 5 above) $signature = trim(shell_exec( sprintf('node sign.js %s %s', escapeshellarg($txHash), escapeshellarg($delegateTo) ) )); if (!$signature) throw new Exception('Signing failed'); // 3. Claim delegation (with retry) $result = claimDelegation($api, $txHash, $delegateTo, $signature); echo "Energy: " . $result['energy'] . "\n"; echo "Ref: " . $result['ref'] . "\n"; // 4. Send USDT (energy is now available) $contract = $tron->contract('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'); $transfer = $contract->transfer($delegateTo, 10 * pow(10, 6)); echo "USDT sent: ${transfer}\n"; } catch (Exception $e) { echo "Error: " . $e->getMessage() . "\n"; }
Telegram WhatsApp