Zincirler ve varlıklar
InfraIO Pay EVM önceliklidir ve stablecoin önceliklidir. Desteklenen her
zincir, payment-service’in networks.json kayıt defterinde yapılandırılır;
aşağıdaki matris bugün test ve mainnet’te canlı olanı yansıtır.
Mainnet
| Zincir | Chain ID | Yerel | USDC | USDT | Onaylar | Min sipariş |
|---|---|---|---|---|---|---|
| Ethereum | 1 | ETH | ✓ (ERC-20) | ✓ (ERC-20) | 12 | $5.00 |
| Base | 8453 | ETH | ✓ (ERC-20) | — | 10 | $1.00 |
| Polygon | 137 | POL | ✓ (ERC-20) | ✓ (ERC-20) | 5 | $1.00 |
| BSC | 56 | BNB | ✓ (18-ondalık) | ✓ (18-ondalık) | 5 | $1.00 |
| Arbitrum | 42161 | ETH | ✓ (ERC-20) | ✓ (ERC-20) | 5 | $1.00 |
| Optimism | 10 | ETH | ✓ (ERC-20) | ✓ (ERC-20) | 5 | $1.00 |
| ZKsync Era | 324 | ETH | — | — | 5 | $1.00 |
| Mantle | 5000 | MNT | — | — | 5 | $1.00 |
BSC USDC + USDT 18 ondalık kullanır, başka her yerdeki gibi 6 değil. Tutarları herhangi bir nedenle istemci tarafında hesaplıyorsanız, bunu hesaba katın — aksi takdirde SDK’nın tutar alanları bunu halleder.
“Min sipariş”, payment-intent oluşturma zamanında uygulanan USD
zeminidir. Bugün gönderilen varsayılanlar $1.00 mainnet / $0.50
testnet’tir; Ethereum, L1 gas’ı küçük siparişleri gölgede bıraktığı
için $5’a yükseltilmiştir. Admin ops ağ başına geçersiz kılabilir —
zeminin altındaki siparişler AMOUNT_BELOW_MINIMUM (HTTP 400) ile
reddedilir ve details.floor_usd gerçek yapılandırılmış değeri taşır,
böylece FE’niz gösterebilir.
Testnet
| Zincir | Chain ID | Yerel | Onaylar | Min sipariş |
|---|---|---|---|---|
| Ethereum Sepolia | 11155111 | ETH | 1 | $0.50 |
| Base Sepolia | 84532 | ETH | 1 | $0.50 |
| Polygon Amoy | 80002 | POL | 1 | $0.50 |
| BNB Smart Chain Testnet | 97 | tBNB | 1 | $0.50 |
| Arbitrum Sepolia | 421614 | ETH | 1 | $0.50 |
| OP Sepolia | 11155420 | ETH | 1 | $0.50 |
| Mantle Sepolia | 5003 | MNT | 1 | $0.50 |
| ZKsync Sepolia | 300 | ETH | 1 | $0.50 |
Test modu mock chain değil, gerçek testnet’leri kullanır. Bir test ödemesi tetiklemek için gerçek testnet fonlarına ihtiyacınız var — bir faucet’ten çekin (örn. sepoliafaucet.com , coinbase.com/faucets ) ve checkout sayfasının ürettiği depozito adresine gönderin.
API’de kullanılan para birimi kodları
currency (üst düzey gövdede ve her line item’da) siparişin gösterim
para birimidir — alıcının tutar olarak gördüğü şeydir. Bugün platform
oluşturma zamanında tek bir kodu kabul eder:
"USD"—payment-service’teIsSupportedCurrency’nin true döndürdüğü tek değer. HemPOST /v1/ordershem dePOST /b2b/v1/checkout-sessions/quick, başka her şeyiINVALID_INPUT(“unsupported currency”) ile reddeder. Reklamı yapılan listeGET /v1/supported/currencies’de yaşar, böylece sunucunun enum’ı ve istemciniz birbirinden uzaklaşmaz.
Alıcının tahsil ettiği zincir üstü varlık (USDC, USDT, …) currency
alanı değildir. Satıcı yapılandırmanızda etkinleştirdiğiniz zincir ×
token kombinasyonlarından alıcı tarafından checkout sayfasında seçilir ve
PaymentIntent + webhook payload’unda settlement_token olarak (sembol +
zincir) size geri yansır. Yerel gas tokenleri (ETH, BNB, POL, MNT)
yalnızca zincir metadata’sıdır — geçerli ödeme para birimleri değil.
Zincirin kendisi de oluşturma zamanında belirtilmez — aynı nedenle: alıcı kombinasyonu checkout sayfasında seçer.
Onaylar ve kesinlik
Yukarıdaki “Onaylar” sütunu, zincir izleyicinin bir PaymentIntent’i
SETTLED durumuna geçirip payment.settled tetiklemeden önce beklediği
blok sayısıdır. Varsayılanlar, her zincirde tipik reorg derinliklerinde
olasılıklı kesinlik vermek için ayarlanmıştır:
- Mainnet Ethereum’un 12’si, çoğu borsanın Merge-sonrası kullandığı değerdir.
- L2’ler daha hızlı tahsil edilir ama sonunda Ethereum’un kesinliğini miras alır — zincir başına sayı, L1’in değil, L2’nin kendi reorg riskini yansıtır.
- Testnetler, geliştirme döngüsünü hızlı tutmak için 1 onayda durur; geliştirme ortamınızda mainnet düzeyinde güvenliğe ekstrapole etmeyin.
Belirli bir zincir için daha sıkı (veya daha gevşek) onaylar gerekiyorsa, zincir başına sayı satıcı hesabında yapılandırılabilir — hesap yetkilinizle konuşun.
Satıcınız için zincirleri etkinleştirme
Varsayılan olarak yeni bir satıcının testnet’te izin verici bir zincir kümesi ve mainnet’te daha dar bir kümesi vardır. Mainnet kümesi şunlara bağlıdır:
- KYB tamamlama
- Zincir başına treasury cüzdan onayı (saklamayı kanıtlayan bir mesaj imzalarsınız)
Ek zincirleri satıcı panelindeki Ayarlar → Ağlar üzerinden etkinleştirin.
Deterministik depozito adresleri
EVM depozito adresleri checkout başına deterministiktir: platform, bunları satıcıya, siparişe ve intent’e bağlı dahili parametrelerden önceden türetir. Hiçbir şeyi önceden oluşturmaz veya fonlamazsınız — yalnızca adresi PaymentIntent üzerinde geri alır ve alıcıya verirsiniz.
- Aynı satıcı için iki intent farklı adresler alır — alıcılar arası çakışma yok.
- Adres, herhangi bir zincir üstü kurulumdan önce checkout sayfasında görünür, böylece alıcı bir hedefi hemen görür.
- Alıcılar asla kurulum gas’ı ödemez. Fonlar, satıcının takip etmesi gereken ayrı bir sweep adımı olmadan doğrudan satıcı treasury’sine tahsil edilir.
Entegratörler için pratik sonuçlar:
- Bir PaymentIntent üzerinde döndürülen
deposit_addressnormal bir EVM adresidir — bir QR kod olarak gösterebilir, tarayabilir, herhangi bir cüzdandan ona gönderebilirsiniz. Özel istemci desteği gerekmez. - Intent süresi dolmadan önce adrese göndermek siparişi tahsil eder. Süresi dolduktan sonra göndermek en iyi çabayla kurtarılır — platform bazı durumlarda geç depozitoları yeniden sweep edebilir, ama geç fonların güvenli olduğunu asla varsaymayın.
- Her adres intent başına tek kullanımlıktır. Bir alıcının ikinci bir denemeye ihtiyacı varsa, yeni bir checkout oturumu üretin — yeni bir adres alırsınız.
Bugün NE desteklenmiyor
- Tron / TRC-20. USDT-TRC20 için sıkça talep edilir; yol haritasında, canlı değil.
- Solana / SPL. Yol haritasında.
- Bitcoin / Lightning. Yol haritasında değil.
- Layer-1 yerel stablecoinleri (USDe, FDUSD, …). Panel talebi üzerinden ekleyin; altta yatan zincirin yalnızca etkin olması gerekir.
Sırada ne var
- Kavramlar → Oturumlar — checkout zamanında zincir/varlık seçiminin nasıl gerçekleştiği.
- Başlangıç → Tanıtım — büyük resim modeli.