# Fees

Mosaiq executes orders through pooled venue accounts. Traders therefore benefit
from the staking discounts and volume tiers of the Mosaiq account instead of
having to qualify for each tier individually.

## Why pooled execution lowers fees

Exchange fee tiers are calculated at account level. A trader using a standalone
account pays the tier earned by their own stake and trading volume. Through
Mosaiq:

* order flow contributes to aggregated venue volume;
* higher aggregate volume can move the execution account into lower fee tiers;
* the resulting venue rate is applied to orders routed through that account.

As Mosaiq volume grows, the venue component can decrease for every trader using
the pool. This is a shared execution benefit, not a volume commitment required
from each user.

## Current Hyperliquid benefit

Mosaiq currently caps the Hyperliquid venue rate charged to users at the
**Gold staking discount: 20%, equivalent to staking more than 10,000 HYPE**.
The trader does not need to stake that HYPE.

If the execution account qualifies for a better staking discount, users receive
the better rate. If its live rate is worse than the Gold floor, Mosaiq absorbs
the difference. The current Hyperliquid subsidy also sets the Mosaiq fee to
zero.

The current floor is temporary. Mosaiq intends to increase the
staking-equivalent benefit as the pooled execution setup grows.

:::note\[HIP-3]
Hyperliquid HIP-3 markets start from the same subsidized staking rate, then
apply their live deployer fee and growth-mode multipliers.
:::

## Fee calculation

Only confirmed fills pay a fee:

```text
total fee = effective venue fee + Mosaiq fee
```

Both components are calculated from fill notional and liquidity role. An
unfilled order pays no trading fee.

The exact rate depends on the venue, market, maker/taker role, and the fee tier
active when Mosaiq loads its schedule. Fetch
[`GET /v1/fees`](/api/fees) instead of hardcoding rates. The response separates:

* `fees.venue`: the venue rate charged to the trader, including any Mosaiq
  subsidy;
* `fees.tessera`: the Mosaiq fee;
* `fees.total`: the rate applied to the fill.

Fees are settled with the confirmed fill and exposed again on
`userFills[].fees`.
