Early Declarative Applications: The Intent Narrative
Last updated
Last updated
If the imperative paradigm imposes so many limitations on users, developers, and networks themselves, why aren’t we using a different approach?
We aren’t the first people to ask this question. As early as 2018, influential members of the web3 community were proposing the declarative approach as an alternative. Despite having been discussed occasionally over the years, the concept only started to gain significant traction in early 2023 with the introduction of the primitive of “intents”.
Although the term has taken on many definitions, the core principle of intents is that they allow users to sign over their intended interaction in terms of outcomes (declarative) instead of instructions (imperative).
Whereas transactions pre-define how and where an on-chain state transition will take place, intents are “journey-agnostic”; as long as the desired outcome is reached according to the rules set by the user, the pathway to that outcome is inconsequential.
By adopting declarative principles, the intent primitive promises to bring major improvements to user experience and outcomes. Although still in its early stages, the concept has already been applied across several different verticals, from swaps to bridging, to much success. This is borne out in the numbers; already, over 25% of Ethereum’s orderflow originates from intent-based projects.
Clearly, a shift toward declarative ideals is a shift in the right direction. But when we look closer, a major flaw emerges in early production applications that leverage intents. Conceptually, these applications leverage declarative principles to enable users to express outcomes instead of instructions. However, in practice, these projects are unable to provide guarantees about outcomes, contrary to their stated declarative approach.
Their approach is to outsource transaction creation to specialized third parties (solvers) who attempt to most closely approximate the user’s preferred outcome. The actual fulfillment of those outcomes occurs via a lossy conversion back to an imperative format (i.e. a transaction), and execution of that transaction on an imperative state machine.
Despite taking steps toward a declarative approach, early intent projects continue to be limited by their reliance on imperative blockchain frameworks (i.e. the need to settle on existing imperative chains) to fulfill users’ intended outcomes.
They fail to fully adopt the declarative paradigm, instead reverting to imperative principles when it comes to actually including user outcomes as new state.
It is clear that declarative principles hold significant promise for improving the way we build, use, and interact with blockchains. But rather than just applying them to the pre-transaction stage, we should be applying them all the way down at the state machine level.
In order to achieve this, we introduce a new concept: the declarative blockchain.