Skip to main content

Command Palette

Search for a command to run...

Wormhole in One Diagram

Updated
5 min read
Wormhole in One Diagram

Understanding the Wormhole Protocol Through Its Message Flow

At its core, Wormhole is a protocol for cross-chain message verification. Everything built on top of it, token transfers, governance, settlement, queries, derives from a single primitive: the ability to prove, on one blockchain, that a specific event occurred on another blockchain.

This article explains that primitive end to end. If you understand the flow described here, you understand Wormhole.

The fundamental idea

Blockchains cannot directly read or trust each other’s state. A smart contract on one chain has no native way to know whether something happened on another chain. Wormhole solves this problem by introducing a verification layer between chains. Instead of trying to synchronize state or execute logic across chains, Wormhole reduces cross-chain communication to a simpler question:

Did this specific event really occur on that other chain?

Wormhole answers that question by turning on-chain events into cryptographically signed facts that any chain can independently verify.

The single message flow that defines Wormhole

Every interaction with the Wormhole protocol follows the same lifecycle.

First, a smart contract on a source chain emits a message. This is done by calling the Wormhole Core Contract deployed on that chain. The core contract records the message and emits it as an on-chain event. At this point, nothing has left the source chain. No cross-chain execution has occurred. Only a fact has been published.

Next, a decentralized set of off-chain validators known as Guardians observe the source chain. Each Guardian runs a full node for that chain and independently monitors the Wormhole Core Contract. When they see the message event, they wait until the chain reaches finality. This is critical: Wormhole does not sign messages from blocks that may be reverted.

Once finality is reached, each Guardian verifies that the message is valid. This verification includes checking that the event came from the correct core contract, that the emitter address is correct, and that the message format is well-formed. Guardians do not interpret the message payload. They only attest that the event occurred.

After verification, Guardians cryptographically sign the message. When a supermajority of Guardians, at least two-thirds of the active set have signed, the message becomes a Verifiable Action Approval, or VAA. The VAA is the only artifact that moves between chains.

Any party may transport this VAA to another chain. These parties are called relayers, but they are intentionally untrusted. Relayers do not participate in validation, cannot forge messages, and cannot bypass protocol rules. They merely carry data.

On the target chain, the VAA is submitted to that chain’s Wormhole Core Contract. The core contract verifies the Guardian signatures, checks that the quorum requirement is satisfied, and ensures the message has not already been consumed. Only after all these checks pass is the message considered valid on the target chain.

At that point, the Wormhole protocol is finished. What happens next is entirely up to the application consuming the message.

What exactly is being signed

Every Wormhole message contains a fixed set of fields. These include the source chain identifier, the emitting contract’s address, a sequence number, a nonce, and an arbitrary payload defined by the application.

The sequence number is monotonically increasing per emitter. Combined with the emitter address and source chain, it uniquely identifies the message. This uniqueness is what enables replay protection on the destination chain.

The payload is opaque to Wormhole. The protocol does not interpret it, enforce structure, or impose semantics. From Wormhole’s perspective, a payload is just bytes.

VAA FORMAT:

When Guardians sign a message, they sign a cryptographic digest derived deterministically from the VAA body fields. By producing this signature, a Guardian attests to a single fact only: that an on-chain message with this exact emitter address, originating chain, and sequence number was observed, and that the emitting chain had reached the required level of finality at the moment of signing. The signature does not imply validation of the message’s contents, correctness, safety, or intended effect, it solely certifies the existence and finalized state of the message on its source chain.

digest = keccak256(keccak256(body))
// sign the result
signature = ecdsa_sign(digest, key)

Verification and replay protection

On the target chain, verification is deterministic and on-chain. The Wormhole Core Contract checks that the VAA contains enough valid Guardian signatures and that those signatures correspond to the current Guardian set.

It also checks replay protection. Each VAA can be consumed exactly once. Once a VAA is verified and marked as consumed, any attempt to submit it again will fail. This guarantees that no message can be executed twice, regardless of how many times it is relayed.

Replay protection is enforced entirely on-chain. It does not depend on relayers behaving honestly.

Ordering, finality, and what Wormhole does not guarantee

Wormhole provides a strict notion of message identity and uniqueness, but it does not provide execution ordering guarantees across chains. Messages may arrive out of order. Some messages may be delayed. Others may never arrive if no relayer submits them.

This is intentional.

Wormhole is designed to be a fact verification layer, not a transaction scheduler. Applications built on top of Wormhole must handle ordering, retries, timeouts, and compensation logic themselves. Similarly, Wormhole does not provide atomic cross-chain execution. There is no guarantee that actions on two chains succeed or fail together. The protocol guarantees only that a verified message reflects a real event on the source chain.

Finality handling is conservative by design. Guardians wait for chain-specific finality thresholds before signing messages. If a chain experiences reorganization or instability, Guardians halt signing rather than risk propagating incorrect information. This causes Wormhole to fail safely by stopping message flow instead of producing invalid messages.

Trust model and security boundaries

The Wormhole trust model is deliberately narrow. To trust Wormhole, you assume that at least two-thirds of the Guardians are honest and that cryptographic primitives hold. You do not need to trust relayers, application developers, or other connected chains.

A failure or exploit on one connected chain does not automatically compromise messages from another chain. Each message is verified independently, and only messages explicitly emitted and signed are accepted. This scoped trust model is what allows Wormhole to connect many heterogeneous chains without creating systemic risk.

The correct mental model

Wormhole is best understood not as a bridge, but as a distributed attestation system. Chains produce events. Guardians attest to those events. Other chains verify those attestations. Everything else is built on top of that.

If you keep this model in mind, Wormhole becomes simple, predictable, and safe to reason about. That is the entire protocol.