EIP-712 domain separator missing chainId
Falcon Finance'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 #
USDf inherits EIP712Upgradeable from OZ which includes chainId in domain separator by default. sUSDf same. No cross-chain replay finding in Zellic.
Detail #
USDf implementation uses OZ EIP712Upgradeable (confirmed from Etherscan dependency listing). OZ EIP712Upgradeable v5.x always includes chainId in the domain separator. sUSDf also uses OZ upgradeable pattern. Zellic found no EIP-712 domain separator issue. Confidence medium — domain separator not directly read from on-chain state but OZ standard implementation is well-established.
Sources #
- Audit
- USDf Implementation — EtherscanUSDf impl: EIP712Upgradeable dependency (OZ) — chainId included by defaultretrieved 2026-05-12
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 →