Wormhole Bridge
The Wormhole adapter enables Tenzro to send and receive cross-chain messages and token transfers via the Wormhole Guardian network. It uses Verifiable Action Approvals (VAAs) signed by a distributed set of Guardians to attest to events across 30+ chains.
Architecture
Guardians
A permissioned set of 19 Guardian nodes observe on-chain events and collectively sign VAAs. A message is considered finalized when at least 13/19 Guardians sign.
VAA (Verifiable Action Approval)
A signed payload containing the emitter chain, emitter address, sequence number, timestamp, nonce, consistency level, and arbitrary payload. VAAs are identified by the tuple chain/emitter/sequence.
Core Bridge
On each chain, a CoreBridge contract publishes events and verifies incoming VAAs against the current Guardian set.
Chain ID Mapping
Wormhole assigns a uint16 chain ID to each supported chain. Tenzro exposes an RPC to translate between human-readable chain names and Wormhole chain IDs:
// Ethereum: 2
// BSC: 4
// Polygon: 5
// Avax: 6
// Solana: 1
// Arbitrum: 23
// Optimism: 24
// Base: 30
tenzro_wormholeChainId({ "chain": "ethereum" })
-> { chain: "ethereum", wormhole_chain_id: 2 }VAA ID Parsing
tenzro_wormholeParseVaaId({ "vaa_id": "2/0x3ee18b2.../42" })
-> {
emitter_chain: 2,
emitter_address: "0x3ee18b2...",
sequence: 42
}Bridging Tokens
The tenzro_wormholeBridge RPC initiates a cross-chain transfer via Wormhole Token Bridge:
tenzro_wormholeBridge({
"token": "TNZO",
"from_chain": "tenzro",
"to_chain": "solana",
"amount": "100.0",
"sender": "0x...",
"recipient": "SolanaPublicKey..."
})The flow:
- Tokens are locked (or burned) on the source chain and a transfer message is posted to the CoreBridge.
- Guardians observe the message and produce a signed VAA.
- The VAA is relayed to the destination chain, where the Token Bridge verifies the signatures and mints (or unlocks) the wrapped token.
CLI
tenzro wormhole chain-id --chain ethereum
tenzro wormhole parse-vaa --vaa-id 2/0x3ee18b2.../42
tenzro wormhole bridge \
--token TNZO \
--from-chain tenzro \
--to-chain solana \
--amount 100.0 \
--recipient SolanaPublicKey...Security Considerations
- Trust assumption — Wormhole relies on an honest majority of Guardians. A quorum of Guardians compromised could forge VAAs.
- Replay protection — VAAs include a monotonically-increasing sequence; the Token Bridge records consumed VAAs to prevent double-mint.
- Consistency level — Tenzro defaults to `finalized` (Guardian consensus after source-chain finality) rather than `instant` (optimistic).
- Alternatives — For scenarios requiring stronger trust minimization, consider LayerZero V2 with Tenzro DVN or native Chainlink CCIP.