EIP-712 domain separator missing chainId
Centrifuge's assessment for RD-F-020 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
EIP712Lib.sol confirmed to include block.chainid in domain separator calculation. ERC20.sol DOMAIN_SEPARATOR() recalculates if block.chainid changes post-deploy (fork protection). Code4rena Sept 2023 identified DOMAIN_SEPARATOR caching issue as medium finding — subsequently fixed and verified in Oct 2023 Spearbit/Cantina post-fix audit.
Sources #
- AuditCode4rena 2023 DOMAIN_SEPARATOR findingCode4rena 2023-09-centrifuge — DOMAIN_SEPARATOR medium finding (pre-V3, fixed in Oct 2023 Spearbit post-fix audit)retrieved 2026-04-28
- ERC20.sol — DOMAIN_SEPARATOR() chainId recalculation on forkcentrifuge/protocol misc/ERC20.sol — dynamic DOMAIN_SEPARATOR with fork protectionretrieved 2026-04-28
- EIP712Lib.sol — chainId present in domain separatorcentrifuge/protocol misc/libraries/EIP712Lib.sol — block.chainid in domain separatorretrieved 2026-04-28
Methodology #
Determine whether the EIP-712 domain separator struct omits the `chainId` field, allowing cross-chain replay.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol centrifuge factor RD-F-020 score green collected_at 2026-04-30 21:19:10