Skip to main content
The UAB (Universal Announcement Bus) relays stealth announcements across chains via Wormhole. A payment announced on Solana can appear in an Ethereum user’s inbox (and vice versa) without a central indexer.

How it works

  1. Sender calls announceWithRelay on UABSender (local announce + Wormhole publish)
  2. Wormhole guardians attest the 96-byte payload
  3. Relayer delivers the VAA to UABReceiver on the destination chain
  4. Receiver re-emits a standard Announce event
  5. Recipient scans with the same WASM filter as native announcements

Scanning cross-chain outputs

Relayer

Off-chain VAA delivery is handled by opaquecash/relayer. The SDK builds and reads announcements; the relayer watches Wormhole and submits VAAs to UABReceiver.

Wormhole chain IDs

Exported as WORMHOLE_CHAIN_SOLANA and WORMHOLE_CHAIN_ETHEREUM from @opaquecash/opaque.

Starknet

Wormhole has no Starknet support, so Starknet participates in the unified inbox as a native scan chain rather than over the UAB relay: add "starknet" to scan({ chains }) and its announcements merge alongside Ethereum and Solana. See Starknet. Trust-minimised registry/ONS mirroring to Starknet (native L1→L2 messaging) is on the roadmap.