Intents are spreading rapidly. They are one of the many user experience improvements achieved through account abstraction and a hot topic discussed by Vitalik in his speech at EthCC. Intents allow users to define the on-chain results they expect and outsource the technical work to third-party solvers who interact directly with networks and protocols. In the end, the abstraction layer will make Web3 applications as user-friendly as regular applications. It reduces the existing learning curve in technology and will attract millions of new users.
The paradigm shift towards Intents means that future users do not need to worry about submitting transactions, paying gas fees with ETH, mitigating MEV on AMMs by setting slippage limits, aggregating token swaps for optimal route routing, or bridging assets between networks.
A simple way to understand Intents is to see them as declarative expressions of what users want to happen, rather than imperative steps on how to achieve something.
Intents are not a new concept.
Before Uniswap and AMMs, Ethereum projects like EtherDelta and 0x provided order books based on Intents. NFT markets have been using signed Intents for NFT listings and quotes for years. Updated systems like CoW Swap and UniswapX now provide more advanced Intents-based infrastructure for ERC20 limit orders.
Looking at the current landscape, the term “Intents” seems synonymous with “limit orders” because the only widely supported Intents in Web3 today are “I want X, I’m willing to pay Y”. The architecture of limit order Intents is usually simple and focused on one goal: exchanging at a more favorable price than the current market quote. Users sign their limit order Intents, and solvers find paths to fulfill the signed Intents using AMMs, other sources of liquidity, or in some cases, other Intents. Solvers have an incentive to find paths because they can keep the remaining portion as additional revenue once the user’s Intents are satisfied.
Many systems have already been established to support the use of limit orders, but as more advanced Intents tools are developed, we will see more general architectures that enable more powerful use cases.
Some examples of general Intents systems include Anoma and Flashbots SUAVE, both of which are actively being developed. They will provide a Gossip layer for Intents, where users broadcast their signed Intents to Gossip nodes. These chains will be specific to Intents and facilitate the connection between users signing Intents on different networks and solvers executing them.
Another example is Brink, a solution that creates composable Intents. Brink allows users and developers to build, sign, and resolve condition-state-based Intents on multiple EVM-compatible networks.
The Future of Intents
Let’s explore several ways in which Web3 Intents can go beyond simple limit orders. Here are some new concepts:
Conditional Intents: Allows the execution of an action when one or more conditions are met.
Sequential Intents: Expresses a desire to take repeated actions.
Multi-step Intents: Opening one or more new Intents when resolving an Intent.
Intents graph: A path formed by a group of related Intents.
Current Web3 applications only have one type of conditional Intents: limit orders. In the future, we will have Intents composed of any number of conditions, allowing for various operations.
If you are a Web3 user, you have made many conditional decisions in the past, which can be expressed as Intents, signed, and delegated to third-party solvers, such as:
Price threshold: “If the price of A/B is lower than X, swap B for A.” This is known as “stop loss” in traditional finance (trad-fi).
Governance decision: “If a governance proposal I don’t support is passed, sell token A.”
Wallet balance: “If my hot wallet ETH is insufficient, transfer more ETH from my cold wallet to my hot wallet.”
Elapsed time/block count: “If more than X blocks have been mined, transfer ETH to the recipient.”
All of these can be signed as a single Intent. The solver monitors these Intents and takes action on behalf of the user when the conditions are met. Users sign these conditions, and as part of their Intents, it forces the solver to check the on-chain state to prove the condition.
Intents can be expressed with any number of conditions, for example:
“I want to buy 2 ETH with DAI when the following three conditions are met: 1) ETH price is below $1,750; 2) The average DAI yield for lending ETH is high; 3) One of the whale wallets I’m following has bought at least 10 ETH in the past 24 hours.”
When complex state conditions are met, users will be able to express Intents to buy, sell, stake, transfer, or bridge assets, all with just a single signed Intent.
Intents will provide a protocol-agnostic way to execute sequential operations. While today’s Intents typically involve a single signature corresponding to a single operation (limit order), we will soon see the emergence of sequential Intents.
Users currently take sequential actions by depositing funds into protocols or exchanges. Here are some examples:
Cost averaging: “Buy ETH with DAI at market price once a month.” Users typically use CEX like Coinbase to accomplish this task.
Yield compounding (also known as re-staking): “Withdraw rewards from A, swap to B, and then re-stake.” This is a cumbersome process involving multiple transactions and interactions with multiple DeFi protocols.
Hot Wallet Recharge: “I have a cold wallet with 50 ETH. Whenever the balance of my hot wallet is below X, transfer Y ETH from my cold wallet to my hot wallet.” This requires many independent transactions.
Payment Flow: “Transfer X USDC to the receiving address once every two weeks.” This is supported by the streaming payment application, but requires users to deposit assets into the smart contract.
Liquidity Provision: LP positions based on AMM essentially follow the same pattern as two opposing swaps, which continue in an infinite loop: “When the price of A/B exceeds X, exchange A for B; when the price of A/B is below X, exchange B for A.”
From these examples, it can be seen that today’s continuous operations require users to deposit specific protocols and submit many transactions. With Intents, users can express their desired continuous operations through a single signature.
Cost averaging is a perfect example. Users who intend to average costs (repeatedly buying or selling over time) can express it as a signature that allows 1 ETH to be exchanged for DAI at a price provided by an ETH/DAI TWAP oracle that is difficult to manipulate, with a fee of 1% (0.01 ETH) charged every 50,000 blocks (approximately once a week on the Ethereum mainnet). The solver will monitor this Intents and check:
1. Does the user account have 1 ETH available for exchange?
2. Has 50,000 blocks been mined since the last exchange?
3. Is 1% (0.01 ETH) enough to pay for the Gas cost of the swap?
4. After the solver pays for the Gas of the swap, is there enough ETH left to pay for the solver’s operating costs, which may include the risk of losing PGA (Priority Gas Auction) or any other fees? Is the potential profit worth it for the solver?
If all of these pass, the solver will send a transaction to fulfill the user’s Intents for the ETH→DAI exchange. As long as the user’s account has enough ETH, the solver can monitor the “cost averaging” Intents with a single signature and generate a continuous flow of transactions. Users can get what they want without directly interacting with the EVM network or specific protocols.
Utilizing Intents for liquidity provision is another example of a continuous and potentially infinite operation that can be delegated to solvers. A user who wants to provide liquidity for ETH/DAI may create an Intents that allows for exchanges of DAI→ETH at a price of 1,800 ETH/DAI or lower, and exchanges of ETH→DAI at a price of 2,000 ETH/DAI or higher. With this Intents, the user attempts to lock in a profit of 200 DAI per trade when the market fluctuates between the 1,800 and 2,000 ETH/DAI price points.
It can be imagined as two mutually restrictive limit orders, where one opens when the other is executed, and vice versa. The user can sign a single exchange intention at each price point. As long as the market continues to fluctuate at these price points, theoretically, the solver can execute countless orders without any action required from the user.
Intents can consist of multiple steps. You can think of these intents as a state machine, where each transaction transitions from the previous state to a new state, depending on the conditions defined by the previous state.
A simple example of multi-step intents is the classic traditional financial arbitrage trading. These orders may vary in complexity, but a simplified version is common in traditional financial trading applications. With the composability of Web3 and multi-step intents, we can perform very powerful arbitrage trading.
A Web3 arbitrage trading intent can be expressed as: “I want 1 ETH and I’m willing to pay 1,800 DAI. Once I have paid 1,800 DAI and acquired 1 ETH, I am willing to hold this 1 ETH until I can sell it at a price of 2,000 DAI. If the ETH/DAI price falls below 1,620 DAI, I want to reduce my losses by selling this 1 ETH, and in that case, I will accept 1,600 DAI and pay a 20 DAI fee to the solver. If I still hold this 1 ETH when [random governance proposal] passes, I want to sell this 1 ETH at the market price of ETH/DAI and give 10% of the proceeds to the solver.”
This is a relatively simple 3-step order with some conditional triggers, but these types of orders can be much more complex.
The relationships between different user intents can form an intents graph. These graphs represent the combinations of conditions and actions defined by users, resulting in exchanges, asset transfers, or other on-chain behaviors. All the previous intents examples are just specific arrangements of these graphs.
Just as limit orders represent the current state of market liquidity, intents graphs can not only represent the current state but also represent conditions liquidity under many different potential future states.
For example, users trade XYZ and ETH in a fictional market. Intents representing buying and selling XYZ under various conditions, such as the outcome of governance proposals, specific block mining, market price fluctuations, or whether other intents have been fulfilled.
Intents graph for fictional XYZ-ETH market
This graph represents the liquidity currently present and the liquidity that may exist in future states. Intents graphs can span across markets and even across different chains.
With new advancements happening every day, Intents are making progress.