> ## Documentation Index
> Fetch the complete documentation index at: https://pond.dflow.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Prediction Market Fees and Rebates

> How prediction market fees and rebates are calculated

When using the DFlow Prediction Markets API, builders pay trading fees based on their aggregate outcome token trading volume. Fees apply to executed trades and scale with both price and contract size.

## How Fees Are Calculated

Fees for prediction market trades use a probability-weighted model.

The fee for a trade is calculated as:

`fees = roundup(0.07 × c × p × (1 − p)) + (0.01 × c × p × (1 − p))`

Where:

* `p` is the fill price.
* `c` is the number of contracts traded.

This model charges higher fees when outcomes are less certain and lower fees as
markets approach resolution.

## Fee Tiers

Builders move through fee tiers based on their rolling 30-day trading volume on outcome tokens via the Prediction Markets API.

Fee Schedule

| Tier     | 30D Volume | Taker Fee Scale | Maker Fee Scale |
| -------- | ---------- | --------------- | --------------- |
| Frost    | \< \$50M   | 0.09            | 0.0225          |
| Glacier  | \$50–150M  | 0.0875          | 0.021875        |
| Steel    | \$150–300M | 0.085           | 0.02125         |
| Obsidian | > \$300M   | 0.08            | 0.02            |

<Note>
  Fee tiers are determined by total outcome token trading volume over the last 30 days.
</Note>

## Rebate Program

Builders with more than \$100k in 30-day outcome token volume may qualify for the Prediction Markets API rebate program.

Eligible builders receive the greater of:

* 3% of gross applicable trading fees, or
* The marginal rebate amount defined by the VIP rebate schedule.

Rebates are calculated on aggregate trading volume across all applications using the Prediction Markets API on Solana, then distributed pro-rata based on each builder’s contribution.

<Info>
  Rebate eligibility is subject to approval by DFlow and may change at DFlow’s discretion.
</Info>

| Tier  | 30D Volume | Incremental Rebate             |
| ----- | ---------- | ------------------------------ |
| VIP 0 | \< \$50M   | No incremental rebate          |
| VIP 1 | \$50–150M  | 10% rebate on incremental fees |
| VIP 2 | \$150–300M | 20% rebate on incremental fees |
| VIP 3 | > \$300M   | 30% rebate on incremental fees |

<Note>
  Only fees up to a **taker scale of 0.07** and **maker scale of 0.0175** are eligible for rebates.
</Note>

## Rebate Example

If total aggregate outcome token volume across all partners reaches \$75M in a month:

Builders receive either:

* 3% of total applicable fees, or
* 10% on the \$25M increment above \$50M, distributed proportionally.

Whichever amount is larger is applied.

## Volume Tracking

DFlow tracks outcome token trading volume by API key.

To ensure correct tracking:

* Every Prediction Markets API request must include an API key.
* Only trades executed through the Prediction Markets API count toward volume.

<Info>
  See the [API Keys guide](/get-started/api-key) for details on generating and using API keys.
</Info>

Volume thresholds for fee tiers and rebates are based on aggregate outcome token trading volume across Solana, not per application.

## Account Rent and Redemption

Most of the cost users see when trading prediction markets comes from Solana
account rent, not platform fees.

Prediction market trades create multiple onchain accounts, including outcome
token accounts and protocol-owned market accounts. Rent is paid (in SOL) when these
accounts are created.

### Winning positions

When a user redeems a winning outcome:

* The user’s outcome token account is closed.
* The rent for that token account is returned to the account specified by the [`outcomeAccountRentRecipient`](/resources/trading-api/order/order#parameter-outcome-account-rent-recipient) parameter.
* Protocol-owned market accounts remain open and are not closed.

### Losing positions

If a user's position loses:

* There is no redeem route for the losing outcome.
* The losing outcome token is worthless.
* The user can burn the losing outcome token to close the token account and
  reclaim the rent for that account (from the account specified by the [`outcomeAccountRentRecipient`](/resources/trading-api/order/order#parameter-outcome-account-rent-recipient) parameter).

Only user-owned token accounts can be closed and reclaimed. Protocol-owned
accounts are not closed.

<Info>
  On Solana, the account **payer** (who funds account creation) and the account
  **owner** (who controls the account) are different concepts. Users may pay to
  create protocol-owned accounts during a trade, but only the account owner can
  close an account and reclaim its rent.
</Info>
