An Introduction to Intents

An intent is the end result that you’re trying to achieve, regardless of what path you take to get there. Intents can vastly improve crypto user experience and accelerate mainstream adoption.

Most will agree that the user experience in crypto sucks.

To perform a “simple” task on one chain, you have to open up what’s probably a horribly-designed crypto wallet, approve multiple actions without understanding what you’re really doing, then pray that your wallet won’t get drained from your clicking.

I’m kidding, but only kind of.

What if you’re performing a cross-chain transaction? Even worse.

Here’s an example of a transaction that I recently experienced.

I needed to send some Metis USDC (m.USDC) to someone but my funds were currently on Ethereum. This should be a very simple process, but below is what I endured:

  1. Visit the Metis bridge website.

  2. Connect my Rabby wallet to the bridge website.

  3. Input the amount of USDC on Ethereum to bridge to Metis.

  4. Realize that I didn’t have enough ETH to pay the bridge gas fee.

  5. Send ETH from one of my other wallets to this wallet to top up my gas.

  6. Approve the ability to bridge the assets in my wallet.

  7. Confirm that I want to bridge the USDC from Ethereum to Metis. (Lucky that the bridge automatically airdrops some METIS token into your wallet to pay for gas to bridge. Otherwise, I would have had to do another swap to acquire some METIS.)

  8. Wait for the transaction on Ethereum to complete.

  9. Wait for the transaction on Metis to complete.

  10. Check that all the correct funds are in my wallet on Metis.

  11. Send the m.USDC to my contact.

Sounds fun, huh?

This is not an indictment of any of the wallets or dapps used. It’s just the terrible UX of crypto overall.

Enter intents.

Definition of Intents

An intent is the end result that you’re trying to achieve, without concern about the specific steps you take to get there.

In the above example, my intent was to “send $X mUSDC from my wallet address on Ethereum to my contact’s wallet address on Metis”.

Another simple intent could be to “swap X amount of Token A to receive as much as possible of Token B.”

If you’ve used decentralized exchange (DEX) aggregators like 1inch, CowSwap, or Matcha, you’ve been involved in an intent.

You don’t care which DEX or specific liquidity pools you go through to execute your trade. You don’t want to have acquire a specific token to pay gas fees if you don’t have that token in your wallet. You don’t want to manually bridge your crypto if you’re doing a cross-chain trade.

You just want to get your trade done at the most beneficial prices.

Intents simplify the user experience by abstracting away many steps of transactions by offloading them to third parties called “intent solvers” (for a fee, of course).

How Intents Work

On the surface, intents are relatively straightforward, but there’s a lot going on behind the scenes.

An intent provider (e.g. me) signals the intent I would like to execute (e.g. swap X amount of Token A to receive as much as possible of Token B).

This is typically done on the front ends of dapps (such as on the user interface of 1inch to execute a trade), within wallets, or on other user-focused applications.

The data of this intent is then broken down and passed to a mempool.

Intent solvers then scan this mempool for an intent and analyze if the price is right to execute it. Solvers also scan for overlapping intents (e.g. if two order-book trades are netted against each other) and can execute both in a single transaction for increased efficiency.

If a solver decides that it’s worth executing the intent, it creates the process to execute the transaction. If the solver has access to the trade liquidity (or whatever resources are needed), they can execute the transaction as well. If not, a filler (e.g. a DEX) will execute the trade.

Then voila, intent executed!

Potential Issues with Intents

One of the key benefits of blockchain is the absence of centralized parties that have control over how things are done.

With intents, we are increasingly outsourcing our on-chain activity to solvers, which can lead to more centralization.

As these solvers become more powerful and entrenched, they may eventually act in their own self-interest and charge higher fees for their services.

For example, a large crypto exchange may build low-cost trading intents to serve customers and build market share. After they’ve defeated their competition and hold a monopoly over the market, they may then hike prices to maximize their profit. No bueno.

Intent protocols need to be:

  • Permissionless - so that anyone can be a solver that executes intents

  • Standardized - so that integration of intents into applications is easy

  • Transparent - so whomever executes the intents, and the quality of these transactions, are open for all to see

It’s clear that intents can have a profound impact on the user experience, but they must maintain the decentralized ethos of crypto to ensure we’re not reverting back to the days of middlemen extracting value from everything that we do.

Projects Working on Intents

We’ve mentioned popular consumer-focused, intent-based apps for trading such as 1inch, CowSwap, and Matcha.

There are some very interesting projects building the underlying infrastructure to power generalized intents.

Anoma is the OG of intents infrastructure. The protocol allows developers to build intents-based apps that preserve the privacy of transactions and can be applied to any use case. Intents are submitted to intent gossip nodes, which form pools of intents. Matchmakers then analyze these pools to find intents that can be combined to satisfy each other for highly efficient transactions.

Essential provides intent infrastructure that “accelerates the transition from value extraction to intent satisfaction”. The Essential team has created an intent standard for Ethereum, a domain-specific language (DSL) for intent expression, and a “fully intent-centric blockchain protocol”. Their goal is to ensure that users achieve their desired goals while minimizing value extracted by involved entities (such as MEV).

Orb Labs is building an intents engine that focuses on interoperability. Orby, the intent engine, and the Orb Stack, an intent-driven interoperability stack, work together to help developers easily build cross-chain apps and allow users to unify all of their accounts across multiple chains.

Conclusion

Poor user experience is one the primary reasons why crypto hasn’t reached mass adoption yet. Now there are generalized intent protocols being built with the sole mission to improve crypto UX.

We can’t wait to see these UX improvements and how they impact the adoption of crypto!

What are your thoughts about intents? What did we miss? Let us know in the comments below!