There’s also the question of why to standardize escrow, and the role of ERCs to the Ethereum ecosystem. I think the benefit of standardizing an interface via an ERC is in ecosystem-wide composability for diverse implementations from authors who don’t know each other. Take the most popular ERC standard, ERC-20 - there are many implementations with radically different internal mechanisms, but because the interface is small and defined at a very generic boundary, it’s possible to make things like DEXs, payment systems, and escrow contracts that work with any ERC-20 token.
In particular, Rob Pike’s “The bigger the interface, the weaker the abstraction” applies strongly. I think the parts of “escrow” that would be most usefully abstracted into an ERC are
- the process of conditionally promising a future on-chain action
- the conditions for such promises
With these two standardized, many implementations of escrowable actions (token transfers, attestations, voting, rating in a registry…) can be combined with many implementations of conditions (single evaluator, vote by many evaluators, cryptographic proof…), and conditions can be composed such that people can also write and use useful “microconditions” like for counterparty, expiration time etc., which may all have more elaborate mechanisms than comparing against a single value (accepting fulfillments from anyone on a whitelist, or anyone except a blacklist, conditional expiration…).
As I linked above, Alkahest already exists as a functional and audited escrow system which abstracts along these two lines (IArbiter, BaseEscrowObligation). One of our main reasons for not pushing its interfaces as an ERC standard has been its strong dependence on EAS, which though widely known and used, is not itself an ERC standard. This leads to my next point.
Ethereum is very unique in that contracts are all visible to each other, but analogous to OOP “objects”, which would normally only be visible to each other inside a single program (usually owned by a single org) anywhere else. But this means that designing ERCs for Ethereum is very different from designing public infrastructure for other ecosystems.
Especially, not all public good infrastructure should be an ERC. EAS functions as a set of canonical deployments to most widely used EVM blockchains, and is not an ERC because people are intended to interact with it via the canonical deployments, not by deploying many variants that follow a similar abstract interface. This is similar to the status of ERC-8004, which I also believe should have been a set of canonical deployments rather than an ERC.
Following @wjmelements’s point, the title of this proposal as “Agentic Commerce” suggests that this EIP may be going a similar direction, using the EIP process to gather more authenticity and attention for what is really more like a particular application ecosystem (consider that Uniswap hooks are also not an ERC).
More broadly, I think the Ethereum ecosystem should be careful about the EIP process being used to lend the appearance of neutrality and public-good status to what are effectively particular application designs backed by particular organizations. The legitimacy of ERCs comes from their role as minimal, unopinionated interfaces that emerge from broad community need - not from top-down specification of application-layer patterns by well-resourced groups. When the EIP process is used for the latter, it risks diluting the signal that an ERC number is supposed to carry, and allows organizations with more resources and institutional proximity to the EF to effectively “reserve” design space that should remain open to organic community development.