Bridge binds message to srcChainId
A cross-chain & bridge factor in the v1.7.0 rubric. Measured per protocol on a s cadence.
Methodology how we score #
**What this measures** This factor checks whether the bridge message struct includes a `srcChainId` field and whether the verifier enforces chain-of-origin separation when validating messages. Without this, a valid message signed for chain A can be replayed on chain B if the signer set is shared. Static analysis of the bridge verifier and message struct is the assessment method. This factor applies only to bridge-touching protocols; non-bridge protocols show this factor as N/A.
**Why it matters** Cross-chain replay attacks exploit the absence of per-chain message binding: an attacker who captures a valid signed message from one chain can replay it on a different chain where the same validator set is trusted. This is particularly relevant for bridges that operate across many chains with a shared guardian set — a signed message to release tokens on Ethereum could be replayed to release tokens on BSC, BNB Chain, or Avalanche if chain binding is absent. The T-01 evidence base links cross-chain replay patterns to approximately 2 protocols in the hack database. Chain binding is a minimum security requirement for any multi-chain bridge architecture.
**Green / Yellow / Red** Green is scored when the message struct includes `srcChainId` (or equivalent), the verifier enforces it, and per-chain nonce or root state prevents cross-chain replay. Yellow is scored when chain binding exists in the struct but is not verified in all execution paths, or when chain binding is present only for some bridge functions. Red is scored when no chain binding exists in the message struct or verification logic.
**Common gray cases** Gray is applied when the bridge uses a proprietary message encoding that cannot be decoded without the closed-source ABI.
**Notable historical examples** No cross-hacked incidents are currently linked in the database for this factor.
Measurement what to look for #
Determine whether the bridge message struct includes `srcChainId` and the verifier enforces per-chain separation.