Protocol has bridge surface
Concrete's assessment for RD-F-147 — scored yellow on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
YES — Concrete operates a LayerZero v2 OApp (PredepostVaultOApp.sol, import: @layerzerolabs/oapp-evm-upgradeable) used in production by ctStableUSDT and ctStablefrxUSD pre-deposit vaults. The OApp calls _lzSend($.dstEid, payload, options, ...) to relay share-claim authorization messages from Ethereum to Stable Network / Berachain. ShareDistributor.sol on destination chains is also a LayerZero v2 OApp that receives these messages via _lzReceive() and executes vault-share transfers to users. Combined ~$120M in pre-deposit + destination-chain positions depends on this path. ConcreteBridgedVaultImpl is NOT a bridge (intra-protocol vault-version migration, VAULT_MANAGER-gated unbackedMint, no cross-chain logic). Scored yellow rather than green because the OApp is a real cross-chain dependency securing significant user positions, not merely informational cross-chain communication.
Sources #
- GitHubPredepostVaultOApp.sol — confirmed LayerZero v2 OApp, send-only from Ethereumsrc/periphery/predeposit/PredepostVaultOApp.sol — import @layerzerolabs/oapp-evm-upgradeable confirmed (LZ v2); send() calls _lzSend($.dstEid, payload, options, MessagingFee(msg.value, 0), payable(refundAddress)); OAppUpgradeable inheritance; setDstEid() owner-gated configretrieved 2026-05-17
- ShareDistributor.sol — confirmed LayerZero v2 OApp, destination-chain share distributorsrc/periphery/predeposit/ShareDistributor.sol — OAppUpgradeable inheritance; _lzReceive() dispatches MSG_TYPE_CLAIM (transfers shares to user) and MSG_TYPE_BATCH_CLAIM; IERC20(targetVault).transfer(user, shares) executes vault-share deliveryretrieved 2026-05-17
Methodology #
Determine whether the protocol has a bridge surface (its own bridge or a bridge-operated dependency for routing/minting).
See the full factor methodology and distribution across all protocols →