Intents overview
Introduction#
When a user has an end outcome they would like to achieve on-chain, they are required to do individual transactions one-by-one, going to many different protocol websites, and may even not be aware of more steps that they can do once they have achieved a particular outcome. Resulting in a poor user experience, and a limited experience for users interacting on-chain. For developers who want to interact with Smart Contracts within their application, whether that’s to create a new primitive combining many different Smart Contract interactions into a new product, or a developer who wants to offer their users more optionality. Then these developers are required to build manual Smart Contract implementations to interface with other Smart Contracts limiting the full potential of composibility and truly turning their development life cycle into an integration studio rather than focusing on their core product.
Intents flip this whole experience backwards and require the user or developer to only define the end outcome they would like to achieve, whether that be state, tokens, defi position, an nft, gaming item, or even a simple transaction like sending funds to another address on-chain. By following this methodology, the paradigm of user experience and interaction changes completely. The underlying mechanisms to fulfil a user request are offset to networks like Enso, where multiple parties are coordinating and contributing Smart Contract abstractions to bridge the gap from an intent request to a solution to fulfil this.
The flow of intents#
Intents can be broken down into different components; request, solution, and settlement. Intent requests can be seen as a job bulletin board, where users or developers state the task that they would to be done, with the requirements of completion. A job bulletin board requires individuals to complete the task, and there must be participants to fulfil the tasks that are submitted. This is where the Enso intent engine comes into play, whereby the network participants coordinate together to propose a solution to the requested task. As the Enso network has many different Smart Contract abstractions, it is the only network enabling the fulfilment of tasks that aren’t just swaps, but any Smart Contract interaction type. Once Enso has proposed a solution to this task, then a settlement agent will be selected for executing the solution on-chain.
Enso can be viewed in this context as a library that stores, and organizes all Smart Contract interactions, with libraries choosing different routes, and combinations of books to fulfil the knowledge requirement of the requester. As Enso holds the key to the information of fulfilment we enable the future of defacto user and developer interaction with the desired blockchain framework
Benefits of intents#
Before discussing the benefits of intents, it is valuable to understand the current user and developer experience without intents.
Users: When a user interacts with a protocol, they may be required to do another Smart Contract interaction to interact with their desired protocol. This user may inherently not know where they can obtain this prior interaction or do not know how to obtain this. This can be said for not only a Smart Contract interaction but also for a particular chain, where they may be required to bridge, and the native gas token for how to transact on that chain. Ultimately, the user is then forced to learn about every single step that is required to achieve their end destination, even with the user having in their mind already what their end outcome already was. Thus decreasing the whole user experience for individuals interacting with blockchain applications as a whole.
Developers: Application developers that wish to offer many Smart Contract interactions, or even a combination of many Smart Contract interactions are required to integrate every Smart Contract manually and develop their own Smart Contract adapters. Turning the developer experience into an integration dev shop rather than focusing on building their product.
Now with intents, developers are able to explicitly define the outcome their wish to desire, regardless of the complexities of how that may be obtained. Whether it requires