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

# Add Crosschain Features

> Extend your application with crosschain capabilities. From integrating existing assets to building custom messaging systems.

This section covers how to add crosschain capabilities to your application. The features are ordered from **most commonly used** (and easiest to integrate) to **most advanced** (requiring deeper systems understanding).

## Why This Order?

Most developers coming to LayerZero want to **transfer tokens across chains**. The question is: how much customization do you need?

| If you want to...                                                   | Use this               | Complexity |
| ------------------------------------------------------------------- | ---------------------- | ---------- |
| Transfer existing assets (USDC, ETH, USDT, USDT0, USDe, WBTC, etc.) | **Stargate**, **OFTs** | Lowest     |
| Transfer tokens + execute logic on destination                      | **Composer**           | Low        |
| Manage crosschain liquidity in vaults                               | **OVault**             | Medium     |
| Build completely custom crosschain logic                            | **OApp**               | Higher     |
| Read data from other chains                                         | **lzRead**             | Higher     |

***

## Transfer Existing Assets

**Best for:** Integrating transfers of assets that are already crosschain enabled.

If the asset you need already exists as an OFT or in Stargate pools, you can integrate directly without deploying anything.

### Stargate Assets

Stargate provides unified liquidity pools for major assets across 60+ chains. The hard work—issuing the asset, managing liquidity, handling edge cases—is already done.

**Assets:** ETH, USDC, USDT, and more via unified pools.

<CardGroup cols={2}>
  <Card title="Stargate Architecture" icon="sitemap" href="/v2/concepts/applications/stargate-finance">
    How Stargate's Hydra system enables unified liquidity.
  </Card>

  <Card title="Integrate Stargate" icon="plug" href="/v2/developers/evm/stargate/overview">
    Add Stargate transfers to your application.
  </Card>
</CardGroup>

### Existing OFTs

Other teams have deployed OFTs that you can integrate directly. These maintain unified supply across chains through LayerZero messaging.

**Assets:** [USDT0, USDe, WBTC, and more](/v2/deployments/oft-ecosystem-stargate-assets).

<CardGroup cols={2}>
  <Card title="View OFT Ecosystem" icon="coins" href="/v2/deployments/oft-ecosystem-stargate-assets">
    See all OFT deployments available to integrate.
  </Card>

  <Card title="lzAsset" icon="shield" href="/v2/concepts/applications/lzasset">
    Managed OFT deployments with enhanced security.
  </Card>
</CardGroup>

<Tip>
  **Don't see your asset?** You can [deploy your own OFT](/crosschain/issue-asset/overview) to make any token crosschain.
</Tip>

***

## Composer

**Best for:** Token transfers + arbitrary logic in a single transaction.

Composers let you bundle a token transfer with additional calldata that executes on the destination chain. Send tokens AND trigger a swap, deposit into a protocol, or call any contract function.

**Example use cases:**

* Transfer USDC and swap to ETH on arrival
* Bridge tokens directly into a lending protocol
* Crosschain purchases (send payment + execute buy)

<CardGroup cols={2}>
  <Card title="Composer Concepts" icon="layer-group" href="/v2/concepts/applications/composer-standard">
    How composed messages work under the hood.
  </Card>

  <Card title="EVM Composers" icon="code" href="/v2/developers/evm/composer/overview">
    Implement composable transfers on EVM chains.
  </Card>
</CardGroup>

***

## OVault

**Best for:** Crosschain vault and liquidity management.

OVault provides a standard for managing assets across multiple chains from a unified interface. Deposit on one chain, manage liquidity across many.

<CardGroup cols={2}>
  <Card title="OVault Concepts" icon="vault" href="/v2/concepts/applications/ovault-standard">
    Crosschain vault architecture and design.
  </Card>

  <Card title="EVM OVault" icon="code" href="/v2/developers/evm/ovault/overview">
    Implement OVault on EVM chains.
  </Card>
</CardGroup>

***

## OApp (Custom Messaging)

**Best for:** Building completely custom crosschain systems.

OApp is the base standard for arbitrary crosschain messaging. You define the message format, the sending logic, and the receiving logic. Full flexibility, but you're responsible for the design.

**When to use OApp:**

* You need to send non-token data across chains
* You're building crosschain governance, oracles, or coordination systems
* You need complete control over message handling

<Warning>
  **OApp requires systems design knowledge.** You're defining message schemas, handling failures, and managing state across chains. If you just need token transfers, use Stargate, OFT, or Composer instead.
</Warning>

<CardGroup cols={2}>
  <Card title="OApp Concepts" icon="book" href="/v2/concepts/applications/oapp-standard">
    Understand the OApp message lifecycle.
  </Card>

  <Card title="EVM OApp" icon="code" href="/v2/developers/evm/oapp/overview">
    Build custom messaging on EVM chains.
  </Card>

  <Card title="OApp Patterns" icon="diagram-project" href="/v2/developers/evm/oapp/message-design-patterns">
    Common patterns: A→B, A→B→A, composed messages.
  </Card>
</CardGroup>

**Multi-chain support:** OApp is available on [Solana](/v2/developers/solana/oapp/overview), [Sui](/v2/developers/sui/oapp/overview), [IOTA](/v2/developers/iota/oapp/overview), and [Aptos](/v2/developers/aptos-move/contract-modules/oapp).

***

## lzRead (Crosschain Queries)

**Best for:** Reading data from other chains without transferring assets.

lzRead allows your contracts to query state from other blockchains. Instead of sending a message and waiting for a response, you can pull data directly.

**Example use cases:**

* Check token balances on another chain
* Read oracle prices from a different network
* Verify state before executing logic

<CardGroup cols={2}>
  <Card title="lzRead Concepts" icon="database" href="/v2/concepts/applications/read-standard">
    How crosschain reads work.
  </Card>

  <Card title="EVM lzRead" icon="code" href="/v2/developers/evm/lzread/overview">
    Implement crosschain queries on EVM.
  </Card>
</CardGroup>

***

## Comparison Table

| Feature      | Token Transfer       | Custom Data     | Compose Logic | Complexity |
| ------------ | -------------------- | --------------- | ------------- | ---------- |
| **Stargate** | Yes (pooled assets)  | No              | No            | Lowest     |
| **Composer** | Yes (OFT-based)      | Yes (calldata)  | Yes           | Low        |
| **OVault**   | Yes (vault deposits) | Limited         | Yes           | Medium     |
| **OApp**     | Manual               | Yes (anything)  | Yes           | Higher     |
| **lzRead**   | No                   | Yes (read-only) | No            | Higher     |

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Issue Your Own OFT" icon="coins" href="/crosschain/issue-asset/overview">
    If you want to issue your own crosschain token instead of using existing ones.
  </Card>

  <Card title="Configure Security" icon="shield" href="/v2/developers/evm/configuration/dvn-executor-config">
    Set up DVNs and Executors for your crosschain application.
  </Card>
</CardGroup>
