Documentation
Everything you need to build, deploy, and scale cross-VM applications on InterLayer.
Getting Started
Installation, setup, and your first deployment
- Environment Setup
- CLI Installation
- First Contract
- Testnet Access
Core Concepts
Understand MEL, VMs, and atomic execution
- MEL Architecture
- VM Adapters
- Atomic Bundles
- Gas & Fees
CLI Reference
Complete command-line interface documentation
- init
- compile
- deploy
- test
- node
SDK Documentation
TypeScript, Rust, and Python libraries
- @interlayer/sdk
- Rust Crate
- Python Package
- WebSocket API
RPC API
JSON-RPC methods and GraphQL queries
- Chain Queries
- Transaction Submit
- Block Subscriptions
- Multi-VM Calls
Runtime Pallets
Substrate pallet documentation
- fee-distribution
- mel-core
- mel-evm
- mel-svm
Full API Reference
Complete RPC methods and error codes
- All RPC Methods
- Runtime Pallets
- Error Codes
- WebSocket API
CLI Reference
interlayer init
Initialize a new InterLayer project
$ interlayer init [project-name] --template [evm|svm|move]
Options:
- --template: Choose VM template (evm, svm, polkavm, move)
- --path: Custom directory path
- --git: Initialize git repository
interlayer compile
Compile smart contracts
$ interlayer compile [--vm evm|svm|polkavm]
interlayer deploy
Deploy contracts to network
$ interlayer deploy --network [testnet|mainnet] --vm [evm|svm]
Options:
- --network: Target network (testnet, mainnet, local)
- --vm: Specify VM for deployment
- --account: Deployer account
- --gas-limit: Custom gas limit
interlayer node
Run local development node
$ interlayer node start [--dev]
SDK Documentation
TypeScript SDK
import
{ InterLayerClient } from '@interlayer/sdk';const
client = new InterLayerClient({rpcUrl: 'https://rpc.interlayer.one',
chain: 'testnet'
});// Deploy EVM contract
const
tx = await client.deploy({vm: 'evm',
bytecode,
abi
});Rust SDK
use
interlayer_sdk::{Client, VmType};let
client = Client::new("https://rpc.interlayer.one")?;let
result = client.cross_vm_call(VmType::EVM,
contract_address,
method_data
).await?;JSON-RPC API
InterLayer exposes standard Substrate JSON-RPC endpoints plus custom MEL methods:
chain_getBlock
Get block details by hash or number
POST {"method": "chain_getBlock", "params": ["0x..."]}
mel_submitCrossVmTx
Submit atomic cross-VM transaction
POST {"method": "mel_submitCrossVmTx", "params": [{"vm": "evm", "calls": [...]}]}
state_getStorage
Query chain state directly
POST {"method": "state_getStorage", "params": ["key"]}