Intent Flow
Understand the complete technical flow of how user intents are processed in Garden protocol
Now that we know all the actors and modules in the system, let’s take a detailed technical look at how all of them come together.
Here’s a simplified representation of the process:
Intent Creation
User requests quote → Signs intent → Submits intent to order book
Solver Selection
Order book selects solver → Solver begins settlement
User Settlement
User initiates transaction → Solver executes on destination chain
Completion
User redeems funds → Solver completes settlement
Here is the detailed look into each step of the process.
Creating an intent
Request Quote
The user starts the process by requesting a quote for a desired swap. The quote contains details like the input asset, output asset, chains involved, and the desired amounts.
Accept Quote
The user receives the quote and must accept it by creating a signed intent message.
Create Intent
This signed intent represents the user’s objective, including parameters like assets, chains, amounts, and expiration details.
Selection of solver in the order book
Once the user signs the intent, it is submitted to the order book, a decentralized system where solvers compete to fulfill the intent.
Auction process:
Quote Submission
All solvers submit their quotes based on the intent’s parameters.
Best Quote Determination
The best quote (lowest price or highest efficiency) is determined.
Breaking Draws
Solvers with a higher staker score than the solver with the best quote have a 5-second window to match the quote.
- No acceptance: The best-quote solver wins.
- One acceptance: The accepting solver wins.
- Multiple acceptances: The solver with the highest staker score wins.
Solver Confirmation
Once a solver is selected, they prepare to execute the swap.
Settlement: User-side execution
Begin Settlement
The settlement process begins once the selected solver is confirmed.
User Initiation
The user must initiate settlement by creating a signed transaction message for the intent.
Relayer Broadcast
The signed message is submitted to a relayer, which broadcasts it on the blockchain.
On-chain Processing
The transaction is processed on-chain, and the user’s funds are locked or transferred to the relevant contract or wallet.
Confirmation
Once the transaction achieves the required number of blockchain confirmations, the settlement progresses to the solver’s side.
Settlement: Solver-side execution
Receive Confirmation
The solver, upon receiving confirmation of the user-side transaction, initiates the corresponding transaction on their end.
Execute on Destination
This step involves the solver locking funds on the destination chain, earmarked for the user.
Solver Confirmation
The solver’s transaction also undergoes a confirmation process on the destination chain to ensure security and reliability.
Redemption
Asset Availability
After the solver’s transaction achieves the required confirmations:
- The user can redeem funds on destination revealing the swap prehash.
Solver Redemption
Once the user reveals the prehash the solver is able to recieve funds on the source chain, completing the swap.