Skip to Content
개념체인 및 자산

체인 및 자산

InfraIO Pay는 EVM 우선이며 스테이블코인 우선입니다. 지원되는 모든 체인은 payment-service의 networks.json 레지스트리에 구성되어 있으며, 아래 매트릭스는 테스트 및 메인넷에서 현재 라이브 상태와 일치합니다.

메인넷

체인체인 ID네이티브USDCUSDT확인 수최소 주문
Ethereum1ETH✓ (ERC-20)✓ (ERC-20)12$5.00
Base8453ETH✓ (ERC-20)10$1.00
Polygon137POL✓ (ERC-20)✓ (ERC-20)5$1.00
BSC56BNB✓ (18-decimal)✓ (18-decimal)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는 다른 체인의 6 decimals와 달리 18 decimals를 사용합니다. 특정 이유로 클라이언트 측에서 금액을 계산하는 경우 이를 고려하세요 — 그렇지 않으면 SDK의 amount 필드가 처리합니다.

“최소 주문”은 payment-intent 생성 시 강제되는 USD 하한선입니다. 현재 배포된 기본값은 메인넷 $1.00 / 테스트넷 $0.50이며, L1 가스가 작은 주문을 압도하기 때문에 Ethereum은 $5로 상향 조정되었습니다. 관리자 운영팀은 네트워크별로 오버라이드할 수 있습니다 — 하한선 미만 주문은 AMOUNT_BELOW_MINIMUM(HTTP 400)으로 거부되며, details.floor_usd가 실제 구성된 값을 전달하므로 프론트엔드에서 표시할 수 있습니다.

테스트넷

체인체인 ID네이티브확인 수최소 주문
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

테스트 모드는 실제 테스트넷을 사용하며, 목 체인이 아닙니다. 테스트 결제를 트리거하려면 실제 테스트넷 자금이 필요합니다 — 포셋(예: sepoliafaucet.com , coinbase.com/faucets )에서 받아 체크아웃 페이지가 생성하는 입금 주소로 전송하세요.

API에서 사용되는 통화 코드

currency(최상위 본문 및 각 라인 아이템에서)는 주문의 표시 통화입니다 — 구매자가 보는 금액입니다. 현재 플랫폼은 생성 시 단일 코드만 허용합니다.

  • "USD" — payment-service의 IsSupportedCurrency가 true를 반환하는 유일한 값입니다. POST /v1/ordersPOST /b2b/v1/checkout-sessions/quick 모두 다른 값은 INVALID_INPUT(“지원되지 않는 통화”)으로 거부합니다. 공식 목록은 GET /v1/supported/currencies에 있으므로 서버의 enum과 클라이언트가 드리프트하지 않습니다.

구매자가 정산하는 온체인 자산(USDC, USDT 등)은 currency 필드가 아닙니다. 이는 가맹점 구성에서 활성화한 체인 × 토큰 조합 중 구매자가 체크아웃 페이지에서 선택한 것이며, PaymentIntent + 웹훅 페이로드에서 settlement_token(심볼 + 체인)으로 다시 노출됩니다. 네이티브 가스 토큰(ETH, BNB, POL, MNT)은 체인 메타데이터일 뿐이며 유효한 결제 통화가 아닙니다.

체인 자체도 생성 시 지정되지 않습니다 — 동일한 이유로, 구매자가 체크아웃 페이지에서 조합을 선택합니다.

확인 수 vs 파이널리티

위의 “확인 수” 열은 체인 워처가 PaymentIntent를 SETTLED로 전환하고 payment.settled를 발생시키기 전에 대기하는 블록 수입니다. 기본값은 각 체인에서 일반적인 reorg 깊이에서 확률적 파이널리티를 제공하도록 조정되어 있습니다.

  • 메인넷 Ethereum의 12는 머지 이후 대부분의 거래소가 사용하는 값입니다.
  • L2는 더 빨리 정산되지만 결국 Ethereum의 파이널리티를 상속받습니다 — 체인별 확인 수는 L1이 아닌 L2 자체의 reorg 위험을 반영합니다.
  • 테스트넷은 개발 루프를 빠르게 유지하기 위해 1 confirmation에 위치합니다. 개발 환경에서 메인넷급 안전성으로 추정하지 마세요.

특정 체인에 대해 더 엄격한(또는 더 느슨한) 확인이 필요한 경우 체인별 확인 수는 가맹점 계정에서 구성 가능합니다 — 계정 담당자에게 문의하세요.

가맹점에 대한 체인 활성화

기본적으로 새 가맹점은 테스트넷에서는 허용적인 체인 세트를, 메인넷에서는 더 좁은 세트를 가집니다. 메인넷 세트는 다음 조건을 충족해야 활성화됩니다.

  1. KYB 완료
  2. 체인별 트레저리 지갑 어트테이션(수탁 권한을 증명하는 메시지에 서명)

가맹점 대시보드의 Settings → Networks에서 추가 체인을 활성화하세요.

결정론적 입금 주소

EVM 입금 주소는 체크아웃별로 결정론적입니다. 플랫폼이 가맹점, 주문, 인텐트에 바인딩된 내부 매개변수에서 미리 도출합니다. 사전 생성하거나 자금을 조달할 필요가 없습니다 — PaymentIntent에서 주소를 받아 구매자에게 전달하기만 하면 됩니다.

  • 동일 가맹점의 두 인텐트는 다른 주소를 받습니다 — 구매자 간 충돌이 없습니다.
  • 주소는 온체인 설정 이전에 체크아웃 페이지에 나타나므로 구매자는 목적지를 즉시 볼 수 있습니다.
  • 구매자는 설정 가스를 부담하지 않습니다. 자금은 가맹점이 추적해야 하는 별도의 스윕 단계 없이 가맹점 트레저리로 바로 정산됩니다.

연동자를 위한 실용적인 시사점:

  • PaymentIntent에서 반환된 deposit_address는 일반 EVM 주소입니다 — QR 코드로 표시하거나, 스캔하거나, 모든 지갑에서 송금할 수 있습니다. 특별한 클라이언트 지원이 필요하지 않습니다.
  • 인텐트 만료 전에 주소로 전송하면 주문이 정산됩니다. 만료 후 전송은 최선의 노력 기반으로 복구됩니다 — 플랫폼이 일부 경우 늦은 입금을 다시 스윕할 수 있지만, 늦은 자금이 안전하다고 가정하지 마세요.
  • 각 주소는 인텐트별로 일회용입니다. 구매자가 두 번째 시도를 해야 하는 경우 새 체크아웃 세션을 발급하세요 — 새 주소를 받게 됩니다.

현재 지원되지 않는 항목

  • Tron / TRC-20. USDT-TRC20용으로 자주 요청됩니다 — 로드맵에 있지만 아직 라이브되지 않았습니다.
  • Solana / SPL. 로드맵에 있습니다.
  • Bitcoin / Lightning. 로드맵에 없습니다.
  • 레이어 1 네이티브 스테이블코인(USDe, FDUSD 등). 대시보드 요청을 통해 추가하세요. 기반 체인이 활성화되어 있어야 합니다.

다음 단계