API გადახელის მისამართი
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
აგზავნეთ TRX ამ მისამართზე. თქვენი tx hash გამოიყენება ენერგიის დელეგაციის დაკრეფებისთვის.

სრული Python ინტეგრაცია tronpy-ის გამოყენებით. თითოეული ნაბიჯი არის ცალკე კოდის ბლოკი, რომელიც შეგიძლია თქვენს პროექტში დააკოპიროთ. სრული end-to-end მაგალითი ქვემოთ არის.

წინაპირობები: Python 3.8+, tronpy დაინსტალირებული (pip install tronpy), დაფინანსებული Tron საფულე.

ნაკადი

API გასაღები არ არის. რეგისტრაცია არ არის. თქვენი კოდი აგზავნის TRX ჯაჭვში TronEnergy გადახელის მისამართზე, ხელმოწერს გამოთქმას, რომელიც მालკიანობას ამტკიცებს, შემდეგ აკრეფს დელეგაციას. ენერგია ჩამოდის დაახლოებით 3 წამში. შემდეგ თქვენი კოდი აგზავნის USDT დელეგირებული ენერგიის გამოყენებით.

ფასი ხაზოვანია: 16,250 ენერგია თითო TRX. მინიმალური შეკვეთა 4 TRX (65,000 ენერგია — ერთი სტანდარტული USDT გადახელი), მაქსიმუმ 1,000 TRX (16.25M ენერგია). თქვენი მიერ გაგზავნილი თანხა განსაზღვრავს ზუსტად რამდენი ენერგია დაბრუნდება — პაკეტი ან დონე არ აქვს. ერთი სტანდარტული გადახელისთვის აგზავნეთ 4. ახალი საფულის გადახელისთვის აგზავნეთ 8. მასობრივი სამუშაოსთვის აგზავნეთ მეტი. ქვემოთ მოყვანილი კოდი იყენებს TRX_AMOUNT ცვლადს ისე რომ შეგიძლიათ ის ერთ ადგილას შეცვალოთ.

ეტაპობრივი

1. დაყენება

დაყენება
import os, requests from tronpy import Tron from tronpy.keys import PrivateKey, keccak256 from coincurve import PrivateKey as CCKey # tronpy already depends on coincurve client = Tron() # mainnet — pass HTTPProvider(api_key=...) to avoid rate limits priv = PrivateKey(bytes.fromhex(os.environ['TRON_PRIVATE_KEY'])) sender = priv.public_key.to_base58check_address() API = 'https://api.tronnrg.com' ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx' # API payment address USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'

2. TRX-ის გადახელა

გადახდის გაგზავნა
TRX_AMOUNT = 4 # Linear: 16,250 energy per TRX. Min 4, max 1000. # 4 → 65k (standard) · 8 → 130k (new wallet) · 40 → 650k (10 transfers) payment = ( client.trx.transfer(sender, ADDR, TRX_AMOUNT * 1_000_000) .build().sign(priv).broadcast() ) print('Payment tx:', payment.txid)

3. დელეგაციის მოთხოვნა

დელეგაციის მოთხოვნა
# Sign: proves you are the sender. Must equal TronWeb signMessageV2 exactly: # keccak256("\x19TRON Signed Message:\n" + len + msg), secp256k1, v = rec + 27. def sign_message_v2(message, priv): msg = message.encode() prefix = b"\x19TRON Signed Message:\n" + str(len(msg)).encode() digest = keccak256(prefix + msg) raw = CCKey(priv.to_bytes()).sign_recoverable(digest, hasher=None) return '0x' + (raw[:64] + bytes([raw[64] + 27])).hex() msg = f"{payment.txid}:{sender}" sig = sign_message_v2(msg, priv) delegation = requests.post(f"{API}/delegate", json={ 'tx_hash': payment.txid, 'delegate_to': sender, 'signature': sig, }).json() if delegation.get('error'): raise Exception(delegation['message']) print('Energy delegated:', delegation['energy']) # TRX_AMOUNT × 16,250

