<!-- Source: https://docs.infraio.xyz/es/concepts/chains -->
<!-- Last updated: 2026-10-04 -->

# Cadenas y activos

InfraIO Pay es stablecoin-first y multicadena: ocho redes EVM más TRON, Solana y TON. La matriz de abajo muestra las redes que InfraIO Pay soporta. TRON, Solana y TON llegarán a producción próximamente.

## Mainnet

| Cadena | Chain ID | Nativa | USDC | USDT | Confirmaciones | Orden mín. |
| --- | --- | --- | --- | --- | --- | --- |
| 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-decimales) | ✓ (18-decimales) | **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 |

> **Warning:**
>
> **USDC + USDT en BSC usan 18 decimales**, no 6 como en el resto.
> Si calculas importes de token por tu cuenta, tenlo en cuenta. El SDK
> y el checkout alojado lo manejan por ti.

> **Note:**
>
> "Orden mín." es el importe mínimo de una orden en USD. Los valores
> por defecto son **$1.00 en mainnet y $0.50 en testnet**, con
> Ethereum en $5 porque la comisión de red (gas) en Ethereum
> superaría a las órdenes menores. El mínimo puede variar por red.
> Las órdenes por debajo se rechazan con `AMOUNT_BELOW_MINIMUM`
> (HTTP 400), y `details.floor_usd` lleva el mínimo de esa red para
> que puedas mostrarlo al comprador.

### TRON, Solana and TON

> **Note:**
>
> **Próximamente.** TRON, Solana y TON aún no están disponibles en producción.

| Cadena | Chain ID | Nativa | USDC | USDT | Confirmaciones | Orden mín. |
| --- | --- | --- | --- | --- | --- | --- |
| TRON | `728126428` | TRX | — | ✓ (TRC-20) | **19** | $1.00 |
| Solana | `1151111081099710` | SOL | ✓ (SPL) | ✓ (SPL) | **32** | $1.00 |
| TON | `607000000000000` | TON | — | ✓ (Jetton) | **1** | $1.00 |

> **Note:**
>
> Solana y TON no tienen un chain ID de EVM, así que los IDs de arriba son los identificadores internos que la API usa para ellas. Todas las stablecoins listadas aquí usan 6 decimales. TON finaliza cada bloque, por lo que una sola confirmación ya es definitiva.

## Testnet

| Cadena | Chain ID | Nativa | Confirmaciones | Orden mín. |
| --- | --- | --- | --- | --- |
| 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 |

