> For the complete documentation index, see [llms.txt](https://docs.usegimbal.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.usegimbal.app/mechanics/fees.md).

# Fees the protocol charges

The fee schedule held in PolicyBoard, who pays each fee, when the desk collects it, and where the proceeds end up.

Every fee is a `PolicyBoard` parameter collected where value changes hands. None is hidden in the rate lenders quote, and no token emissions subsidise it.

## The schedule

| Fee                        | Parameter                 | Rate today                                                   | Who pays                |
| -------------------------- | ------------------------- | ------------------------------------------------------------ | ----------------------- |
| Origination                | `originationBps` = 25     | 0.25% of principal                                           | Borrower                |
| Interest share             | `interestShareBps` = 1000 | 10% of the interest paid                                     | Lender, netted out      |
| Refinance                  | `refinanceBps` = 10       | 0.10% of principal                                           | Borrower                |
| Liquidation penalty        | `penaltyBps` = 300        | 3% of debt: 1 point to the keeper, 2 to lenders and protocol | Borrower, from proceeds |
| Parked-capital yield share | `idleYieldShareBps` = 500 | 5% of vault yield, not yet live                              | Lender                  |

## When each is collected

* **Origination** is netted from the principal at disbursement and sent to the Treasury in the same transaction.
* **Interest share** comes off lender interest whenever it is paid: repayment, rollover clearing, and interest recovered at liquidation, at the rate then in force.
* **Refinance** is charged when a rollover auction clears and is folded into the new principal.
* **Penalty** is settled from auction proceeds, the keeper's point first and the other two after the lenders' claims.
* **Yield share** is stored but read by no contract until a timelocked change enables it.

## Changing a fee

Fees move only through `setFeeParams` or `setAuctionParams`, behind the timelock: a batch is scheduled with a rationale hash, waits out the delay, then executes and emits `ParamChanged`. Nothing already collected is rewritten; origination and refinance fees are charged once. See [How parameters change](/transparency/parameter-changes.md).

## Destination

All fees reach the `Treasury` contract by plain transfer from the desk and fund audits, operations and the bug bounty. Only `PolicyBoard`'s owner can withdraw: the multisig today, later a governance module that will decide spending.

## Order of magnitude

With average balances of 50M USDG, 30-day terms and 8% APRs:

* Origination: 12 turns of 50M a year at 0.25%, roughly 1.5M USDG.
* Interest share: 8% on 50M, with 10% to the protocol, roughly 0.4M USDG.

About 1.9M USDG a year before liquidation income. See [How Gimbal earns](/resources/revenue.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.usegimbal.app/mechanics/fees.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
