API ÖDEME ADRESİ
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Bu adrese TRX gönderin. İşlem hash'iniz enerji delegasyonunu talep etmek için kullanılır.

tronpy kullanarak tam Python entegrasyonu. Her adım, projenize kopyalayabileceğiniz bağımsız bir kod bloğudur. Tam uçtan uca örnek sayfanın altındadır.

Ön Koşullar: Python 3.8+, tronpy yüklü (pip install tronpy), finansal olarak desteklenmiş bir Tron cüzdanı.

Akış

API anahtarı yok. Kaydolma yok. Kodunuz zincir üzerinde TRX'i TronEnergy ödeme adresine gönderir, sahipliği kanıtlayan bir mesajı imzalar, ardından delegasyonu talep eder. Enerji yaklaşık 3 saniye içinde ulaşır. Ardından kodunuz devredilen enerjiyi kullanarak USDT gönderir.

Fiyatlandırma doğrusaldır: TRX başına 16.250 Enerji. Minimum sipariş 4 TRX (65.000 Enerji — standart bir USDT transferi), maksimum 1.000 TRX (16,25 M Enerji). Gönderdiğiniz miktar tam olarak ne kadar Enerji geri geleceğini belirler — paket veya kategorisi yoktur. Tek bir standart transfer için 4 gönderin. Yeni cüzdan transferi için 8 gönderin. Toplu çalışma için daha fazla gönderin. Aşağıdaki kod, tek bir yerde değiştirebileceğiniz bir TRX_AMOUNT değişkeni kullanır.

Adım Adım

1. Kurulum

kurulum
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 Gönder

ödeme gönder
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. Delegasyonu Talep Et

delegasyonu talep et
# 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 Gönder

USDT gönder
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)

Hata Yönetimi

hataları işleme
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'].

Tam Örnek

Bunu bir dosyaya kopyala, TRON_PRIVATE_KEY ortam değişkenini ayarla ve çalıştır. Betik TRX gönderir, mesajı imzalar, delegasyonu yeniden deneme ile talep eder ve ardından USDT gönderir.

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()
Her zaman imzayı dahil et. Bu, TRX gönderen cüzdan olduğunu kanıtlar. Olmadan API isteği missing_signature ile reddeder.
Telegram WhatsApp