Native cross-chain assets
Tokens and NFTs that move between chains and keep one total supply.
VIA is a cross-chain messaging network for EVM and non-EVM chains. Your smart contracts send tokens, data, and instructions to each other. You choose who must sign each message.
The VIA network carries data between smart contracts on different chains. What gets built on top, whether bridges, DEXs, marketplaces, or oracle feeds, is up to the developer.
Tokens and NFTs that move between chains and keep one total supply.
Send one contract call to many chains in a single action.
Send any data or contract call between supported chains.
Deliver off-chain data, plain or encrypted, directly into smart contracts.
Extend your app to other chains and virtual machines, so users reach it from the chain they already use.
Scroll to follow one message from Ethereum to Cardano, one step at a time.
01 / 05
Your contract calls the VIA gateway on its own chain. A message can carry tokens, data, or a contract call.
01
Your contract calls the VIA gateway on its own chain. A message can carry tokens, data, or a contract call.
02
The message waits for the number of block confirmations you set. Each new block makes the earlier ones harder to reverse.
03
Signers run by VIA Labs check the message on the source chain, then sign it. You choose what else must sign.
04
A relayer carries the signed message to Cardano. The gateway there checks every signature. Relayers can't change a message.
05
Your contract on Cardano acts on the message. Here, it adds 100 tokens to an account.
When a chain connects to VIA, it joins the whole network. Contracts on any connected chain can send tokens, data, and calls to contracts on the others.
Teams build liquidity transfers, oracle and data feeds, AI agent integrations, and cross-chain tokens and apps.
See use casesYour message follows the same path on every chain. Projects deploy and own their own cross-chain contracts.
Contracts in Solidity
Contracts in Aiken
Contracts in Compact
Contracts in Rust
Inherit one contract. Override one function.
VIAHelloWorld.sol
pragma solidity ^0.8.17;import {ViaIntegrationV1} from "./ViaIntegrationV1.sol";contract VIAHelloWorld is ViaIntegrationV1 { string public receivedMessage; constructor() ViaIntegrationV1(msg.sender) {} function sendHello(uint64 destChainId) external payable { // Send a message to another chain messageSend(destChainId, abi.encode("Hello World"), 1); } function messageProcess( uint256, uint64, bytes32, bytes32, bytes memory data, bytes memory, uint256 ) internal override { // Decode and store the message receivedMessage = abi.decode(data, (string)); }}Anastasia Labs, Firepan, and Hashlock audited VIA's contracts on EVM chains, Cardano, Midnight, and Stellar. Every report is public.
Our team helps you pick your chains and a pattern, then go live.