# Unique Asset IDs (UAI)

## What are Unique Asset IDs?

**Unique Asset IDs (UAI)** are standardized identifiers used in the NASPIP protocol and Fluxis API to uniquely identify specific cryptocurrency tokens or assets on different blockchain networks. Each UAI represents a specific pair of network and token, ensuring precise identification across multi-chain environments.

For more details, see the [Unique Asset ID specification in the NASPIP documentation](https://github.com/fluxisus/naspip/blob/cde9b46d3631cfce87e2cddccbf7e22bcb81b53e/docs/Unique%20Asset%20ID.md.md).

UAIs follow a consistent format that makes it easy to identify both the blockchain network and the specific token or asset being referenced. This system can also be extended to support fiat currencies and other traditional payment methods.

## UAI Format Structure

The UAI format follows this pattern:

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

Where:

- `n` prefix indicates "network"
- `[network]` is the blockchain network identifier
- `_t` separator indicates "token"
- `[token_address_or_symbol]` is the token contract address or native symbol

### Examples:

- `npolygon_t0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359` - USDC on Polygon
- `nerc20_t0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48` - USDC on Ethereum

## Supported Assets

Fluxis currently supports the following Unique Asset IDs across multiple blockchain networks:

### Ethereum Network

| 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        |

## Usage in NASPIP

UAIs are used throughout the NASPIP protocol to specify exactly which asset should be used for a payment. When creating payment requests, you'll specify the UAI to indicate:

1. **Which blockchain network** to use for the transaction
2. **Which specific token** should be transferred
3. **The decimal precision** for amount calculations

### Example Usage

```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
This example creates a payment request for 100 USDC on Polygon via the Fluxis API. The deposit address is assigned by Fluxis and returned in the NASPIP token and in the GET payment-request response.
:::::
::::info
Currently, **testnet** environments are **not supported**. Our sandbox environment operates on mainnet infrastructure to enable seamless testing without requiring testnet faucets.
:::::

## Fiat Currency Support

While the current implementation focuses on cryptocurrency assets, the UAI format can be extended to support fiat currencies. Future implementations might include identifiers like:

- `nfiat_tUSD` - US Dollar
- `nfiat_tEUR` - Euro
- `nfiat_tGBP` - British Pound

## Additional Resources

For more detailed technical information about Unique Asset IDs and their implementation in the NASPIP protocol, visit the official documentation:

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

## Integration Notes

When integrating with Fluxis API:

1. **Always use the exact UAI string** as provided in the tables above
2. **Consider decimal precision** when formatting amounts
3. **Validate UAI support** before creating payment requests
4. **Stay updated** on new UAI additions as we expand network support



::::info
The UAI system ensures that your payment instructions are precise, unambiguous, and compatible across the entire NASPIP ecosystem.
:::::