> For the complete documentation index, see [llms.txt](https://docs.illuminate.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.illuminate.finance/smart-contracts/critical-attributes.md).

# 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
