# iceCREAM Mechanism Phase 1

![](https://3057495129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MKJWcUfnKdJ1BjWKoMM-3555916521%2Fuploads%2Fgit-blob-6043d481e5931144776e414b95d4ae9ba3b6e23b%2FiceCream_\(3\).png?alt=media)

## Components

### Lending Protocol

The lending protocol includes the comptroller, cToken markets, and cTokenAdmin. Every market will generate reserves. CTokenAdmin is a new contract that controls the cToken market. In addition to normal access control in cToken, it allows a specific reserve manager to extract reserves.

Source: <https://github.com/CreamFi/compound-protocol>

{% content-ref url="../lending/lending-contract-address" %}
[lending-contract-address](https://docs.cream.finance/lending/lending-contract-address)
{% endcontent-ref %}

{% content-ref url="broken-reference" %}
[Broken link](https://docs.cream.finance/icecream/broken-reference)
{% endcontent-ref %}

### Reserve Manager

The reserve manager is the hub of reserves extraction. It snapshots all the cToken reserves and everyone could trigger the extraction (with a 1-day cooldown period). It should take a ratio (currently 50%) of reserves and send them to the burners.

Source: <https://github.com/CreamFi/reserve-manager>

Reserve Manager: [0x0C5Bf19618A8FCDdb132d82BC6c5ea736A1beAED](https://etherscan.io/address/0x0C5Bf19618A8FCDdb132d82BC6c5ea736A1beAED)

### Burners

Burners are a group of token converters. They will burn tokens into USDC, and USDC burner will convert USDC into yvCurve-IB token. There is a special component called manual burner. It's used for tokens whose onchain liquidity (Ethereum) is not deep enough. The manual burner is an EOA that will send the tokens to a centralized exchange or another network to convert manually. In the end, all tokens will be converted to yvCurve-IB token and send to the fee distributor.

![](https://3057495129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MKJWcUfnKdJ1BjWKoMM-3555916521%2Fuploads%2Fgit-blob-f6b3799780b56b0265df416761a3c24d04ef3a6e%2FiceCream_\(4\).png?alt=media)

Source: <https://github.com/CreamFi/curve-dao-contracts>

### Fee Distributor & Voting Escrow

The fee distributor and the voting escrow are the final stops of iceCream phase 1. The fee distributor stores all the reserves in yvCurve-IB and it handles the fee distribution among all the iceCream stakers. The voting escrow (iceCream) is where users stake their CREAM tokens. Users could claim the rewards here.

Source: <https://github.com/CreamFi/curve-dao-contracts>

Fee Distributor: [0x0Ca0f068edad122f09a39f99E7E89E705d6f6Ace](https://etherscan.io/address/0x0Ca0f068edad122f09a39f99E7E89E705d6f6Ace)

Voting Escrow: [0x3986425b96F11972d31C78ff340908832C5c0043](https://etherscan.io/address/0x3986425b96F11972d31C78ff340908832C5c0043)