4. USDT-ის გაგზავნა

USDT გაგზავნა
recipient = 'TRecipientWallet' contract = client.get_contract(USDT) tx = ( contract.functions.transfer(recipient, 10 * 1_000_000) .with_owner(sender).fee_limit(50_000_000) .build().sign(priv).broadcast() ) print('USDT sent:', tx.txid)

შეცდომების მართვა

შეცდომების დამუშავება
result = requests.post(f"{API}/delegate", json=payload).json() if result.get('error'): err = result['error'] if err == 'payment_verification_failed': pass # Payment not yet indexed on-chain. Wait 3s and retry. elif err == 'hash_already_used': pass # Already claimed. Do not retry. elif err == 'signature_mismatch': pass # Sender of TRX != signer of the message. Sign with the same key. elif err == 'delegation_failed': pass # Provider could not deliver. Retry or contact support with result['ref'].

სრული მაგალითი

დააკოპირეთ ეს ფაილში, დააყენეთ თქვენი TRON_PRIVATE_KEY გარემოს ცვლადი და გაუშვით. სკრიპტი აგზავნის TRX-ს, ხელმოწერს შეტყობინებას, მოითხოვს დელეგაციას ხელახლა ცდის სხვა ვარიანტით, შემდეგ აგზავნის USDT-ს.

delegate_energy.py
import os, time, requests from tronpy import Tron from tronpy.keys import PrivateKey, keccak256 from coincurve import PrivateKey as CCKey client = Tron() # mainnet — pass HTTPProvider(api_key=...) to avoid rate limits priv = PrivateKey(bytes.fromhex(os.environ['TRON_PRIVATE_KEY'])) sender = priv.public_key.to_base58check_address() API = 'https://api.tronnrg.com' ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx' USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t' # Signature must match TronWeb signMessageV2 byte-for-byte. def sign_message_v2(message, priv): msg = message.encode() prefix = b"\x19TRON Signed Message:\n" + str(len(msg)).encode() digest = keccak256(prefix + msg) raw = CCKey(priv.to_bytes()).sign_recoverable(digest, hasher=None) return '0x' + (raw[:64] + bytes([raw[64] + 27])).hex() def claim_with_retry(tx_hash, delegate_to, signature, retries=3): for _ in range(retries): res = requests.post(f"{API}/delegate", json={ 'tx_hash': tx_hash, 'delegate_to': delegate_to, 'signature': signature, }).json() if not res.get('error'): return res if res['error'] != 'payment_verification_failed': raise Exception(res['message']) time.sleep(3) raise Exception('Transaction not found after retries') def main(): recipient = 'TRecipientWallet' trx_amount = 4 # min 4, max 1000 — you get trx_amount × 16,250 energy # 1. Send TRX (linear pricing: 16,250 energy per TRX) payment = ( client.trx.transfer(sender, ADDR, trx_amount * 1_000_000) .build().sign(priv).broadcast() ) print('Payment:', payment.txid) # 2. Claim delegation (the signature proves you sent the TRX) signature = sign_message_v2(f"{payment.txid}:{recipient}", priv) result = claim_with_retry(payment.txid, recipient, signature) print('Delegated:', result['energy'], 'energy') print('Delegation tx:', result['delegations'][0]['tx']) # verify on TronScan print('Ref:', result['ref']) # 3. Send USDT using the delegated energy contract = client.get_contract(USDT) tx = ( contract.functions.transfer(recipient, 10 * 1_000_000) .with_owner(sender).fee_limit(50_000_000) .build().sign(priv).broadcast() ) print('USDT sent:', tx.txid) if __name__ == '__main__': main()
ყოველთვის შეიტანეთ ხელმოწერა. ის დასტურდება, რომ თქვენი ის საფულე, რომელმაც TRX გაგზავნა. მის გარეშე, API უარყოფს მოთხოვნას missing_signature.
Telegram WhatsApp