> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stablemint.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Bridge USDSM across chains with LayerZero V2 OFT.

USDSM can be bridged across supported chains using [LayerZero V2](https://layerzero.network/) OFT (Omnichain Fungible Token). Transfers use a **burn-and-mint** model — tokens are burned on the source chain and minted on the destination chain. Total supply is always conserved.

## Supported Chains

| Chain     | USDSM Token                                  | OFT Adapter                                  | MinterBurner                                 | LZ Endpoint ID |
| --------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------- |
| Ethereum  | `0x399B29975CBE313C56269cD5097F5AE097Fa2741` | `0x0aFa4BE6fA5ebAf5fFEe3AB9F88EAA3e16c37aDE` | `0x6A02e153bCbF9e6BE45C0b49F7F0ABc82859ebD5` | 30101          |
| Base      | `0x26C358F7c5fEdB20a6ddEf108cD91Efb6B8Da0Cb` | `0x1053BaF5964b82859F6aa140ED2C02f2975075eB` | `0x6bDE51212203aE5d592Cc5180DA2ABBd41c922dE` | 30184          |
| Arbitrum  | `0x26C358F7c5fEdB20a6ddEf108cD91Efb6B8Da0Cb` | `0x1053BaF5964b82859F6aa140ED2C02f2975075eB` | `0x6bDE51212203aE5d592Cc5180DA2ABBd41c922dE` | 30110          |
| Etherlink | `0x6bDE51212203aE5d592Cc5180DA2ABBd41c922dE` | `0xe7F117F87fa650350c3E363ca2C644951d273d1F` | `0x28DA1dFaF5DCa1AF226a2e56B834E8Ec3C495C5A` | 30292          |

## Architecture

Each chain has three contracts:

* **USDSM** — The ERC-20 token (TransparentUpgradeableProxy)
* **USDSMMintBurnOFTAdapter** — LayerZero V2 OFT adapter that handles cross-chain send/receive
* **USDSMMinterBurner** — Intermediary that translates between LayerZero's standard interface and USDSM's mint/burn signatures

### How a bridge transfer works

```
Source Chain                          Destination Chain
────────────                          ─────────────────
1. User approves MinterBurner
2. User calls adapter.send()
3. MinterBurner burns USDSM
4. LayerZero sends message ──────────► 5. LayerZero delivers message
                                       6. MinterBurner mints USDSM to user
```

## Security

* **2/2 DVN verification** — Every message is verified by two independent Decentralized Verifier Networks (LZ Labs + Horizen) before delivery
* **Explicit library pinning** — Send and receive message libraries are pinned to specific versions per pathway
* **Enforced gas options** — Minimum 120,000 gas enforced for `lzReceive` on all pathways

## Important: Approval Target

<Warning>
  When bridging USDSM, you must approve the **MinterBurner** contract — not the OFT Adapter. This is because USDSM uses a non-standard mint/burn signature with a deduplication ID, and the MinterBurner handles the `transferFrom` during the burn flow.
</Warning>

| Chain     | Approve this address (MinterBurner)          |
| --------- | -------------------------------------------- |
| Ethereum  | `0x6A02e153bCbF9e6BE45C0b49F7F0ABc82859ebD5` |
| Base      | `0x6bDE51212203aE5d592Cc5180DA2ABBd41c922dE` |
| Arbitrum  | `0x6bDE51212203aE5d592Cc5180DA2ABBd41c922dE` |
| Etherlink | `0x28DA1dFaF5DCa1AF226a2e56B834E8Ec3C495C5A` |

This applies to both direct user interactions and partner integrations (e.g., bridge aggregators like LiFi/Jumper).
