# Identificadores únicos de activos (UAI)

## ¿Qué son los Unique Asset IDs?

Los **Unique Asset IDs (UAI)** son identificadores estandarizados utilizados en el protocolo NASPIP y en la API de Fluxis para identificar de forma única tokens o activos de criptomonedas específicos en distintas redes blockchain. Cada UAI representa un par concreto de red y token, lo que garantiza una identificación precisa en entornos multichain.

Para más detalles, consulte la [especificación de Unique Asset ID en la documentación de NASPIP](https://github.com/fluxisus/naspip/blob/cde9b46d3631cfce87e2cddccbf7e22bcb81b53e/docs/Unique%20Asset%20ID.md.md).

Los UAI siguen un formato consistente que facilita identificar tanto la red blockchain como el token o activo específico al que se hace referencia. Este sistema también puede ampliarse para admitir monedas fiat y otros métodos de pago tradicionales.

## Estructura del formato UAI

El formato UAI sigue este patrón:

```
n[network]_t[token_address_or_symbol]
```

Donde:

- El prefijo `n` indica "network" (red)
- `[network]` es el identificador de la red blockchain
- El separador `_t` indica "token"
- `[token_address_or_symbol]` es la dirección del contrato del token o el símbolo nativo

### Ejemplos:

- `npolygon_t0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` - USDC en Polygon
- `nerc20_t0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` - USDC en Ethereum

## Activos admitidos

Fluxis admite actualmente los siguientes Unique Asset IDs en múltiples redes blockchain:

### Red Ethereum

| UAI                                                  | Network  | Token | Symbol | Decimals |
| ---------------------------------------------------- | -------- | ----- | ------ | -------- |
| `nerc20_t0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` | Ethereum | USDC  | USDC   | 6        |
| `nerc20_t0xdAC17F958D2ee523a2206206994597C13D831ec7` | Ethereum | USDT  | USDT   | 6        |
| `nerc20_t0x0DC4F92879B7670e5f4e4e6e3c801D229129D90D` | Ethereum | wARS  | wARS   | 18       |
| `nerc20_t0xD76f5Faf6888e24D9F04Bf92a0c8B921FE4390e0` | Ethereum | wBRL  | wBRL   | 18       |
| `nerc20_t0x337E7456B420bD3481e7FA61fA9850343d610d34` | Ethereum | wMXN  | wMXN   | 18       |
| `nerc20_t0x8a1D45e102e886510e891d2Ec656a708991e2D76` | Ethereum | wCOP  | wCOP   | 18       |
| `nerc20_t0x4F34c8b3b5FB6D98Da888F0feA543d4d9C9F2eBE` | Ethereum | wPEN  | wPEN   | 18       |
| `nerc20_t0x61D450a098b6a7f69fC4b98CE68198fe59768651` | Ethereum | wCLP  | wCLP   | 18       |

### Polygon PoS

| UAI                                                    | Network     | Token  | Symbol | Decimals |
| ------------------------------------------------------ | ----------- | ------ | ------ | -------- |
| `npolygon_t0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` | Polygon PoS | USDC   | USDC   | 6        |
| `npolygon_t0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174` | Polygon PoS | USDC.e | USDC.e | 6        |
| `npolygon_t0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | Polygon PoS | USDT   | USDT   | 6        |
| `npolygon_t0x0DC4F92879B7670e5f4e4e6e3c801D229129D90D` | Polygon PoS | wARS   | wARS   | 18       |
| `npolygon_t0xD76f5Faf6888e24D9F04Bf92a0c8B921FE4390e0` | Polygon PoS | wBRL   | wBRL   | 18       |
| `npolygon_t0x337E7456B420bD3481e7FA61fA9850343d610d34` | Polygon PoS | wMXN   | wMXN   | 18       |

### Arbitrum One

| UAI                                                     | Network      | Token | Symbol | Decimals |
| ------------------------------------------------------- | ------------ | ----- | ------ | -------- |
| `narbitrum_t0xaf88d065e77c8cC2239327C5EDb3A432268e5831` | Arbitrum One | USDC  | USDC   | 6        |
| `narbitrum_t0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9` | Arbitrum One | USDT  | USDT   | 6        |

### Optimism

| UAI                                                     | Network  | Token  | Symbol | Decimals |
| ------------------------------------------------------- | -------- | ------ | ------ | -------- |
| `noptimism_t0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85` | Optimism | USDC   | USDC   | 6        |
| `noptimism_t0x7F5c764cBc14f9669B88837ca1490cCa17c31607` | Optimism | USDC.e | USDC.e | 6        |
| `noptimism_t0x94b008aA00579c1307B0EF2c499aD98a8ce58e58` | Optimism | USDT   | USDT   | 6        |

### Base

| UAI                                                 | Network | Token | Symbol | Decimals |
| --------------------------------------------------- | ------- | ----- | ------ | -------- |
| `nbase_t0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | Base    | USDC  | USDC   | 6        |
| `nbase_t0xf016413834E6D1A14F3D628B11D6Ef725a6bdbDD` | Base    | ARGt  | ARGt   | 18       |
| `nbase_t0x0DC4F92879B7670e5f4e4e6e3c801D229129D90D` | Base    | wARS  | wARS   | 18       |
| `nbase_t0xD76f5Faf6888e24D9F04Bf92a0c8B921FE4390e0` | Base    | wBRL  | wBRL   | 18       |
| `nbase_t0x337E7456B420bD3481e7FA61fA9850343d610d34` | Base    | wMXN  | wMXN   | 18       |
| `nbase_t0x8a1D45e102e886510e891d2Ec656a708991e2D76` | Base    | wCOP  | wCOP   | 18       |
| `nbase_t0x61D450a098b6a7f69fC4b98CE68198fe59768651` | Base    | wCLP  | wCLP   | 18       |

### BNB Smart Chain

| UAI                                                  | Network         | Token | Symbol | Decimals |
| ---------------------------------------------------- | --------------- | ----- | ------ | -------- |
| `nbep20_t0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d` | BNB Smart Chain | USDC  | USDC   | 18        |
| `nbep20_t0x55d398326f99059fF775485246999027B3197955` | BNB Smart Chain | USDT  | USDT   | 18        |
| `nbep20_t0x0DC4F92879B7670e5f4e4e6e3c801D229129D90D` | BNB Smart Chain | wARS  | wARS   | 18        |
| `nbep20_t0xD76f5Faf6888e24D9F04Bf92a0c8B921FE4390e0` | BNB Smart Chain | wBRL  | wBRL   | 18        |
| `nbep20_t0x337E7456B420bD3481e7FA61fA9850343d610d34` | BNB Smart Chain | wMXN  | wMXN   | 18        |
| `nbep20_t0x8a1D45e102e886510e891d2Ec656a708991e2D76` | BNB Smart Chain | wCOP  | wCOP   | 18        |

### Avalanche C-Chain

| UAI                                                      | Network           | Token | Symbol | Decimals |
| -------------------------------------------------------- | ----------------- | ----- | ------ | -------- |
| `navalanche_t0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E` | Avalanche C-Chain | USDC  | USDC   | 6        |
| `navalanche_t0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7` | Avalanche C-Chain | USDT  | USDT   | 6        |
| `navalanche_t0x2E4e93eCA2E16E4989b894e188B7F7fC0175703B` | Avalanche C-Chain | ARGt  | ARGt   | 18       |

### Tron

| UAI                                          | Network | Token | Symbol | Decimals |
| -------------------------------------------- | ------- | ----- | ------ | -------- |
| `ntrc20_tTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t` | Tron    | USDT  | USDT   | 6        |

## Uso en NASPIP

Los UAI se utilizan en todo el protocolo NASPIP para especificar exactamente qué activo debe usarse para un pago. Al crear solicitudes de pago, especificará el UAI para indicar:

1. **Qué red blockchain** utilizar para la transacción
2. **Qué token específico** debe transferirse
3. **La precisión decimal** para los cálculos de importe

### Ejemplo de uso

```json
POST /v1/pos/{posID}/payment-request
{
  "reference_id": "order-12345",
  "amount": "100",
  "unique_asset_id": "npolygon_t0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
  "order": {
    "total": "100",
    "coin_code": "USD",
    "description": "Payment for services"
  }
}
```


::::note
Este ejemplo crea una solicitud de pago por 100 USDC en Polygon a través de la API de Fluxis. La dirección de depósito la asigna Fluxis y se devuelve en el token NASPIP y en la respuesta GET de la solicitud de pago.
:::::
::::info
Actualmente, los entornos de **testnet** **no están admitidos**. Nuestro entorno sandbox opera sobre infraestructura mainnet para permitir pruebas fluidas sin necesidad de faucets de testnet.
:::::

## Soporte de monedas fiat

Si bien la implementación actual se centra en activos de criptomonedas, el formato UAI puede ampliarse para admitir monedas fiat. Las implementaciones futuras podrían incluir identificadores como:

- `nfiat_tUSD` - Dólar estadounidense
- `nfiat_tEUR` - Euro
- `nfiat_tGBP` - Libra esterlina

## Recursos adicionales

Para obtener información técnica más detallada sobre los Unique Asset IDs y su implementación en el protocolo NASPIP, consulte la documentación oficial:

📚 **[Documentación NASPIP UAI](https://github.com/fluxisus/naspip/blob/cde9b46d3631cfce87e2cddccbf7e22bcb81b53e/docs/Unique%20Asset%20ID.md.md)**

## Notas de integración

Al integrarse con la API de Fluxis:

1. **Utilice siempre la cadena UAI exacta** tal como se proporciona en las tablas anteriores
2. **Considere la precisión decimal** al formatear importes
3. **Valide la compatibilidad del UAI** antes de crear solicitudes de pago
4. **Manténgase actualizado** sobre nuevas incorporaciones de UAI a medida que ampliamos el soporte de redes



::::info
El sistema UAI garantiza que sus instrucciones de pago sean precisas, inequívocas y compatibles en todo el ecosistema NASPIP.
:::::
