ANUANI YA MALIPO YA API
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Tuma TRX kwa anwani hii. Hashi yako ya tx inatumika kudai ugawaji wa nishati.

Muunganisho kamili wa PHP kwa kutumia iexbase/tron-api maktaba. Kila hatua ni kizuizi cha msimbo kinachojitegemea ambacho unaweza kunakili katika mradi wako. Hufanya kazi na mfumo wowote wa PHP au PHP tupu.

Masharti ya awali: PHP 7.4+, Mtunzi, ext-gmp na ext-bcmath imewezeshwa, pochi ya Tron inayofadhiliwa.
Kuhusu kuingia katika PHP: API TronEnergy inahitaji sahihi ya pochi kwa kutumia tronWeb.trx.signMessageV2(). Ya iexbase/tron-api maktaba haionyeshi uthibitishaji huu halisi wa awali, kwa hivyo mwongozo huu unatumia msaidizi mdogo wa Node.js kwa hatua ya kusaini. Kila kitu kingine (kutuma TRX , kupiga API , kutuma USDT ) hubaki katika PHP. Ikiwa una suluhisho la kusaini la PHP safi ambalo hutoa sahihi halali ya signMessageV2, unaweza kubadilisha msaidizi bila kubadilisha hatua nyingine yoyote.

Mtiririko

Hakuna ufunguo wa API . Hakuna usajili. Nambari yako hutuma TRX kwenye mnyororo kwenye anwani ya malipo TronEnergy , husaini ujumbe unaothibitisha umiliki, kisha hudai ugawaji. Energy hufika baada ya takriban sekunde 3. Kisha nambari yako hutuma USDT kwa kutumia nishati iliyokabidhiwa.

1
Tuma TRX
Tuma TRX 4 au zaidi kwa anwani ya malipo iliyopo kwenye mnyororo (kiwango cha chini cha 4, kiwango cha juu cha 1000).
2
Ishara
Saini tx_hash:delegate_to ili kuthibitisha wewe ndiye mtumaji.
3
Dai
POST /delegate na hash ya tx na sahihi. Energy inafika katika ~sekunde 3.
Bei ni ya mstari: Energy 16,250 kwa kila 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.

Hatua kwa Hatua

1. Sakinisha

composer
composer require iexbase/tron-api

2. Usanidi

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
Kamwe usitumie vitambulisho vya msimbo mgumu. Use environment variables or a secrets manager. The example above is for illustration only.

3. Pata Maelezo ya Malipo (Si lazima)

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. Tuma 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. Saini Ujumbe

API inahitaji sahihi inayothibitisha kwamba pochi ile ile iliyotuma TRX inaomba uwakilishi. Tunafanya hivi kwa kutumia msaidizi mdogo wa Node.js. Ihifadhi kama sign.js karibu na faili yako ya PHP:

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); });

Sakinisha TronWeb kwenye folda ile ile: npm install tronwebKisha iite kutoka kwa 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. Dai Uwakilishi

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. Tuma 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";

Kushughulikia Hitilafu

Funga simu ya dai kwa kutumia kifaa kidogo cha usaidizi wa kujaribu tena. Hitilafu ya kawaida ni payment_verification_failed wakati tx bado haijaorodheshwa kwenye mnyororo — subiri sekunde chache na ujaribu tena mara moja.

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'); }

Mfano Kamili

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