In our previous post, we introduced ERC-7521, a generalized intent standard for smart contract wallets.
In that post, we defined a general flow and intent verification process for smart contract wallets to integrate with. However, we noted that intent handling logic should be defined in separate contracts, referred to as Intent Standards.
These standards are individual specifications for exactly what a signed intent should consist of and how it should be processed. They are designed to be modular and use-case-specific in order to allow applications, wallets, and solvers to support emerging intent use cases without requiring changes to the underlying ERC.
In this post, we introduce an intent standard specification (the Asset Based Intent Standard) that extends the generalized intents framework established in ERC-7521 and defines in more detail how a user’s intent might actually be satisfied.
Intent Standards for ERC-7521
What is an Intent Standard?
As a refresher of the previous blog post, an Intent Standard defines the specifics of the intent handling logic. Intent Standards are separate contracts from the main contract (referred to as the Entry Point contract), which in contrast handles high-level intent validation and processing.
The Entry Point calls out to these Intent Standard contracts in order to process an intent. The Intent Standard defines how additional intent data and execution should be handled, as well as basic off-chain rules such as how messages are to be communicated to solvers and protection mechanisms against DoS attack vectors inherent with intents.
An Ecosystem of Intent Standards
Many Intent Standards can exist simultaneously, and it’s up to users at intent signing time to opt in to a specific standard. Intent Standards are registered to the Entry Point in a completely permissionless way and enable generalized intents to stay up to date with the latest use cases for intents.
As referenced in our previous post: “We anticipate that the development of new Intent Standards with additional functionality will grow as the intent landscape becomes more mature, with optimized niches and new emerging use cases. Adoption and support of these standards will be driven by social consensus among wallet developers and intent solvers, as well as the demands of end users.”
Asset Based Intent Spec: Intents for DeFi and Beyond
In order to ensure ERC-7521 has significant functionality from the early stages, we have developed the Asset Based Intent Standard.
The evolution of this standard came about as our team recognized similarities across current use cases of intents, with the driving focus being on digital asset ownership and transfers. These types of intents range from simple actions like token swaps or portfolio rebalancing, to more specific preferences - for example, a user who wants to buy an NFT that only accepts payment in ETH, but wants to pay for the NFT and gas in DAI.
As Simple as Assets In, Assets Out
Looking at these kinds of intents, a pattern starts to emerge. Most intents today can be boiled down to a user expressing what assets they are willing to give up in order to obtain a balance of different assets or perform some action. This basic “assets in, assets out” pattern is what the Asset Based Intent Standard is based on.
It consists of three optional parts per Segment of the Intent (refer to previous blog post for an explanation of Segments).
- First, each Segment can specify asset balances that must be met as the Segment’s processing begins, else the Intent is considered unsatisfied and the whole processing fails.
- Second, each Segment can specify calldata to instruct the sender’s smart contract wallet to perform some actions.
- Third, each Segment can specify a list of assets to be released to the sender of the next Intent Segment to be processed.
Both required and released assets can be specified as flat values or as a curve evaluated over time. Through the use of curves, a user can utilize Dutch Auction style mechanisms, leveraging competition between solvers to ensure they get a good deal (beyond what might be their best guess of the current market).
Also, required assets can be specified in terms relative to what the balance was when the previous Segment was processed. This allows to users to express their intents in a more natural and flexible way (such as the example below, where a user is expecting to release 5 DAI and be given enough ETH to purchase an NFT, regardless of their starting ETH balance). This also allows for signing multiple intents that can be processed in any order, since a user doesn’t have to write intents expecting exact values but rather some amount more or less than the start of processing.
Combining with a Basic Operational Standard
One more Intent Standard needs to be defined in order to finish the complete picture of how intents get successfully processed.
The solvers looking to satisfy user intents will often benefit from inserting their own intents in between the processing of user-submitted intents in order to offer better satisfaction to end users. These solvers could construct their own intents with the Asset Based Intent Standard, but it would be more optimized for them to use a more stripped-down version that just contains the ability to specify calldata to execute an operation.
This basic standard is referred to as the Operation Intent Standard, as it mimics the simple UserOperations found in the ERC-4337 Account Abstraction spec. This Intent Standard has been further optimized by being baked into the Entry Point contract of ERC-7521 itself, since it is integral in submitting intents.
Intent Gossiping, Orderflow, and Mempool
All the pieces are now in place to see the bigger picture for how a user fully defines their intent, and how solvers compete to maximize end-user satisfaction, including by providing their own intents.
One thing that has yet to be discussed, however, is the mempool question: specifically, how exactly Asset Based Intent Standard intents will be gossiped to solvers, and at what point an intent will be considered expired, unsolvable, or otherwise rejected. A private mempool is the simplest solution, but comes with notable drawbacks that need be be considered further.
Because this decision has important implications for the control of orderflow, we are still exploring multiple solutions in order to find the ideal balance between efficiency and decentralization. This is a topic for a later blog post, pending further discussion with the community.
Conclusion: Charting a Course for Intents on Ethereum
The introduction of the Asset Based Intent Standard marks a significant step forward in establishing how to handle the most common intent use cases seen today.
As we explored the patterns of user intents across various use cases, the “assets in, assets out” approach emerged as a foundational driving concept. By defining asset balances, calldata instructions, and asset releases within the Segments of an intent, users gain a versatile tool to express their desires in a natural and flexible manner.
With the addition of the Operation Intent Standard, which simplifies adding intents for solvers, the ecosystem is poised for a comprehensive and streamlined intent processing mechanism. The journey toward a standardized intent ecosystem continues with each new Intent Standard defined for users to play with, bringing us closer to a world of enhanced DeFi and beyond.
Community participation and feedback are crucial for ensuring the standard meets the needs of all stakeholders. We encourage everyone interested in the evolution of intents to join the discussion!
- Join the discussion on Ethereum Magicians.
- Contribute to the ERC-7521 repo.
- Follow us on Twitter and engage in the conversation.
Essential is building intent-based infrastructure & tooling to accelerate the transition from value extraction to intent satisfaction. With a growing team of global contributors building several core pieces of intent-centric infrastructure, Essential is committed to supporting ecosystem-wide composability to ensure the intent paradigm reaches its full potential to minimize extractive behavior and maximize user satisfaction.
To join us on this journey and contribute to the intent-centric future, follow us on Twitter and stay tuned for future updates.