Cross-chain / Bridge·EVM · Solana · Sui · Aptos · Cosmos · Multi-chain
Wormhole
Generic cross-chain messaging with VAAs plus token bridges (Token Bridge, Native Token Transfers / NTT, CCTP). Supports EVM, Solana, Sui, Aptos, Cosmos and more.
- 01cross-chain messaging (VAAs)
- 02Native Token Transfers (NTT)
- 03non-EVM coverage (Solana, Sui, Aptos, Cosmos)
- 04CCTP USDC routing
- 05embeddable Wormhole Connect widget
- pnpm add @wormhole-foundation/sdk @wormhole-foundation/sdk-evm @wormhole-foundation/sdk-solana
- pnpm add @wormhole-foundation/wormhole-connect
| Variable | Scope | Description |
|---|---|---|
| WORMHOLE_NETWORK | Client | Network selector for the SDK: 'Mainnet' | 'Testnet' | 'Devnet'. |
| WORMHOLESCAN_API_KEY | Server | Optional Wormholescan API key for elevated VAA / status query rate limits. |
Use the unified TS SDK: `const wh = await wormhole('Mainnet', [evm, solana])`. For token transfers, build a `TokenTransfer` (or `CCTPTransfer` / `NttTransfer`) via `wh.tokenTransfer(token, amount, sender, recipient, automatic)`, fetch quote with `transfer.quoteTransfer`, then `transfer.initiateTransfer(signer)`. Poll `transfer.fetchAttestation(timeoutMs)` to get the signed VAA from the Guardian network, then `transfer.completeTransfer(destSigner)` on the destination chain. For arbitrary messages use a custom relayer or the Standard Relayer with `wh.getChain(chain).getAutomaticTokenBridge()`. Track manually via `https://wormholescan.io/#/tx/<hash>`.
- ⚑Manual transfers require explicit `redeem` / `completeTransfer` on the destination chain — without auto-relay the funds sit as an unclaimed VAA forever.
- ⚑Guardian VAA signing typically takes 13-19 confirmations on the source chain; show realistic finality times rather than spinner-forever UX.
- ⚑Token Bridge wraps as `wormhole-wrapped` assets — the destination address differs from canonical; for canonical USDC use CCTP path, for native UX use NTT.
- ⚑Solana txs need a recent blockhash and lookup-table-aware versioned transactions; SDK helpers exist but you must commit before signing.
- ⚑Different platforms (Cosmos, Sui, Aptos) require platform-specific signer adapters — the unified SDK does not auto-load them; install only what you need.
- ⚑VAA replay protection is per-chain — never resubmit the same VAA on a chain that already redeemed it; check `isTransferCompleted` first.