> **Note:**
>
> **El modo de prueba usa testnets reales**, no una cadena simulada.
> Para disparar un pago de prueba necesitas fondos testnet reales:
> obtén desde un faucet (p. ej.,
> [sepoliafaucet.com](https://sepoliafaucet.com),
> [coinbase.com/faucets](https://www.coinbase.com/faucets)) y envía
> a la dirección de depósito que la página de checkout genera.

### TRON Nile, Solana Devnet, TON Testnet

| Cadena | Chain ID | Nativa | Stablecoins de prueba | Confirmaciones | Orden mín. |
| --- | --- | --- | --- | --- | --- |
| 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 |

> **Note:**
>
> El modo de prueba en estas redes también usa testnets reales. `IUSD` es una stablecoin de prueba, solo para este modo.

## Códigos de moneda usados en la API

`currency` (en el body de nivel superior y en cada line item) es la
**moneda de visualización de la orden**: lo que el comprador ve
como importe. Hoy la plataforma acepta un único código al crear:

- `"USD"`: el único valor admitido. Tanto `POST /v1/orders` como
  `POST /b2b/v1/checkout-sessions/quick` rechazan cualquier otro con
  `INVALID_INPUT` ("unsupported currency"). `GET /v1/supported/currencies`
  devuelve la lista actual.

El **activo on-chain** en el que el comprador liquida (USDC, USDT, …)
*no* es el campo `currency`. Lo elige el comprador en la página de
checkout entre las combinaciones cadena × token que has habilitado
en tu config de comerciante, y se te devuelve en el PaymentIntent
y en el payload del webhook como `settlement_token` (símbolo + cadena).
Los tokens nativos para la comisión de red (gas) (`ETH`, `BNB`, `POL`, `MNT`, `TRX`, `SOL`, `TON`) son solo
metadatos de cadena, no monedas de pago válidas.

La cadena en sí tampoco se especifica al crear: misma razón, el
comprador elige la combinación en la página de checkout.

## Confirmaciones vs finalidad

La columna "Confirmaciones" de arriba es el número de bloques que
InfraIO Pay espera antes de pasar un PaymentIntent a `SETTLED` y enviar
`payment.settled`. Los conteos se eligen por red para que un reorg
sea poco probable:

- Ethereum mainnet usa 12 confirmaciones.
- Las L2 usan conteos menores que reflejan el riesgo de reorg propio
  de cada red.
- Las testnets usan 1 confirmación para que las pruebas sean rápidas.
  No trates los pagos de prueba como finalidad de grado mainnet.

Si necesitas confirmaciones más estrictas (o más laxas) para una
cadena específica, el conteo por cadena es configurable en la cuenta
del comerciante: habla con tu contacto de cuenta.

## Habilitar cadenas para tu comerciante

Una cuenta nueva empieza con un conjunto amplio de testnets. Las redes
mainnet quedan disponibles cuando has completado la verificación de la
cuenta y añadido una wallet de Tesorería para la red (firmas un mensaje
para demostrar que la controlas).

> Los pagos van directo a tus wallets de Tesorería — InfraIO Pay nunca retiene tus fondos.

Habilita cadenas adicionales desde **Settings → Networks** en el
dashboard del comerciante.

## Direcciones de depósito por pedido (EVM)

En EVM, cada pedido recibe su propia **dirección de depósito por pedido (CREATE2)**. Cada dirección es **única para un checkout** y se genera
de antemano. No creas ni financias nada: recibes la dirección de
vuelta en el PaymentIntent y se la muestras al comprador.

- Dos intents para el mismo comerciante obtienen direcciones
  **diferentes**: no hay colisiones entre compradores.
- El comprador ve la dirección en la página de checkout
  inmediatamente.
- Los compradores nunca pagan comisión de red (gas) de configuración. Los fondos se envían
  automáticamente a tu wallet de Tesorería, sin ningún paso aparte que tengas que rastrear.

Implicaciones prácticas para integradores:

- La `deposit_address` devuelta en un PaymentIntent es una dirección
  EVM regular: puedes mostrarla como código QR, escanearla, enviarle
  desde cualquier wallet. No se necesita soporte especial del
  cliente.
- Enviar a la dirección **antes** de que el intent expire liquida la
  orden. Los depósitos tardíos (enviados tras la expiración) a veces
  pueden reenviarse a tu wallet de Tesorería, pero no está garantizado,
  así que no cuentes con ello.
- Cada dirección es de un solo uso por intent. Si un comprador
  necesita un segundo intento, emite una nueva sesión de checkout:
  obtendrás una dirección fresca.

## Redes de pago directo a la wallet

En estas redes se usa el modo **Directo a la wallet**: los fondos van directo a tu wallet de Tesorería. TRON, Solana y TON funcionan distinto que EVM. **No hay dirección de depósito por orden ni paso de sweep**: la wallet del comprador paga directamente a tu wallet de Tesorería. Cuando la comisión de la plataforma se cobra on-chain, se separa dentro de ese mismo pago (tu parte más la comisión). En caso contrario, la comisión se factura de tu crédito prepagado. La plataforma decide cuál de las dos se aplica, no el comerciante.

| Red | Cómo paga el comprador |
| --- | --- |
| TRON | **TronLink.** El checkout se abre dentro de TronLink y el comprador aprueba la transferencia. |
| Solana | **Solana Pay.** El comprador escanea un código QR con Phantom, Solflare o cualquier wallet compatible con Solana Pay; la wallet obtiene la transacción desde el checkout. |
| TON | **TON Connect** (Tonkeeper, Telegram Wallet, MyTonWallet). El comprador aprueba una sola solicitud; las transferencias llevan un comentario con la referencia de la orden que identifica el pago. |

Antes de que los compradores puedan elegir una de estas redes, añade una **wallet de Tesorería para esa familia de redes** (EVM, TRON, Solana o TON) en el dashboard del comerciante. Formatos de dirección aceptados:

- **TRON** — dirección base58 que empieza por `T…`
- **Solana** — clave pública base58
- **TON** — formato amigable `UQ…` / `EQ…` (o formato raw `0:…`), solo basechain

En estas redes no hay una dirección de depósito que mostrar, así que deja que el checkout alojado dirija el pago.

## Lo que NO se soporta hoy

- **Bitcoin / Lightning.** No se soporta.
- **Pagos en moneda nativa.** Los compradores pagan solo con stablecoins. Las monedas nativas (ETH, BNB, POL, MNT, TRX, SOL, TON) no se aceptan como pago en ninguna red.
- **Otras stablecoins** (USDe, FDUSD, …). Contacta con soporte para
  solicitar un token adicional en una red que ya esté habilitada.

## Qué sigue

- [Conceptos → Sesiones](https://docs.infraio.xyz/es/concepts/sessions): cómo ocurre la
  selección de cadena/activo en el momento del checkout.
- [Empezar → Introducción](https://docs.infraio.xyz/es/get-started/introduction): el modelo
  general.
