MercanPay Blog

TRC20 Adres Formatı Nedir? TRON Adresi Nasıl Doğrulanır

TRC20 adres formatını öğrenin: T ile başlayan 34 karakterlik TRON adresinin yapısı, Base58Check sağlama toplamı ve kodla adres doğrulama örnekleri.

Yayınlanma: 2 Kasım 20265 dk okumaRead in English
TRC20 Adres Formatı Nedir? TRON Adresi Nasıl Doğrulanır

TRC20 adres formatı, TRON ağında USDT ve TRX alıp göndermek için kullanılan adreslerin yapısını tanımlar. Bir TRON adresi her zaman büyük "T" harfiyle başlar, 34 karakterden oluşur ve içinde yazım hatalarını yakalayan bir sağlama toplamı taşır. Bu yazıda TRC20 adresinin nasıl oluştuğunu, onu gözle ve kodla nasıl doğrulayabileceğinizi ve doğrulamanın neyi garanti edip neyi etmediğini anlatıyoruz.

TRC20 adresi ile TRON adresi aynı şey mi?

Evet. "TRC20" aslında TRON üzerindeki token standardının adıdır, bir adres türü değildir. USDT (TRC20) ya da TRX, aynı TRON adresine gönderilir. Günlük dilde "TRC20 adresi" dendiğinde kastedilen, bir TRON adresidir.

Bu ayrım neden önemli? Çünkü aynı USDT, farklı ağlarda farklı adres biçimleriyle dolaşır. ERC20 ve BEP20 adresleri 0x ile başlar, TRON adresleri ise T ile. Ağlar arasındaki farkları USDT nedir? TRC20, ERC20 ve BEP20 farkı yazımızda ayrıntılı anlattık.

Bir TRON adresinin yapısı

Bir TRON adresi, bir açık anahtardan türetilen 21 baytlık bir değerdir. İlk bayt her zaman 0x41'dir ve bu önek adresi TRON ana ağına ait kılar. Geri kalan 20 bayt, açık anahtarın özetinden gelir.

Bu 21 bayt iki biçimde gösterilebilir:

Biçim Örnek görünüm Nerede görürsünüz
Base58Check T ile başlayan 34 karakter Cüzdanlar, borsalar, ödeme sayfaları
Hex 41 ile başlayan 42 onaltılık karakter Bazı geliştirici araçları ve ham veriler

Kullanıcıların gördüğü ve kopyaladığı biçim Base58Check biçimidir. 0x41 öneki bu kodlamada her zaman "T" harfine dönüşür. Bu yüzden geçerli her TRON adresi T ile başlar.

Base58 alfabesi

Base58, karıştırılması kolay karakterleri dışarıda bırakır. Alfabede şunlar yoktur:

  • 0 (sıfır)
  • O (büyük o)
  • I (büyük ı)
  • l (küçük L)

Bir adreste bu karakterlerden biri varsa adres kesinlikle geçersizdir. Bu kural, adresin elle yazıldığı ya da bir görüntüden okunduğu durumlarda hataları erken yakalar.

Sağlama toplamı (checksum)

Base58Check'in "Check" kısmı, adresin sonuna eklenen 4 baytlık bir sağlama toplamıdır. Bu değer, 21 baytlık adres verisinin iki kez SHA-256 özetinin ilk 4 baytıdır. Bir karakter bile yanlış yazılırsa sağlama toplamı büyük olasılıkla tutmaz ve cüzdan adresi reddeder.

Kısacası geçerli bir TRC20 adresi:

  1. T ile başlar,
  2. tam olarak 34 karakterdir,
  3. yalnızca Base58 alfabesindeki karakterleri içerir,
  4. çözüldüğünde 0x41 önekiyle başlar,
  5. sağlama toplamı doğrudur.

Kodla TRC20 adres doğrulama

Formunuzda müşteri ya da çalışanlarınız bir TRON adresi giriyorsa, adresi kaydetmeden önce doğrulamak iyi bir alışkanlıktır. Aşağıdaki Python fonksiyonu yukarıdaki beş kuralı ek kütüphane olmadan uygular:

import hashlib

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def is_tron_address(addr: str) -> bool:
    if len(addr) != 34 or not addr.startswith("T"):
        return False
    n = 0
    for ch in addr:
        i = ALPHABET.find(ch)
        if i < 0:
            return False          # 0, O, I, l gibi geçersiz karakter
        n = n * 58 + i
    try:
        raw = n.to_bytes(25, "big")
    except OverflowError:
        return False
    payload, checksum = raw[:21], raw[21:]
    digest = hashlib.sha256(hashlib.sha256(payload).digest()).digest()
    return payload[0] == 0x41 and digest[:4] == checksum

Bu fonksiyonu nerede kullanmalısınız? En iyi yer, adresin sisteminize girdiği andır: bir form gönderildiğinde, bir çalışan ödeme adresini güncellediğinde ya da bir müşteri iade için adres bildirdiğinde. Geçersiz bir adresi o anda reddetmek, hatayı ancak transfer denendiğinde fark etmekten çok daha ucuzdur. Kullanıcıya da net bir mesaj gösterin: "Bu bir TRON (TRC20) adresi değil. Lütfen T ile başlayan 34 karakterlik adresinizi kontrol edin." Genel bir "geçersiz giriş" uyarısı yerine bu tür somut bir açıklama, müşterinin sorunu kendi başına çözmesini sağlar.

