Skip to Content
KavramlarZincirler ve varlıklar

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

ZincirChain IDYerelUSDCUSDTOnaylarMin sipariş
Ethereum1ETH✓ (ERC-20)✓ (ERC-20)12$5.00
Base8453ETH✓ (ERC-20)10$1.00
Polygon137POL✓ (ERC-20)✓ (ERC-20)5$1.00
BSC56BNB✓ (18-ondalık)✓ (18-ondalık)5$1.00
Arbitrum42161ETH✓ (ERC-20)✓ (ERC-20)5$1.00
Optimism10ETH✓ (ERC-20)✓ (ERC-20)5$1.00
ZKsync Era324ETH5$1.00
Mantle5000MNT5$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

ZincirChain IDYerelOnaylarMin sipariş
Ethereum Sepolia11155111ETH1$0.50
Base Sepolia84532ETH1$0.50
Polygon Amoy80002POL1$0.50
BNB Smart Chain Testnet97tBNB1$0.50
Arbitrum Sepolia421614ETH1$0.50
OP Sepolia11155420ETH1$0.50
Mantle Sepolia5003MNT1$0.50
ZKsync Sepolia300ETH1$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’te IsSupportedCurrency’nin true döndürdüğü tek değer. Hem POST /v1/orders hem de POST /b2b/v1/checkout-sessions/quick, başka her şeyi INVALID_INPUT (“unsupported currency”) ile reddeder. Reklamı yapılan liste GET /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:

  1. KYB tamamlama
  2. 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_address normal 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