# Urani's Intents

Intents are a type of orderflow auction mechanism employed in decentralized finance to help mitigate the negative externalities associated with [**MEV toxicities**](/urani-swap/technical-considerations/mev-on-solana.md), such as high slippage from sandwich attacks.

They represent what a user wants to achieve when interacting with a protocol and can incentivize a healthy free market, allowing users to capture the value they create.

***

## How Urani's Intents Work

At Urani, an intent is a piece of data binding programmatic commitments to a user's request. It specifies **the asset pair**, **amount to trade**, **and expiration, among other** things.

This data initially appears as `JSON`, but internally, it's converted to Solana's native data types ([**PDAs**](https://github.com/urani-labs/solana-dev-onboarding-rs/blob/main/chapters/05_pda.md)).

Moreover, users submit a signed "intent to trade" message instead of directly submitting a trade, allowing the Urani Protocol to execute the trade on the user's behalf.

The Urani Protocol then aggregates these intents into discrete [**batch auctions** ](/urani-swap/technical-considerations/batch-auctions.md)(rather than processing orders on a first-come, first-served basis - [**the native method Solana uses to process transactions**](/urani-protocol/technical-considerations/multidimensional-market/on-solana/solana-transactions-overview.md)), and assigns them to [**MEV Agents**](https://docs.urani.ag/urani-swap/technical-considerations/mev-agent-operators).

Once the batch period ends, the optimal execution for each order is settled on-chain.

{% hint style="info" %}
More details on submitting an intent to the Urani Protocol are available [**here**](/urani-swap/technical-considerations/uranis-intent-specs.md).
{% endhint %}

***

## Benefits of Urani's Intents

* [x] ***Lower transaction costs and fewer failed transactions***: Intents can‌ reduce fees and transaction costs by processing transactions in batches.
* [x] ***Less network congestion:*** Batches are not only protected from sniping bots but can also be matched directly.
* [x] ***Improved price discovery***: Order batches facilitate better price discovery since MEV agents are competing for the best execution prices.
* [x] ***Less backrunning:*** Optimal trade paths are chosen by design.
* [x] ***Fairness***: Intents can promote a more equitable trading environment, mitigating the advantages of participants with information asymmetry.
* [x] ***Enhanced/deep liquidity***: Intents allow order fulfillment from a large amount of liquidity sources. Plus, safer trades for low-cap illiquid tokens.
* [x] ***Possibility for P2P and ring matches:*** Once the system reaches network effects, these types of matches bring, by design, the best quote possible since there are zero swap fees or slippage.

***

## Urani's Intents vs. "Request for Quotes" (RFQ)

In traditional finance, [**RFQ is a method used to trade securities**](https://www.investopedia.com/terms/r/request-for-quote.asp), particularly in over-the-counter (OTC) markets like bonds, currencies, and derivatives. When a trader wants to buy or sell an asset, they can send an RFQ to multiple dealers or market makers to get quotes for the desired transaction.

Here is a high-level explanation of how RQFs work:

1️⃣ The investor specifies the details of the trade they want to execute (e.g., the type and quantity of the asset they want to buy or sell, and any specific terms or conditions).

2️⃣ The RFQ is sent to selected dealers or market makers, who respond with quotes that include the price at which they're willing to buy (bid) or sell (ask) the asset, trade size, and expiration time.

3️⃣ The investor reviews the quotes and decides which one to accept, negotiate further, or decline.

Although RFQs and intents operate similarly and are often interchangeable, Urani's intent model differs fundamentally in its direction, democratization of surplus, and focus on the **MEV agents** (and yes, Urani's intents have some resemblances to [**CoW's**](https://www.skatersvscows.fun/) [**coincidence of wants**](https://cow.fi/)).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.urani.trade/urani-swap/technical-considerations/uranis-intents.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
