# Identificadores únicos de ativos (UAI)

## O que são Unique Asset IDs?

**Unique Asset IDs (UAI)** são identificadores padronizados usados no protocolo NASPIP e na API Fluxis para identificar de forma única tokens ou ativos de criptomoedas específicos em diferentes redes blockchain. Cada UAI representa um par específico de rede e token, garantindo identificação precisa em ambientes multichain.

Para mais detalhes, consulte a [especificação de Unique Asset ID na documentação NASPIP](https://github.com/fluxisus/naspip/blob/cde9b46d3631cfce87e2cddccbf7e22bcb81b53e/docs/Unique%20Asset%20ID.md.md).

Os UAIs seguem um formato consistente que facilita identificar tanto a rede blockchain quanto o token ou ativo específico referenciado. Esse sistema também pode ser estendido para suportar moedas fiat e outros métodos de pagamento tradicionais.

## Estrutura do formato UAI

O formato UAI segue este padrão:

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

Onde:

- O prefixo `n` indica "network" (rede)
- `[network]` é o identificador da rede blockchain
- O separador `_t` indica "token"
- `[token_address_or_symbol]` é o endereço do contrato do token ou o símbolo nativo

### Exemplos:

- `npolygon_t0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` - USDC na Polygon
- `nerc20_t0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` - USDC na Ethereum

## Ativos suportados

A Fluxis suporta atualmente os seguintes Unique Asset IDs em múltiplas redes blockchain:

### Rede 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 no NASPIP

Os UAIs são usados em todo o protocolo NASPIP para especificar exatamente qual ativo deve ser usado para um pagamento. Ao criar solicitações de pagamento, você especificará o UAI para indicar:

1. **Qual rede blockchain** usar para a transação
2. **Qual token específico** deve ser transferido
3. **A precisão decimal** para cálculos de valor

### Exemplo 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 exemplo cria uma solicitação de pagamento de 100 USDC na Polygon via API Fluxis. O endereço de depósito é atribuído pela Fluxis e retornado no token NASPIP e na resposta GET da solicitação de pagamento.
:::::
::::info
Atualmente, ambientes de **testnet** **não são suportados**. Nosso ambiente sandbox opera em infraestrutura mainnet para permitir testes contínuos sem exigir faucets de testnet.
:::::

## Suporte a moedas fiat

Embora a implementação atual foque em ativos de criptomoedas, o formato UAI pode ser estendido para suportar moedas fiat. Implementações futuras podem incluir identificadores como:

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

## Recursos adicionais

Para informações técnicas mais detalhadas sobre Unique Asset IDs e sua implementação no protocolo NASPIP, consulte a documentação oficial:

📚 **[Documentação NASPIP UAI](https://github.com/fluxisus/naspip/blob/cde9b46d3631cfce87e2cddccbf7e22bcb81b53e/docs/Unique%20Asset%20ID.md.md)**

## Notas de integração

Ao integrar com a API Fluxis:

1. **Use sempre a string UAI exata** conforme fornecida nas tabelas acima
2. **Considere a precisão decimal** ao formatar valores
3. **Valide o suporte ao UAI** antes de criar solicitações de pagamento
4. **Mantenha-se atualizado** sobre novos UAIs à medida que expandimos o suporte de redes



::::info
O sistema UAI garante que suas instruções de pagamento sejam precisas, inequívocas e compatíveis em todo o ecossistema NASPIP.
:::::