Bir uyarı daha: adresi kaydederken baştaki ve sondaki boşlukları temizleyin, ama adresin içindeki karakterlere asla dokunmayın. Büyük/küçük harf dönüşümü gibi "düzeltmeler" geçerli bir adresi bozar.

MercanPay API ile doğrulama

Kendi doğrulamanızı yazmak istemiyorsanız MercanPay API'sindeki adres sorgusunu kullanabilirsiniz. GET /v1/chain/addresses/{address} uç noktası, geçersiz bir adres için valid: false döner. Geçerli adreslerde ise adresin etkinleştirilip etkinleştirilmediğini ve bakiyelerini de gösterir. Bu uç nokta read yetkili bir anahtarla çalışır.

import os
from mercanpay import MercanPay

zp = MercanPay("https://mercanpay.com", os.environ["MERCANPAY_API_KEY"])

info = zp.address_info("T...")
if not info["valid"]:
    print("Bu bir TRON adresi değil")
else:
    print("Etkin mi:", info["activated"])

PHP kütüphanesinde aynı sorgu $zp->addressInfo('T...') ile yapılır. Diğer uç noktalar için dokümantasyona bakabilirsiniz.

Doğrulama neyi garanti eder, neyi etmez?

Burası çok önemli. Biçim doğrulaması yalnızca adresin yapısal olarak geçerli bir TRON adresi olduğunu söyler. Şunları garanti etmez:

  • Adresin doğru kişiye ait olduğunu. Geçerli ama yanlış bir adres, geçerli bir adrestir.
  • Adresin değiştirilmediğini. Panoyu değiştiren zararlı yazılımlar ya da adres zehirleme saldırıları, geçerli görünen sahte adresler üretir. Ayrıntılar: adres zehirleme saldırısı.
  • Karşı tarafın o adreste USDT kabul edebildiğini. Örneğin bir borsa adresi farklı bir ağa ait olabilir.

Bu yüzden sağlama toplamı, yazım hatalarına karşı bir güvenlik ağıdır ama dikkatin yerini tutmaz. Adresin başını, ortasını ve sonunu karşılaştırmak hâlâ gereklidir.

Ödeme alırken adres formatı

MercanPay ile ödeme alırken müşteriye gösterilen adresi siz yazmazsınız. Her fatura için sistem tarafından bir TRON adresi atanır ve ödeme sayfasında hem metin hem QR kod olarak gösterilir. Bu, elle kopyalama kaynaklı hataları büyük ölçüde ortadan kaldırır. QR kodun avantajlarını QR kod ile kripto ödeme yazımızda anlattık.

Müşterinizin hata yapabileceği asıl nokta ağ seçimidir. TRON adresine başka bir ağdan gönderim yapılırsa ne olacağını yanlış ağa gönderilen kripto yazımızda ele aldık.

Çekim yaparken adres formatı

Bakiyenizi çekerken adresi siz girersiniz. Burada şu alışkanlıklar işe yarar:

  • Kayıtlı adresler kullanın. Panelde adresleri bir kez kaydedip etiketleyin; her çekimde yeniden yapıştırmayın.
  • İlk çekimde küçük tutar gönderin. Minimum çekim 10 $ değerindedir.
  • Adresi kaynağından alın. Borsanızın ya da cüzdanınızın "yatırma" ekranından kopyalayın, eski işlem geçmişinden değil.

API ile yapılan çekimler yalnızca güvenilir olarak işaretlenmiş kayıtlı adreslere gidebilir. Bu kuralın arka planı kripto hesap güvenliği yazımızda.

Sık sorulan sorular

TRON adresim küçük harfle başlıyor, bu normal mi?

Hayır. Base58Check biçimindeki her TRON ana ağ adresi büyük "T" ile başlar. Farklı bir harfle başlayan adres ya başka bir ağa aittir ya da hatalıdır.

TRC20 adresi büyük/küçük harfe duyarlı mı?

Evet. Base58'de büyük ve küçük harfler farklı değerlerdir. Tek bir harfin büyüklüğünü değiştirmek adresi geçersiz kılar ya da sağlama toplamını bozar.

41 ile başlayan uzun bir adres gördüm, bu ne?

Bu, aynı adresin hex biçimidir. Kullanıcılara ve cüzdanlara her zaman T ile başlayan Base58Check biçimini verin.

Geçerli bir adrese yanlışlıkla gönderdim, geri alınabilir mi?

Blokzincirde onaylanan bir işlem geri alınamaz. Adres başka birine aitse ancak o kişinin iyi niyetiyle geri dönebilir. Bu yüzden gönderim öncesi kontrol esastır.

MercanPay ile başlayın

Her faturaya otomatik atanan TRON adresi, QR kod ve doğru ağ uyarılarıyla USDT ve TRX kabul etmek için satıcı başvurunuzu yapın.

#TRC20#TRON#Güvenlik#API

İlgili yazılar

Kripto ödemeleri dakikalar içinde almaya başlayın

USDT ve TRX (TRC20) ile ödeme alın. %0,4'ten başlayan komisyon, hazır ödeme sayfası, API ve webhook.