If you haven’t read the Overview, the
VaultInterface, OFT adapter, and hub/spoke mental model are defined there. Start at the Overview if any terms below read as unfamiliar.DVN trust model
Every cross-chain pathway is configured with a required threshold of at least 2 independent DVNs (Decentralized Verifier Networks). No single DVN can forge a message. Providers are public, audited infrastructure operators:| Pathway | Required DVNs |
|---|---|
| Base ↔ Avalanche | LayerZero Labs + Google Cloud |
| Base ↔ Katana | LayerZero Labs + Nethermind |
Verify the DVN configuration yourself
DVN configuration is on-chain state, not something you should take on faith from docs. To verify the threshold and providers for a pathway, callgetConfig on the LayerZero V2 endpoint:
uln.requiredDVNCount >= 2- Every entry in
uln.requiredDVNsis populated and non-zero uln.confirmationsis non-zero (block-finality requirement)
Bridge UTY or yUTY between chains
UTY and yUTY both use LayerZero’s OFT standard. The hub (Base) side is a lockbox adapter (ShareOFTAdapter): tokens sent cross-chain are locked in the adapter, not burned. The spoke side is a mint/burn OFT (OFTExtended): tokens arriving from the hub mint; tokens leaving burn.
Base → spoke
- Call
send()on the hub adapter for the token you’re sending:UTY ShareOFTAdapter(on Base) for UTY,yUTY ShareOFTAdapter(on Base) for yUTY. - The adapter locks your tokens on Base and submits a LayerZero message.
- On arrival at the spoke, the OFT mints the equivalent amount to the receiver address you specified.
Spoke → Base
- Call
send()on the spoke OFT for the token you’re sending:UTY OFTExtended(on the spoke) for UTY,yUTY OFTExtended(on the spoke) for yUTY. - The spoke OFT burns your tokens and submits a LayerZero message.
- On arrival at Base, the hub adapter unlocks the equivalent amount from its lockbox to the receiver address.
Gas sponsorship
The protocol sponsors return-hop LayerZero fees for cross-chain vault operations. Users and integrators pay only the first-hop native fee on the originating chain; the protocol pays the return-hop fee from gas tanks maintained on each spokeVaultInterface and on the hub UTYVaultComposer. This is what lets the spoke VaultInterface preserve the ERC-7540 nonpayable signatures exactly — partners can call deposit and requestRedeem on a spoke without attaching msg.value for cross-chain fees.
Under normal operation the gas tanks are funded and monitored by YieldPoint ops; partners don’t manage tank balances day-to-day. The failure mode matters for integrator design:
Latency and observability
Cross-chain messages typically settle in under a minute for a full spoke → hub → spoke round trip. No SLA. Latency depends on DVN liveness, destination chain congestion, and executor queue depth — none of which the protocol controls. Rather than blocking on a return message, watch on-hub state via an indexer or a Base RPC. The cross-chain event correlation recipe (spokeGasTankDebited.guid → hub RedeemRequest or hub composer GasTankDebited) lives in the Base operations event reference — that page is the canonical home; use the guid field as your correlation key.
Protocol-level defenses beyond DVN verification
LayerZero’s multi-DVN verification handles message authenticity. YieldPoint layers additional protocol-level defenses on top, covered briefly here:- Trusted remotes on the Composer.
UTYVaultComposervalidates incominglzComposemessages against atrustedRemotesmapping. Messages from unregistered spoke contracts are rejected outright — an attacker who compromises every DVN still can’t get a message processed unless they originate it from a registeredVaultInterface. - Per-vault
COMPOSER_ROLE. The hub vault grantsCOMPOSER_ROLEto exactly oneUTYVaultComposerper vault. There is no cross-vault authority — a bug in one composer cannot act on another vault. - Bridge-level pause.
ShareOFTAdapterinheritsPausableWithPauserAuth. Admin EOAs can pause cross-chain share-token transfers as an emergency control, independent of the vault’s own pause. - Per-controller pending-claims counter. Each spoke
VaultInterfacetracks a per-controller counter:requestRedeemincrements it;redeemrequires it to be> 0and decrements it. Without a prior request, aredeemcall on the spoke reverts withNoPendingClaim— this prevents zero-cost gas-tank drain attacks.
Cross-chain trust model
The diagram below shows a cross-chain message flow with the required-DVN verification step highlighted. A message from a spoke OApp must be signed by every DVN in the required-DVN set before the hub OApp accepts it; the threshold is at least 2 and the required-DVNs list must be populated with non-zero addresses (the pass criterion from the verification recipe above). Figure: Cross-chain message flow with required-DVN verification. A message leaves the spoke OApp, passes through the required-DVN verification set (each DVN independently attests), and arrives at the hub OApp only after the threshold is met. Integrators verify the DVN configuration directly on-chain viaendpoint.getConfig — the recipe above returns the UlnConfig struct with the current thresholds and providers.