Wormhole: Blockchain interoperability protocol reference implementation
Reference implementation of the Wormhole protocol for cross-chain blockchain interoperability and asset transfers.
Learn more about Wormhole
Wormhole is a reference implementation of a blockchain interoperability protocol that facilitates cross-chain communication and asset transfers. The system uses a network of guardian nodes to validate and relay messages between different blockchain networks through cryptographic attestations. The implementation includes smart contracts written in Solidity, core infrastructure in Rust and Go, and supports multiple blockchain ecosystems. It serves as the foundation for building cross-chain applications and bridges that require secure asset and data movement between different blockchain networks.
Multi-Chain Architecture
Supports interoperability across multiple blockchain networks through a unified protocol. Uses guardian validators to secure cross-chain message passing and asset transfers.
Multi-Language Implementation
Built with Rust for core infrastructure, Go for tooling, and Solidity for smart contracts. Provides comprehensive development tools and documentation for integration.
Production Reference
Serves as the canonical implementation with live mainnet and testnet deployments. Includes complete development environment setup and operational documentation.
import { getSignedVAAWithRetry } from '@certusone/wormhole-sdk';
import { NodeHttpTransport } from '@improbable-eng/grpc-web-node-http-transport';
import { transferFromEth, parseSequenceFromLogEth } from '@certusone/wormhole-sdk/lib/cjs/token_bridge';
import { ethers } from 'ethers';
async function sendTokenTransfer() {
const provider = new ethers.providers.JsonRpcProvider('https://rpc.ankr.com/eth');
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);
const tokenBridgeAddress = '0x3ee18B2214AFF97000D974cf647E7C347E8fa585';
const tokenAddress = '0xA0b86a33E6417c8f2b8B2B8b2B8b2B8b2B8b2B8b';
const amount = ethers.utils.parseUnits('100', 18);
const targetChain = 2; // Ethereum = 2, Solana = 1
const recipientAddress = '0x742d35Cc6634C0532925a3b8D4C9db1C4165f0e';
// Send the transfer transaction
const receipt = await transferFromEth(
tokenBridgeAddress,
wallet,
tokenAddress,
amount,
targetChain,
recipientAddress
);
// Parse sequence from transaction logs
const sequence = parseSequenceFromLogEth(receipt, '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B');
const emitterAddress = '0x3ee18B2214AFF97000D974cf647E7C347E8fa585';
console.log(`Transfer initiated with sequence: ${sequence}`);
return { receipt, sequence };
}v2.54.0 More node connections on testnet
- –feat(sdk): reserve Dogecoin and XRPL by @evan-gray in
- –node: allow more nodes per guardian by @panoel in
v2.53.0 with Stacks support
- –feat(node): MonadTestnet after re-genesis by @aapclark in
v2.53.0 with Aztec support
- –feat(node): MonadTestnet after re-genesis by @aapclark in
Related Repositories
Discover similar tools and frameworks used by developers
BitcoinJS
A TypeScript-based Bitcoin library providing cryptographic functions and transaction handling for Node.js and browsers.
Uniswap V2 Core
Core smart contracts for Uniswap V2 AMM protocol handling liquidity pools, token swaps, and fee collection.
Uniswap V3 Core
Core smart contracts for the Uniswap V3 decentralized exchange protocol on Ethereum.
Bitcoin Core
Reference implementation of the Bitcoin protocol that connects to the peer-to-peer network for block validation.
Lotus
Go-based reference implementation of the Filecoin distributed storage network protocol.