The chainId field format renders chain 137 as Polygon, where the ERC-7730 specification's reference values give Polygon Mainnet.
specs/erc-7730.md defines the format as "value is converted to a Blockchain name using EIP-155 reference values", and its worked example is Ethereum Mainnet for value 1. That string is the name field from the EIP-155 chain list published at chainid.network, which gives:
| chain |
name |
| 1 |
Ethereum Mainnet |
| 137 |
Polygon Mainnet |
| 42161 |
Arbitrum One |
cs-test renders 137 as Polygon. @ethereum-sourcify/clear-signing 0.2.2 renders Polygon Mainnet. Chain 42161 agrees in both, because Arbitrum One carries no "Mainnet" suffix to drop, so the divergence only shows on chains whose canonical name ends in it.
Reproducer: ethereum/clear-signing-erc7730-registry#2590 adds the first descriptor in that registry to use format: "chainId". The registry runs both implementations as CI gates, and the Rust job fails on one case:
Swap and Bridge: swap 100 USDC then generic-bridge to Polygon (RangoGenericBridgeFacet.genericSwapAndBridge) — field value at [4] "Destination Chain": expected "Polygon Mainnet", got "Polygon"
The registry pins this repository at 10605ba78f3d6f3f13102e0f3a3ecbc44ac500dc.
Worth fixing rather than absorbing on the descriptor side for two reasons. A spec-conformant descriptor currently cannot go green in the registry, since the two pinned runners disagree and a fixture can encode only one expected string. And both of these are wallet-facing implementations rather than test harnesses, so the same bridge to Polygon presents a different destination depending on which SDK the wallet embedded.
The
chainIdfield format renders chain 137 asPolygon, where the ERC-7730 specification's reference values givePolygon Mainnet.specs/erc-7730.mddefines the format as "value is converted to a Blockchain name using EIP-155 reference values", and its worked example isEthereum Mainnetfor value 1. That string is thenamefield from the EIP-155 chain list published at chainid.network, which gives:namecs-testrenders 137 asPolygon.@ethereum-sourcify/clear-signing0.2.2 rendersPolygon Mainnet. Chain 42161 agrees in both, becauseArbitrum Onecarries no "Mainnet" suffix to drop, so the divergence only shows on chains whose canonical name ends in it.Reproducer: ethereum/clear-signing-erc7730-registry#2590 adds the first descriptor in that registry to use
format: "chainId". The registry runs both implementations as CI gates, and the Rust job fails on one case:The registry pins this repository at
10605ba78f3d6f3f13102e0f3a3ecbc44ac500dc.Worth fixing rather than absorbing on the descriptor side for two reasons. A spec-conformant descriptor currently cannot go green in the registry, since the two pinned runners disagree and a fixture can encode only one expected string. And both of these are wallet-facing implementations rather than test harnesses, so the same bridge to Polygon presents a different destination depending on which SDK the wallet embedded.