> For the complete documentation index, see [llms.txt](https://docs.frax.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frax.finance/zh/kua-lian-qiao-jie/layerzero-x-stargate.md).

# LayerZero x Stargate

## **动机**

可替代且可扩展的多链桥接解决方案。

## **好处**

* 桥接过程在几分钟内完成。
* 灵活选择源链或目标链。

## **风险**

* 信任委托给LayerZero和Stargate
  * LayerZero端点
  * LayerZero和Horizen DVN。
  * Stargate用户界面

## **OFTs（可桥接代币）**

Frax资产在Fraxtal、Ethereum和Arbitrum以外的链上被表示为OFTs（由 [LayerZero](https://docs.layerzero.network/v2/developers/evm/oft/quickstart)定义）。OFT与ERC20的功能相同，此外还支持通过LayerZero协议进行桥接。

## **可用的Frax OFTs**

* FRAX
* sFRAX
* frxETH
* sfrxETH
* FXS
* FPI

## **Legacy与可升级OFTs**

在与LayerZero的初始部署中，LayerZero团队在多个链上部署了Frax资产作为固定合约。初始部署后，Frax团队承担了额外的部署责任，并目前将OFTs作为可升级的透明代理进行部署（合约经过审计，代码库[链接](https://github.com/FraxFinance/LayerZero-v2-upgradeable)）。

Legacy 与可升级OFTs在各链上保持相同的资产地址。

所有具有桥接权限的OFTs均由每个相应链上的3/6多签管理。

## **过程**

* 通过Stargate用户界面进行桥接（[链接](https://stargate.finance/)）。
* 直接与LayerZero进行桥接。

```sh
npm install @fraxfinance/layerzero-v2-upgradeable
```

```solidity
import { OptionsBuilder } from "@fraxfinance/layerzero-v2-upgradeable/oapp/contracts/oapp/libs/OptionsBuilder.sol";
import { SendParam, MessagingFee, IOFT } from "@fraxfinance/layerzero-v2-upgradeable/oapp/contracts/oft/interfaces/IOFT.sol";

uint256 amount = 1e18;
// Upgradeable FRAX - Bridging FROM Mode
address oft = 0x80eede496655fb9047dd39d9f418d5483ed600df; 
// Ethereum - choose destination EID from https://github.com/FraxFinance/frax-oft-upgradeable/blob/master/scripts/L0Config.json
uint32 dstEid = 30101;

bytes memory options = OptionsBuilder.newOptions();
SendParam memory sendParam = SendParam({
        dstEid: dstEid,
        to: bytes32(uint256(uint160(msg.sender))),
        amountLD: amount,
        minAmountLD: amount,
        extraOptions: options,
        composeMsg: '',
        oftCmd: ''
});
MessagingFee memory fee = IOFT(_oft).quoteSend(sendParam, false);
IOFT(_oft).send{value: fee.nativeFee}(
    sendParam,
    fee,
    payable(msg.sender)
);
```

## **合约 & 地址**

### Admin

* `ProxyAdmin`: `0x223a681fc5c5522c85c96157c0efa18cd6c5405c`
* Msigs (links to gnosis safe)
  * [`Ethereum`](https://app.safe.global/home?safe=eth:0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27)
  * [`Blast`](https://blast-safe.io/home?safe=blast:0x33A133020b2C2CD41a24F74033B11EC2fC0bF97a)
  * [`Metis`](https://metissafe.tech/home?safe=metis-andromeda:0xF4A4F32732F9B2fB84Ee28c58616946F3bF80F7d)
  * [`Base`](https://app.safe.global/home?safe=base:0xCBfd4Ef00a8cf91Fd1e1Fe97dC05910772c15E53)
  * [`Mode`](https://safe.optimism.io/home?safe=mode:0x6336CFA6eDBeC2A459d869031DB77fC2770Eaa66)
  * [`Sei`](https://sei-safe.protofire.io/home?safe=sei:0x0357D02fc95320b990322d3ff69204c3D251171b)
  * [`Fraxtal`](https://safe.mainnet.frax.com/home?safe=fraxtal:0x5f25218ed9474b721d6a38c115107428E832fA2E)
  * [`X-Layer`](https://app.safe.global/home?safe=xlayer:0xe7Cc52f0C86f4FAB6630f1E26167B487fbF66a61)

### **Legacy OFTs**

* **Chain**: `Ethereum`, `Metis`, `Blast`, `Base`
* **Admin**: Chain-respective msig
* OFTs
  * `FRAX`: `0x909DBdE1eBE906Af95660033e478D59EFe831fED`
  * `sFRAX`: `0xe4796cCB6bB5DE2290C417Ac337F2b66CA2E770E`
  * `sfrxETH`: `0x1f55a02A049033E3419a8E2975cF3F572F4e6E9A`
  * `FXS`: `0x23432452B720C80553458496D4D9d7C5003280d0`
  * `frxETH` : `0xF010a7c8877043681D59AD125EbF575633505942`
  * `FPI`: `0xE41228a455700cAF09E551805A8aB37caa39D08c`

### **可升级 OFTs**

* **Chain**: `Mode`, `Sei`, `Fraxtal`, `X-Layer`
* **Admin**: `ProxyAdmin` (owned by chain-respective msig)
* OFTs
  * `FRAX`: `0x80eede496655fb9047dd39d9f418d5483ed600df`
  * `sFRAX`: `0x5bff88ca1442c2496f7e475e9e7786383bc070c0`
  * `sfrxETH`: `0x3ec3849c33291a9ef4c5db86de593eb4a37fde45`
  * `FXS`: `0x64445f0aecc51e94ad52d8ac56b7190e764e561a`
  * `frxETH`: `0x43eDD7f3831b08FE70B7555ddD373C8bF65a9050`
  * `FPI` : `0xEed9DE5E41b53D1C8fAB8AAB4b0e446F828c1483`

### **源代码**

* <https://github.com/fraxfinance/frax-oft-upgradeable>
* <https://github.com/fraxfinance/layerzero-v2-upgradeable>
* [https://github.com/fraxfinance/frax-oft-legacy](broken://spaces/-MJQZW1mSg2O5N7HXHo0-2020321539/pages/-ML58MM-VYC3Y0uouI69)

## **安全考虑**

Layer Zero OFT Frax 资产不是 Frax 协议的负债。它们不会出现在 [facts.frax.finance](https://facts.frax.finance) 的资产负债表上。它们不能兑换为协议拥有的资产。它们只能在 Layer Zero 协议的“锁箱”合约中兑换为 Frax 资产。

Layer Zero OFT Frax 资产由 Layer Zero 去中心化验证网络（DVNs）结算，这些网络不由 Frax 协议、Frax 核心开发者或与 Frax 相关的任何实体运营。因此，OFT Frax 资产的风险由其持有者承担。这类似于在其发行人 Circle 不支持铸造/赎回的网络上持有“USDC 代币”。这些“USDC 代币”不会出现在 Circle 的资产负债表上作为负债，也不能从其发行人那里赎回。它们只能在桥接（即“锁箱”）合约中兑换为基础的 USDC 代币。

未来，Frax 协议可以与 Layer Zero 合作，升级某些 OFT Frax 资产在特定网络上的功能，使 Frax 协议能够对结算过程进行直接监督，类似于 Frax Ferry 系统。在这之后，这些特定网络的 OFT Frax 资产将被报告在相关资产负债表上。当这种情况发生时，Frax 协议将视这些代币为其负债，且这些代币由其在各自资产负债表上持有的资产直接支持。目前，没有任何 Frax OFT 代币是协议的本地负债。
