# Fees

Only confirmed fills pay a fee:

```text
total fee = venue fee charged to the user + Mosaiq fee
```

Both parts are computed from fill notional and liquidity role and settled with
the fill. An unfilled order pays nothing. Rates per venue market are published
by [`GET /v1/fees`](/api/fees); charged amounts are reported per fill in
`userFills[].fees`.

## Venue fee

Mosaiq executes through pooled venue accounts, so the venue fee tier is the
one earned by the Mosaiq account, not by each trader.

Mosaiq charges users the venue's best published rate, without the trader
staking anything or reaching any volume. If the execution account pays more,
Mosaiq absorbs the difference.

| Venue | Venue rate charged (maker / taker) |
| --- | --- |
| Hyperliquid (`hyperliquid`) | 0 / 1.44 bps, the VIP 6 tier with the Diamond staking discount |
| Lighter (`lighter`) | 0.28 / 1.96 bps |
| Lighter Robinhood (`lighter:robinhood`) | 0.84 / 2.45 bps |

HIP-3 markets such as `hyperliquid:xyz` start from the Hyperliquid rate and
apply the deployer fee scale and growth-mode multiplier published by the DEX.
On a trade.xyz market in growth mode, the venue rate is 0 / 0.288 bps.

On Lighter, all Mosaiq orders share one venue account. When your order meets
a resting order of another Mosaiq trader there, Lighter prints no trade.
Mosaiq books the match as a fill for both traders, at the resting order's
price, with the usual fees.

## Mosaiq fee

The Mosaiq fee is 0 bps maker and 0.3 bps taker. When the venue taker rate is
below 0.3 bps, as on HIP-3 markets in growth mode, the Mosaiq taker fee is
0.1 bps. Read [`GET /v1/fees`](/api/fees) rather than hardcoding rates.

Published venue rates may lag changes to venue fee tiers. Read
`userFills[].fees` for the amounts actually charged.
