Simple Integration
One SDK call to send messages to any chain. No complex bridge integrations, no chain-specific logic.
Build once on Arbitrum. Connect to everywhere.
pnpm add @arbilink/sdk ethersnpm install @arbilink/sdk ethersyarn add @arbilink/sdk ethersbun add @arbilink/sdk ethersimport { ArbiLink } from '@arbilink/sdk';
const arbiLink = new ArbiLink(signer);
const messageId = await arbiLink.sendMessage({
to: 11155111, // Ethereum Sepolia
target: '0xYourContract',
data: encodedCall,
});
// Real-time tracking
arbiLink.watchMessage(messageId, (msg) => {
console.log(msg.status); // 'pending' → 'relayed' → 'confirmed'
});sendMessage()Install the SDK and send your first cross-chain message
Real-world NFT, token, and DAO examples ready to copy
Complete API with full TypeScript types
Step-by-step walkthroughs for common patterns
| Step | Action | Time |
|---|---|---|
| 1 | sendMessage() emits MessageSent on Arbitrum | Instant |
| 2 | Relayer detects event and signs proof | ~2s |
| 3 | receiveMessage() called on destination | ~5s |
| 4 | confirmDelivery() finalizes on Arbitrum hub | ~5s |
The MessageHub contract is written in Rust and compiled to WASM via Arbitrum Stylus:
| Metric | Solidity | ArbiLink (Stylus) |
|---|---|---|
| Gas per message | ~$4.50 | ~$0.23 |
| Safety | EVM | Memory-safe Rust |
| Contract size | Standard | Optimized WASM |