# Critical Attributes

## MarketPlace

* `markets`: maps tuples of underlying (address) and maturity (uint256) to an array of ERC5095 principal tokens
* `Principals`: enum that maps fixed rate protocols to an index value. This is used in the `markets` mapping to determine which protocol should be used for a given principal token in a market
* `pools`: maps markets (an underlying and a maturity) to a Yield Space Pools to facilitate swaps between Illuminate principal tokens and the underlying

## Lender

* `fees`: maps underlying token assets to the amount in fees collected by the Lender contract
* `withdrawals`: maps a token address to a point in time where withdrawals may occur
* `paused`: maps principal tokens using the same structure as `markets` to determine if the principal token may be lent or minted

## Redeemer

* `paused`: maps markets to whether or not they may be redeemed
* `holdings`: maps markets to the amount of underlying has been redeemed by a given market. This is separates different markets that share an underlying based on their maturity. It is also used for partial redemptions in the event that the principal tokens for protocols within a market do not redeem 1:1


---

# 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.illuminate.finance/smart-contracts/critical-attributes.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.
