Chains & tài sản
InfraIO Pay ưu tiên stablecoin và hỗ trợ đa chain: tám network EVM cùng TRON, Solana và TON. Ma trận bên dưới liệt kê các network InfraIO Pay hỗ trợ. TRON, Solana và TON sắp ra mắt.
Mainnet
| Chain | Chain ID | Native | USDC | USDT | Confirmations | Min order |
|---|---|---|---|---|---|---|
| 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-decimal) | ✓ (18-decimal) | 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 |
USDC + USDT trên BSC dùng 18 decimal, không phải 6 như mọi nơi khác. Nếu bạn tự tính amount token, hãy tính tới điều này. SDK và trang checkout do hệ thống host đã xử lý giúp bạn.
“Min order” là số tiền đơn hàng tối thiểu tính bằng USD. Mặc định là
$1.00 trên mainnet và $0.50 trên testnet, riêng Ethereum là $5 vì
phí mạng (gas) trên Ethereum sẽ lấn át các order nhỏ. Mức tối thiểu có
thể khác nhau theo từng network. Order dưới ngưỡng bị reject với
AMOUNT_BELOW_MINIMUM (HTTP 400), và details.floor_usd mang mức tối
thiểu của network đó để bạn hiển thị cho người mua.
TRON, Solana và TON
Sắp ra mắt. TRON, Solana và TON hiện chưa có trên production.
| Chain | Chain ID | Native | USDC | USDT | Confirmations | Min order |
|---|---|---|---|---|---|---|
| TRON | 728126428 | TRX | — | ✓ (TRC-20) | 19 | $1.00 |
| Solana | 1151111081099710 | SOL | ✓ (SPL) | ✓ (SPL) | 32 | $1.00 |
| TON | 607000000000000 | TON | — | ✓ (Jetton) | 1 | $1.00 |
Solana và TON không có chain ID kiểu EVM, nên các ID ở trên là mã định danh nội bộ mà API dùng cho chúng. Mọi stablecoin liệt kê ở đây đều dùng 6 decimal. TON finalize từng block, nên chỉ cần một confirmation là đã final.
Testnet
| Chain | Chain ID | Native | Confirmations | Min order |
|---|---|---|---|---|
| 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 |
Chế độ thử nghiệm dùng các testnet thật, không phải chain giả lập. Để kích hoạt một giao dịch thử bạn cần token testnet thật — lấy từ faucet (ví dụ sepoliafaucet.com , coinbase.com/faucets ) rồi gửi đến địa chỉ nhận tiền riêng cho từng đơn mà trang thanh toán sinh ra.
TRON Nile, Solana Devnet, TON Testnet
| Chain | Chain ID | Native | Token thử nghiệm | Confirmations | Min order |
|---|---|---|---|---|---|
| TRON Nile | 3448148188 | TRX | USDT, IUSD | 19 | $0.50 |
| Solana Devnet | 1151111081099711 | SOL | USDC, IUSD | 32 | $0.50 |
| TON Testnet | 607000000000003 | TON | IUSD | 1 | $0.50 |
Chế độ thử nghiệm trên các network này cũng dùng testnet thật. IUSD là stablecoin thử nghiệm (IUSD), chỉ dùng để test.
Mã currency dùng trong API
currency (ở body cấp cao nhất và trong mỗi line item) là display
currency của order — số tiền mà người mua nhìn thấy. Hiện tại
platform chấp nhận duy nhất một mã khi tạo:
"USD"— giá trị duy nhất được hỗ trợ. CảPOST /v1/ordersvàPOST /b2b/v1/checkout-sessions/quickđều reject mọi thứ khác vớiINVALID_INPUT(“unsupported currency”).GET /v1/supported/currenciestrả về danh sách hiện tại.
Tài sản on-chain mà người mua dùng để settle (USDC, USDT, …)
không phải là trường currency. Nó được người mua chọn trên trang
checkout từ các cặp chain × token mà bạn đã enable trong cấu hình
merchant, và được trả về cho bạn trên PaymentIntent và payload
webhook dưới dạng settlement_token (ký hiệu + chain). Đồng native trả
phí mạng (gas) (ETH, BNB, POL, MNT, TRX, SOL, TON) chỉ là metadata của chain — không
phải payment currency hợp lệ.
Chain bản thân cũng không được chỉ định tại thời điểm tạo — cùng lý do: người mua chọn cặp trên trang checkout.
Confirmations vs finality
Cột “Confirmations” ở trên là số block mà InfraIO Pay chờ trước khi chuyển
một PaymentIntent sang SETTLED và gửi payment.settled. Số lượng
được chọn theo từng network để khiến reorg khó xảy ra:
- Ethereum mainnet dùng 12 confirmation.
- L2 dùng số lượng thấp hơn, phản ánh rủi ro reorg của từng network.
- Testnet dùng 1 confirmation để việc test nhanh. Đừng coi thanh toán test là finality ngang mainnet.
Nếu bạn cần confirmation chặt hơn (hoặc lỏng hơn) cho một chain cụ thể, số count theo từng chain có thể cấu hình ở tài khoản merchant — trao đổi với account contact của bạn.
Bật chain cho merchant của bạn
Một tài khoản mới bắt đầu với một tập testnet rộng. Các network mainnet khả dụng khi bạn đã hoàn tất xác minh tài khoản và thêm ví Treasury cho network đó (bạn ký một thông điệp để chứng minh quyền kiểm soát ví).
Thanh toán đi thẳng vào các ví Treasury của bạn — InfraIO Pay không bao giờ giữ tiền của bạn.
Bật thêm chain tại Settings → Networks trong merchant dashboard.
Địa chỉ nhận tiền riêng cho từng đơn (CREATE2, EVM)
Trên các network EVM, mỗi đơn có một địa chỉ nhận tiền riêng (per-order deposit address, tạo bằng CREATE2) và mỗi địa chỉ là duy nhất cho một checkout và được tạo trước. Bạn không tạo hay fund gì cả: bạn nhận địa chỉ trên PaymentIntent và hiển thị nó cho người mua.
- Hai intent cho cùng một merchant nhận được địa chỉ khác nhau — không có collision giữa các người mua.
- Người mua thấy địa chỉ trên trang checkout ngay lập tức.
- Người mua không bao giờ trả phí mạng (gas) cho khâu thiết lập. Tiền được chuyển tự động về ví Treasury của bạn mà không cần bạn theo dõi bước chuyển tiền riêng (sweep: bước hệ thống gom tiền từ địa chỉ nhận tiền của đơn về ví Treasury).
Hệ quả thực tế cho integrator:
deposit_addresstrả về trên một PaymentIntent là một địa chỉ EVM thông thường — bạn có thể hiển thị nó dưới dạng QR, quét nó, gửi từ ví bất kỳ. Không cần hỗ trợ client đặc biệt.- Gửi đến địa chỉ trước khi intent hết hạn sẽ settle order. Khoản nạp muộn (gửi sau khi hết hạn) đôi khi có thể được chuyển về ví Treasury của bạn, nhưng điều này không được đảm bảo, nên đừng dựa vào nó.
- Mỗi địa chỉ là single-use cho mỗi intent. Nếu một người mua cần thử lại lần hai, hãy phát hành một checkout session mới — bạn sẽ nhận được địa chỉ mới.
Network thanh toán thẳng vào ví
TRON, Solana và TON hoạt động khác với EVM. Không có địa chỉ nhận tiền riêng cho từng đơn và không có bước chuyển tiền (sweep): ví của người mua trả thẳng vào ví Treasury của bạn (kiểu Thẳng vào ví, Direct to wallet). Khi phí nền tảng được thu on-chain, nó được tách ra ngay trong cùng giao dịch đó (phần của bạn cộng với phí). Nếu không, phí được trừ vào credit trả trước của bạn. Nền tảng quyết định cách nào áp dụng, không phải merchant.
| Network | Cách người mua thanh toán |
|---|---|
| TRON | TronLink. Checkout mở bên trong TronLink và người mua duyệt giao dịch chuyển. |
| Solana | Solana Pay. Người mua quét mã QR bằng Phantom, Solflare hoặc bất kỳ ví Solana Pay nào; ví sẽ lấy giao dịch từ trang checkout. |
| TON | TON Connect (Tonkeeper, Telegram Wallet, MyTonWallet). Người mua duyệt một yêu cầu duy nhất; các giao dịch chuyển mang một comment tham chiếu order để xác định khoản thanh toán. |
Trước khi người mua có thể chọn một trong các network này, hãy thêm ví Treasury cho họ network đó (EVM, TRON, Solana hoặc TON) trong merchant dashboard. Định dạng địa chỉ được chấp nhận:
- TRON — địa chỉ base58 bắt đầu bằng
T… - Solana — public key base58
- TON — dạng thân thiện
UQ…/EQ…(hoặc dạng raw0:…), chỉ basechain
Trên các network này không có địa chỉ nhận tiền riêng cho từng đơn để hiển thị, vì vậy hãy để trang thanh toán dựng sẵn điều khiển việc thanh toán.
Những thứ HIỆN CHƯA hỗ trợ
- Bitcoin / Lightning. Không được hỗ trợ.
- Thanh toán bằng đồng native. Người mua chỉ trả bằng stablecoin. Các đồng native (ETH, BNB, POL, MNT, TRX, SOL, TON) không được chấp nhận làm phương tiện thanh toán trên bất kỳ network nào.
- Stablecoin khác (USDe, FDUSD, …). Liên hệ support để yêu cầu thêm một token trên network đã được enable.
Tiếp theo
- Khái niệm → Sessions — việc chọn chain/asset diễn ra như thế nào tại thời điểm checkout.
- Bắt đầu → Giới thiệu — mô hình tổng thể.