# Fees

## <mark style="color:blue;">Trading Fees</mark>

Transaction fees are paid by traders taking liquidity (takers) and split between LPs (makers) and protocol stakeholders at a rate determined by governance. To retain higher composability, transaction fees are accumulated separately and not compounded back into LP positions.

The trading fee is calculated as follows:

$$
Trading:Fee = max(0.03*Total:Premium,: 0.003*Size)
$$

$$
Total:Premium = Option:Price \* Size
$$

{% hint style="info" %}
NOTE: Trading Fees are claimable at *any* time by calling the `claim` function on the `IPool` interface.
{% endhint %}

## <mark style="color:blue;">Pool Initialization Fee</mark>

Pool creation is *permissionless\* **and fee based. The fee is dynamic and incentivizes users to initialize pools that are ATM and near-dated, as they are the cheapest to create. Additionally, discounts are provided for specific expirations and/or strikes that have not been initialized that would create spread trading opportunities. The formal math behind how this is determined can be found in Appendix A.2 of the*** [Premia v3 whitepaper](https://premia.finance/v3.pdf)***.***

The fee for a pool initialization can be queried from the `IPoolFactory` interface using the initializationFee method. As a basic example, if a user wanted to initialize a 50 Delta option with 14 days to expiration, the fee to do so would be $25.

**NOTE: Permissionless Pool Creation Bounds**

In order to prevent excessive fragmentation and ensure maximum composability with other option markets, pools can only be created for common strikes and expirations.

<mark style="color:orange;">Strikes</mark> are algorithmically limited to common values (log-rounded). The formal math behind how this is determined can be found in Append A.1 of the [Premia v3 whitepaper](https://premia.finance/v3.pdf).

The maximum <mark style="color:orange;">expiration</mark> an option can be created with is 365 days out. Options will all expire at 8AM UTC, with all options over 7 days to maturity expiring on a Friday. All options past 30 days must expire on the last Friday of the month.

Additionally, a spot market needs a valid <mark style="color:orange;">oracle feed</mark> for the token pair (ie. ETH/USDC). Premia v3 has out-of-the-box support for any Chainlink oracle, Uniswap v3 pair, or custom oracle solution that implements the `IOracleAdapter` interface.


---

# 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.premia.blue/the-premia-protocol/concepts/fees.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.
