Institutional DvP settlement across permissioned Avalanche L1s. Standard Solidity. Contracts in the genesis block. Ships today.
Canton Network processes $9T+/month with DTCC, JPMorgan, Goldman Sachs, and Visa. Their comparison page groups Avalanche under "Full replication model," claiming no sovereignty, no composability with privacy, and no privacy without security tradeoffs.
This is wrong. Avalanche L1s are sovereign chains with their own validators. ICM provides native cross-chain messaging. Protocol-level allowlists restrict who can even submit a transaction.
Canton needed $135M and a separate company (Zenith, still in test) to add EVM. Below are two live Avalanche L1s with contracts predeployed in genesis, cross-chain DvP via ICM, and a stablecoin bridge via ICTT. Every button sends a real transaction.
Standard Foundry + Solidity. No vendor lock-in. build.avax.network
L1-Private runs with validatorOnly: true. Anyone can sync C-Chain or L1-Institutional. Nobody can sync L1-Private unless they're a validator.
Sync Fuji C-Chain (public):
docker run --rm avaplatform/avalanchego:v1.14.2 \ --network-id=fuji
Sync L1-Institutional (permissioned txs, but open sync):
docker run --rm avaplatform/avalanchego:v1.14.2 \ --network-id=fuji \ --track-subnets=2BJEeSX76ftRwicQ7196SZtoCV2srRLGnXJkgTAvVjheNeT2wP \ --partial-sync-primary-network=true
Try to sync L1-Private:
docker run --rm avaplatform/avalanchego:v1.14.2 \ --network-id=fuji \ --track-subnets=2SX9zJYSCoDksFru5G7mX9BGAxcfDrQRKQwGpQbB4WM5JFZrEq \ --partial-sync-primary-network=true
Your node discovers the subnet but can't peer with the validators. No blocks, no state, no data. You're not in the allowed set.
Generate a random wallet. Try to transact on L1-Institutional. Get rejected at the protocol level. Then KYC it and try again.
Generate a funded wallet and try to transact. The VM will reject it at the protocol level — not a contract revert, a consensus-level block.
Delivery-vs-Payment settlement across two permissioned Avalanche L1s. A seller issues tokenized US Treasury bonds on the private chain. A buyer funds with stablecoins from C-Chain. The DvP coordinator on the institutional chain ensures both legs settle atomically, or neither does.
This is Canton's "Global Synchronizer" use case — built in ~150 lines of Solidity + ICM. View the settlement contract on the institutional block explorer.
Public stablecoin on C-Chain
USTB26 on private chain
Terms: 1,000 USTB26 for 100,000 sUSD
Escrow USTB26, send ICM to coordinator
Both legs present triggers atomic settlement.
Permissioned validators keep outsiders from seeing the chain. But what about privacy between participants?
Balances and transfer amounts stored as FHE ciphertexts. Computation on encrypted values. Only authorized parties decrypt. Even validators can't see plaintext amounts. Docs
Canton: proprietary Daml, compile-time visibility, no EVM. Avalanche: standard ERC20 interface, runtime encryption, full EVM.
| Chain | Contract | Address | Note |
|---|---|---|---|
| C-Chain | SettlementStablecoin | 0x2ff27ba4C464387bD9A2aa1C188B10e98F39fe35 | sUSD |
| C-Chain | ERC20TokenHome | 0xb0E6e3E0b4f550865adDB10d6324E0F152fE688c | ICTT bridge |
| Institutional | InstitutionalAllowlist | 0xC0DE000000000000000000000000000000000001 | Genesis |
| Institutional | CrossChainDvP | 0xC0DE000000000000000000000000000000000003 | Genesis |
| Institutional | ERC20TokenRemote | 0xa4DfF80B4a1D748BF28BC4A271eD834689Ea3407 | sUSD bridge |
| Private | SecuritiesToken | 0xC0DE000000000000000000000000000000000004 | Genesis |
| Private | SecuritiesEscrow | 0xA4cD3b0Eb6E5Ab5d8CE4065BcCD70040ADAB1F00 | DvP lock |
0xC0DE0000000000000000000000000000000000040xA4cD3b0Eb6E5Ab5d8CE4065BcCD70040ADAB1F00We built a Daml-compatible VM that runs on Avalanche L1s. Same language, better infrastructure.
See the Daml VM Demo