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

# LayerZero on Canton

> Overview of LayerZero V2 on the Canton Network: how Daml contracts, parties, and privacy change crosschain messaging, and how LayerZero runs on Canton today.

The [Canton Network](https://docs.canton.network) is a public network for Daml smart contracts. On Canton, only the parties to a transaction see its data. LayerZero [announced its integration with Canton](https://layerzero.network/blog/canton-network-goes-live) on March 26, 2026. LayerZero connects assets on Canton to the other chains that LayerZero supports.

Canton does not work like an account-based chain. Contracts are immutable records that only their stakeholders can see, and an identity is a party, not an address. Because of this, LayerZero on Canton uses the **Virtual Endpoint Rollup (VER)**. An OApp creates a request contract on the ledger for each endpoint operation. A quorum of independent VER validators runs the endpoint logic and commits the result back to the ledger, where the OApp's own contracts settle it.

## Canton and LayerZero

Canton applications use the [Daml](https://docs.canton.network/appdev/modules/m2-canton-for-ethereum-devs) smart contract language. A Daml **template** defines a contract's data and the **choices** (actions) that specific parties can exercise on it. Each party is hosted on a **participant node** (also called a validator node). The participant node stores only the contracts that its parties can see. The **synchronizer** orders transactions but does not store contract state.

### What Changes on Canton

| EVM | Canton | What changes |
| - | - | - |
| Account or contract address | [Party](https://docs.canton.network/appdev/deep-dives/manage-daml-parties) | Identities are parties hosted on participant nodes |
| Public global state | [Private by default](https://docs.canton.network/appdev/deep-dives/privacy-model) | Each participant node stores and sees only its parties' contracts |
| `msg.sender` checks | [Signatories, controllers, observers](https://docs.canton.network/appdev/modules/m3-authorization) | Authorization is declared in the template |
| Mutable contract storage | Immutable contracts | An update archives a contract and creates a new one with a new contract ID |
| ERC-20 balance | [CIP-0056](https://github.com/global-synchronizer-foundation/cips/blob/main/cip-0056/cip-0056.md) holdings | Balances are UTXO-style holding contracts |
| Contract deployment | DAR packages | Each participant node uploads and vets a package before it can use it |
| Gas in the native token | [Traffic, bought with Canton Coin](https://docs.canton.network/appdev/modules/m4-canton-coin) | Amulet (Canton Coin) pays for network usage |
| `EndpointV2` contract | Virtual Endpoint Rollup (VER) | OApps create request contracts, and VER validators commit each result back to the ledger |
| Send to any address | Registered receiving party | A party must register in the token's registry before it can receive from another chain |

Before you send tokens into Canton from another chain, read [Send from Another Chain to Canton](https://docs.layerzero.network/v2/developers/canton/oft/overview.md#send-from-another-chain-to-canton).

### Canton Guides

> [card] [Getting Started on Canton](https://docs.layerzero.network/v2/developers/canton/getting-started.md)
>
> The differences from the EVM, and what a Canton integration needs.

> [card] [Technical Overview](https://docs.layerzero.network/v2/developers/canton/technical-overview.md)
>
> The Canton model as it affects LayerZero: parties, Daml, disclosure, packages, holdings, and fees.

> [card] [Protocol Overview](https://docs.layerzero.network/v2/developers/canton/protocol-overview.md)
>
> How LayerZero runs on Canton: the Virtual Endpoint Rollup, LayerZero parties, and the message lifecycle.

> [card] [OFT Deployment](https://docs.layerzero.network/v2/developers/canton/oft/overview.md)
>
> Every step to connect an existing CIP-0056 token to LayerZero with an OFT adapter and wire it to an EVM chain.

> [card] [Canton Coin](https://docs.layerzero.network/v2/developers/canton/canton-coin/overview.md)
>
> Bridge native Canton Coin on Canton to and from bridged CC on BSC, Solana, HyperEVM, and HyperCore.

> [!NOTE]
>
> LayerZero on Canton is not yet open for self-service integrations. The Canton packages and deployment tooling are not public, so [Deploying an OFT on Canton](https://docs.layerzero.network/v2/developers/canton/oft/overview.md) marks each step that you complete with LayerZero Labs. To discuss integrating, [contact the LayerZero team](https://layerzeronetwork.typeform.com/to/U9hMgxf1).

### Network Details

| Network | Endpoint ID (EID) | Native token | Explorer |
| - | - | - | - |
| Mainnet | `30567` | Amulet (Canton Coin), 10 decimals | [Lighthouse](https://lighthouse.cantonloop.com) |
| LayerZero testnet (Canton DevNet) | `40567` | Amulet (Canton Coin), 10 decimals | [Lighthouse (DevNet)](https://lighthouse.devnet.cantonloop.com) |

LayerZero's Canton testnet deployment runs on the Global Synchronizer DevNet, not on Canton TestNet.

For the DVNs that verify Canton Coin messages on Canton mainnet, see the [Canton deployment page](https://docs.layerzero.network/v2/deployments/chains/canton.md) and [DVN Providers](https://docs.layerzero.network/v2/deployments/dvn-addresses.md).

### Tooling and Resources

For Canton fundamentals, see the [Canton Network documentation](https://docs.canton.network). For validators, Super Validators, and the Global Synchronizer, see the [Splice documentation](https://docs.dev.sync.global). The token standard is [CIP-0056](https://github.com/global-synchronizer-foundation/cips/blob/main/cip-0056/cip-0056.md).

You can also ask questions or follow development in the [Discord](https://discord.com/invite/ktbvm8Nkcr).
