Navigate:
Wormhole
~$WORMH0.1%

Wormhole: Blockchain interoperability protocol reference implementation

Reference implementation of the Wormhole protocol for cross-chain blockchain interoperability and asset transfers.

LIVE RANKINGS • 03:09 AM • STEADY
OVERALL
#411
37
CRYPTO
#36
5
30 DAY RANKING TREND
ovr#411
·Crypt#36
STARS
1.9K
FORKS
825
7D STARS
+1
7D FORKS
+3
Tags:
See Repo:
Share:

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.

Wormhole

1

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.

2

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.

3

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 };
}


vv2.54.0

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
vv2.53.0-stacks

v2.53.0 with Stacks support

  • feat(node): MonadTestnet after re-genesis by @aapclark in
vv2.53.0-aztec

v2.53.0 with Aztec support

  • feat(node): MonadTestnet after re-genesis by @aapclark in


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers