# Welcome to The Index Coop.

Join our community and contribute to Index Coop's vision of building crypto products that unlock prosperity for everyone.

### What is the Index Coop?

[The Index Coop was launched as a decentralized autonomous organization (DAO) by Set Labs](https://medium.com/indexcoop/introducing-the-index-cooperative-a4eaaf0bcfe2) on October 6th, 2020.

The Index Coop has evolved significantly since its inception. Today, we are made up of a small group of core contributors and a larger community of token holders and supporters. As a DAO we work on the cutting edge of decentralised finance, leveraging our decentralised network for contributors to build simple, accessible, and secure onchain structured DeFi products.

### INDEX Token&#x20;

The INDEX Token is a governance token used for voting on proposals for the DAO. These proposals can cover almost anything, including new product launches, changes to existing products, treasury allocation decisions, third-party protocol governance, and more. You can find more information about the INDEX token on the page below:

{% content-ref url="/pages/-MK37It-Nybx57Dlu6Ry" %}
[$INDEX - Governance Token](/index-coop-community-handbook/resources/governance/the-index-token)
{% endcontent-ref %}

{% hint style="info" %}
Currently, there is no utility for INDEX tokens outside of the DAO governance. However, it is ultimately up to INDEX holders to determine additional utility and value accrual mechanisms for the token.
{% endhint %}


# Trade


# Index Coop Leverage Suite

Leverage and inverse tokens on Ethereum, Arbitrum, and Base

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Index Coop Leverage Suite enables leverage exposure to different assets by tracking a target leverage ratio and rebalancing in an automated fashion to protect against liquidation.

To learn more about the benefits of leverage tokens, see our article: [Introducing The Index Coop Leverage Suite.](http://indexcoop.com/blog/introducing-arbitrum-leverage-suite)

### Fees

<table><thead><tr><th width="222">Product</th><th width="270">Streaming Fee</th><th>Issuance / Redemption Fee</th></tr></thead><tbody><tr><td>3x </td><td>5.48%</td><td>0.10%</td></tr><tr><td>2x </td><td>3.65%</td><td>0.10%</td></tr><tr><td>Inverse </td><td>3.65%</td><td>0.10%</td></tr></tbody></table>

***

### Technical Implementation - *Ethereum*:

<table><thead><tr><th width="123">Product</th><th width="440">Token Contract</th><th>Protocol</th></tr></thead><tbody><tr><td>ETH2x</td><td><a href="https://etherscan.io/token/0x65c4c0517025ec0843c9146af266a2c5a2d148a2">0x65c4C0517025Ec0843C9146aF266A2C5a2D148A2</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC2x</td><td><a href="https://etherscan.io/address/0xd2ac55ca3bbd2dd1e9936ec640dcb4b745fde759">0xD2AC55cA3Bbd2Dd1e9936eC640dCb4b745fDe759</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr></tbody></table>

#### Smart Contract Apparatus - *Ethereum*:

<table data-header-hidden><thead><tr><th width="258">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x9d08cced85a68bf8a19374ed4b5753ae3be9f74f#code">AaveV3LeverageModule</a></td><td>used to initiate and manage collateralized debt positions in Aave v3; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

***

### Technical Implementation - *Arbitrum*:

<table><thead><tr><th width="131">Product</th><th width="440">Token Contract</th><th>Protocol</th></tr></thead><tbody><tr><td>ETH3x</td><td><a href="https://arbiscan.io/address/0xa0a17b2a015c14be846c5d309d076379ccdfa543">0xA0A17b2a015c14BE846C5d309D076379cCDfa543</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>ETH2x</td><td><a href="https://arbiscan.io/address/0x26d7d3728c6bb762a5043a1d0cef660988bca43c">0x26d7D3728C6bb762a5043a1d0CeF660988Bca43C</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>iETH1x</td><td><a href="https://arbiscan.io/address/0x749654601a286833ad30357246400d2933b1c89b">0x749654601a286833aD30357246400D2933b1C89b</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC3x</td><td><a href="https://arbiscan.io/address/0x3bdd0d5c0c795b2bf076f5c8f177c58e42bec0e6">0x3bDd0d5c0C795b2Bf076F5C8F177c58e42beC0E6</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC2x</td><td><a href="https://arbiscan.io/address/0xeb5be62e6770137beaa0cc712741165c594f59d7">0xeb5bE62e6770137beaA0cC712741165C594F59D7</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>iBTC1x</td><td><a href="https://arbiscan.io/address/0x80e58aea88bccaae19bca7f0e420c1387cc087fc">0x80e58AEA88BCCaAE19bCa7f0e420C1387Cc087fC</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>ETH2xBTC</td><td><a href="https://arbiscan.io/token/0xe7b1ce8dfee3d7417397cd4f56dbfc0d49e43ed1">0xe7b1ce8dfee3d7417397cd4f56dbfc0d49e43ed1</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC2xETH</td><td><a href="https://arbiscan.io/token/0x77f69104145f94a81cec55747c7a0fc9cb7712c3">0x77f69104145f94a81cec55747c7a0fc9cb7712c3</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr></tbody></table>

#### Smart Contract Apparatus - *Arbitrum*:

<table data-header-hidden><thead><tr><th width="253">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://arbiscan.io/address/0x6d1b74e18064172d028c5ee7af5d0ccc26f2a4ae#code">AaveV3LeverageModule</a></td><td>used to initiate and manage collateralized debt positions in Aave v3; protocol-wide contract</td></tr><tr><td><a href="https://arbiscan.io/address/0x4ac26c26116fa976352b70700af58bc2442489d8#code">DebtIssuanceModuleV3</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://arbiscan.io/address/0x42bf8b14277bb77244e693f98f848e7594022310#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

***

### Technical Implementation - *Base*:

<table><thead><tr><th width="123">Product</th><th width="440">Token Contract</th><th>Protocol</th></tr></thead><tbody><tr><td>ETH3x</td><td><a href="https://basescan.org/address/0x329f6656792c7d34d0fbb9762fa9a8f852272acb">0x329f6656792c7d34D0fBB9762FA9A8F852272acb</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>ETH2x</td><td><a href="https://basescan.org/address/0xc884646e6c88d9b172a23051b38b0732cc3e35a6">0xC884646E6C88d9b172a23051b38B0732Cc3E35a6</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC3x</td><td><a href="https://basescan.org/token/0x1F4609133b6dAcc88f2fa85c2d26635554685699">0x1F4609133b6dAcc88f2fa85c2d26635554685699</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>BTC2x</td><td><a href="https://basescan.org/token/0x186f3d8bb80dff50750babc5a4bcc33134c39cde">0x186f3d8bb80dff50750babc5a4bcc33134c39cde</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>uSOL3x</td><td><a href="https://basescan.org/token/0x0a0fbd86d2deb53d7c65fecf8622c2fa0dcdc9c6">0x0a0fbd86d2deb53d7c65fecf8622c2fa0dcdc9c6</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>uSOL2x</td><td><a href="https://basescan.org/token/0x0a0fbd86d2deb53d7c65fecf8622c2fa0dcdc9c6">0x0a0fbd86d2deb53d7c65fecf8622c2fa0dcdc9c6</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>uSUI3x</td><td><a href="https://basescan.org/token/0x16c469f88979e19a53ea522f0c77afad9a043571#readContract">0x16c469f88979e19a53ea522f0c77afad9a043571</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr><tr><td>uSUI2x</td><td><a href="https://basescan.org/token/0x2f67e4be7fbf53db88881324aac99e9d85208d40">0x2f67e4be7fbf53db88881324aac99e9d85208d40</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index Protocol V1</a></td></tr></tbody></table>

#### Smart Contract Apparatus - *Base*:

<table data-header-hidden><thead><tr><th width="278">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://basescan.org/address/0xc06a6e4d9d5ff9d64bd19fc243ad9b6e5a672699#code">AaveV3LeverageModule</a></td><td>used to initiate and manage collateralized debt positions in Aave v3; protocol-wide contract</td></tr><tr><td><a href="https://basescan.org/address/0xa30e87311407ddcf1741901a8f359b6005252f22#code">DebtIssuanceModuleV3</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://basescan.org/address/0x4580dbe79b8fcb1282eb43113536d62e882fc044#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

***

### Additional Resources:

* [IC Leverage Suite - app.indexcoop.com](https://app.indexcoop.com/leverage?buy=ETH2X\&sell=ETH\&network=1)
* [Leverage Products - Dune](https://dune.com/index_coop/leverage-products)
* [Perps vs Leverage Tokens - Dune](https://dune.com/index_coop/indexcoop-perps-vs-leverage-tokens)
* [Meet the Index Coop's New 2x Leverage Tokens](https://indexcoop.com/blog/meet-the-index-coops-new-2x-leverage-tokens)
* [Introducing the Index Coop Arbitrum Leverage Suite](https://indexcoop.com/blog/introducing-arbitrum-leverage-suite)
* [Unlocking Leverage on Base](https://indexcoop.com/blog/unlocking-leverage-on-base)
* [Understanding Leverage Tokens vs Perps](https://indexcoop.com/blog/understanding-leverage-tokens-vs-perps)
* [IIP-182: Launch ETH2x & BTC2x, Deprecate FLIs](https://gov.indexcoop.com/t/iip-182-launch-eth2x-btc2x-on-aave-v3-deprecate-flis-on-compound-v2/4688)
* [IIP-186: Launch a Leverage Suite on Arbitrum](https://gov.indexcoop.com/t/iip-186-launch-a-leverage-suite-on-arbitrum/4775)
* [IIP-187: Launch ETH2xBTC and BTC2xETH on Arbitrum](https://gov.indexcoop.com/t/iip-187-launch-eth2xbtc-and-btc2xeth-on-arbitrum/4840/4)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Leverage Token Parameters

## Summary

A variety of parameters dictate how leverage products function and they are configured to ensure a safe and seamless user experience. These parameters are contained within a series of smart contracts and they are updated by Index Coop to accommodate changes in the market according to the methodology.

## **Target Leverage Ratio**

**Description**: Target Leverage Ratio is the ideal balance between the underlying asset and the borrowing asset (i.e. 2 to 1 ratio). As the price of the underlying asset fluctuates, so does the real leverage ratio. However, leverage products are programmed to rebalance back toward the Target Leverage Ratio.

**Example**: The Target Leverage Ratio for ETH2x and BTC2x is 2.0x, while the Target Leverage Ratio for ETH3x and BTC3x is 3.0x.

\
**What this means for users:** The Target Leverage Ratio defines the expected returns for a leverage token relative to the performance of the underlying asset. When the price of the underlying asset changes, a constant Leverage Ratio of 2x translates to twice the gain or loss (without factoring in [volatility drift](https://indexcoop.com/blog/how-volatility-drift-impacts-your-leverage-tokens)).

## Leverage Ratio Range

**Description:** A safe Leverage Ratio Range is defined for each leverage product. This range is bound by minimum and maximum leverage ratio.

**Example:** For ETH2x, the safe Leverage Ratio Range is 1.74x - 2.30x and the target leverage ratio is 2.0x. For BTC2x, the safe Leverage Ratio Range is 1.82x - 2.20x and the target leverage ratio is 2.0x.

**What this means for users:** Though the target leverage ratio may be 2x, it is important to understand that the real leverage ratio may fluctuate within the safe range defined for the leverage product. At any point in time, the real leverage ratio may be 1.83x or 2.12x, but over time, it will gravitate back toward the target leverage ratio.

## Recentering Speed

**Description:** Recentering Speed is the rate at which the leverage ratio can adjust on a routine basis in order to revert back to the Target Leverage Ratio. Recentering Speed is measured as a proportional percentage of the target leverage ratio.

**Example:** If the Recentering Speed is 5% while the current leverage ratio is 1.9 and the target leverage ratio is 2.00, then the smart contracts managing the product will adjust the ratio of underlying assets so that the new leverage ratio is 1.995.

**What this means for users:** the Recentering Speed affects a product’s ability to realign the real leverage ratio with the target leverage ratio. Depending on the leverage ratio’s distance from the target, you can use the Recentering Speed to predict the amount of time it will take to return to the target leverage ratio.

## **Max Trade Size**

**Description:** The Max Trade Size limits the trade size for rebalance transactions in order to avoid excessive price impact and slippage to adjust leverage during volatile price swings. When swapping the underlying asset through a DEX, there is an upper limit denominated in the underlying token that rebalance transactions cannot exceed. In practice, if the total trade amount required for rebalancing exceeds the Max Trade Size, the sum will be broken down into multiple transactions (aka `iterateRebalance` transactions).

**Example:** Say we have a leverage ratio of 2.3x and a max trade size of 200 ETH. When a rebalance is initiated, the smart contract will delever by swapping ETH for USDC through a DEX. If the amount of ETH to be swapped is less than 200, then the entire rebalance trade will be processed as a single transaction. But, if the amount of ETH to be swapped exceeds 200 (ex. 275 ETH), then one trade will be initiated with 200 ETH and a subsequent trade will be made with 75 ETH after a brief cooldown period.

**What this means for users:** the Max Trade Size is one of the critical parameters for rebalancing leverage products. When markets are volatile, it is important to be able to reduce leverage as quickly as possible to avoid liquidation. If the Max Trade Size is too small relative to the total AUM, it could take an excessive amount of trades (and time) to delever leverage products. For this reason, Max Trade Size and Supply Cap are often adjusted in tandem.<br>

## **Supply Cap**

**Description:** The Supply Cap is the maximum amount of leverage tokens that can be minted. New products tend to launch with a smaller supply cap to ensure stability and the Supply Cap is gradually lifted as the product’s performance is validated. Once the Supply Cap is reached, no more leverage tokens can be minted. However, tokens can still be redeemed for the underlying assets if the Supply Cap has been met.

**Example:** at the time of writing, the current Supply Cap for ETH3x is 5,000 units.

**What this means for users:** If the Supply Cap has been reached while there is excessive demand in the market, tokens may trade at a premium to NAV (Net Asset Value) on DEXs because buyers are willing to pay more for the token than it is intrinsically worth. Click [here](https://medium.com/indexcoop/understanding-the-eth2x-fli-premium-4ac8c5f6faa1) for more information on FLI product premiums and NAV dislocation.

## **TWAP Cooldown Period**

**Description:** The TWAP Cooldown Period (TWAP: Total Weighted Average Price) specifies the amount of time that leverage token contracts must wait to initiate another rebalance transaction. The unit of measure for the Cooldown Period is seconds and it is compared to the timestamp of the last transaction. Delaying consecutive rebalance transactions allows the liquidity pool to be arbitraged back to the correct price before placing the next trade, which has a favorable effect on price impact and slippage for the relative liquidity pools.

**Example:** the Cooldown Period for ETH2x is 30 seconds.

**What this means for users:** the TWAP Cooldown Period allows time for the relevant liquidity pools that the leverage token contracts trade against during rebalancing to absorb the most recent rebalance transaction before submitting a subsequent one. Allowing the liquidity pool to rebalance after each trade shields leverage products from unfavorable slippage, minimizing operational costs and preserving TVL.

## **Ripcord Parameters**

**Description:** A separate set of emergency parameters apply to Ripcord transactions. Ripcord transactions only occur when the leverage ratio is outside the bounds of the safe range and leveraged positions are at risk of liquidation.

Ripcord transactions have the following parameters that are different from the parameters that apply to routine operations:

* Ripcord Max Trade Size
* Ripcord TWAP Cooldown Period
* Ripcord Slippage Tolerance

**Example:** if the real leverage ratio for BTC2x is 2.70x, the ripcord function can be called to aggressively delever the product. These special parameters enable much more rapid delevering compared to the standard, operational parameters.

**What this means for users:** Ripcord Parameters act as a last line of defense for investors by protecting against liquidation. The ripcord function is publicly callable and incentivized by an ETH reward so that anyone can initiate deleveraging if a leverage product is operating outside the bounds of its safe leverage ratio.

## DEX

**Description:** “DEX” is an acronym for Decentralized Exchange, and in the context of leverage token parameters, it specifies the decentralized exchange that a product trades against during rebalancing. Uniswap V3 is the primary DEX used by leverage tokens today, but other DEXs may be supported in the future.

**Example:** Whenever USDC is borrowed in Aave V3 to lever up ETH2x, the Strategy Adapter Contract swaps USDC for ETH using the ETH/USDC pool on Uniswap V3. Similarly, whenever ETH2x needs to be delevered, the Strategy Adapter Contract will swap ETH for USDC using the same Uniswap pool in order to pay down the borrowed USDC balance.

**What this means for users:** because the process of interfacing with DEXs is abstracted away from token holders, there is little impact to users. DEX liquidity pools are periodically analyzed for favorable fees and minimal slippage to minimize costs for investors and preserve TVL.

## Borrowing / Lending Protocol

**Description:** In order to establish fully collateralized, leveraged positions, leverage tokens use Borrowing / Lending protocols like Aave V3 to deposit collateral assets and borrow stablecoins (then swap those stablecoins for more of the collateral asset).

**Example:** When new ETH3x tokens are minted, the smart contracts that manage TVL deposit ETH into Aave V3 (aka the Borrowing / Lending protocol) as collateral and then borrow USDC from Aave against the deposited collateral. That USDC is then swapped for more ETH using a DEX (ex. Uniswap V3) and the new ETH is added to the collateral balance in Aave.

**What this means for users:** because the process of interfacing with Borrowing / Lending Protocols is abstracted away from token holders, there is little impact to investors. However, if supply caps for relevant markets are reached in Aave, re-levering tokens may be temporarily disabled. Similarly, if the utilization rate is 100% for a relevant market, rebalancing and withdrawals may be temporarily disabled.


# Leverage Token Keepers

## Overview

This document contains information on setting up a keeper bot to rebalance the FLI product.&#x20;

Similar to yVaults, off-chain keeper bots are required to ping the smart contracts to maintain the ETHFLI strategy. Under the hood, the smart contracts will calculate whether the FLI should lever or delever according to the methodology and execute rebalances in 1 transaction via DEXs (initially Sushiswap or Uniswap).

There is an emergency delever function built in that will **reward the caller with 1 ETH** if leverage ratio goes above 2.7x in the ETH2x-FLI or 2.4x in the BTC2x-FLI. Scroll to the `ripcord()` section below for information on integrating.

For a technical introduction of the FLI system, view the slide deck [here](https://docs.google.com/presentation/d/1oQcuKkcyNWZ7nO-IqY-tk9h3Vb4_lktX0AyfEwdxDNs/edit#slide=id.g38420732af_0_142).

If you have any questions, join the `#dev` channel in our [Discord](https://discord.com/invite/ezuJ6ZZ).

## **Mainnet Production Addresses**

View the latest contract addresses [here](broken://pages/-MLpfEEcyAvV2d5-6fEC).

## **Integration**

All keeper interactions will be through the FlexibleLeverageStrategyAdapter contract ([ABI](https://gist.github.com/richardliang/1c015c90f98faa41bbb6a359c6b928c7)).&#x20;

![](https://lh6.googleusercontent.com/zTEHC14rV6sAqPeZYSHzuI_-e4Ny13WUfCRts16zyGBXm_o39aa4lLnOuAXVdT5xWRe1_Jb5RHZROCGPdkZ2MkiSkt6Ww_G8myLsYurDd_22YBRGiT6uGUOQjGrMhlzRbDt9T0hu)

On the strategy contract, there are 4 external getter functions that keepers can monitor:

1. **shouldRebalance()**
   1. Interface: function shouldRebalance() external view returns(string\[], ShouldRebalance\[])
   2. Helper that checks if conditions are met for rebalance or ripcord. Returns a tuple of exchange name strings and enums with 0 = no rebalance, 1 = call rebalance(), 2 = call iterateRebalance(), and 3 = call ripcord()
2. **shouldRebalanceWithBounds()**
   1. Interface: function shouldRebalanceWithBounds(uint256 \_minLeverageRatio, uint256 \_maxLeverageRatio) external view returns(string\[], ShouldRebalance\[])
   2. Similar to shouldRebalance, this is a helper that checks if conditions are met for rebalance or ripcord. Returns a tuple of exchange names and enums with 0 = no rebalance, 1 = call rebalance(), 2 = call iterateRebalance(), and 3 = call ripcord()
   3. Allows keeper bots to customize the min and max bounds to call rebalance. For example, you may not want to call at slightly above max leverage every time 2.31x leverage every time
3. **getCurrentLeverageRatio()**
   1. Get current leverage ratio. Current leverage ratio is defined as the USD value of the collateral divided by the USD value of the SetToken. Prices for collateral and borrow assets are retrieved from the Compound Price Oracle.
   2. This function may be needed to toggle the threshold for calling rebalance() if the current leverage ratio goes above the max bound or below the min bound. E.g. if leverage ratio is 2.31x, shouldRebalance will return 1, but we may not need to call rebalance() to bring it to 2.3x leverage. Instead, keepers may wait until 2.4x or higher to save on gas.
4. **getCurrentEtherIncentive()**
   1. Get current Ether incentive for when current leverage ratio exceeds incentivized leverage ratio and ripcord can be called. If ETH balance on the contract is below the etherReward, then return the balance of ETH instead. If not above the ripcord threshold, then it returns 0

Depending on which enum **shouldRebalance** returns, keepers will need to call the appropriate function:

1. **rebalance()**
   1. Should rebalance returns 1
   2. Pass in an exchange name string. The exchange must be enabled on the adapter
   3. Only whitelisted addresses can call. Only EOA
   4. This is a regular rebalance according to the FLI methodology. If within the max and min leverage ratios, rebalances will only happen every 24 hours. If outside those bounds, keepers can call rebalance anytime to bring it to the max or min leverage.
2. **iterateRebalance()**
   1. Should rebalance returns 2
   2. Pass in an exchange name string. The exchange must be enabled on the adapter
   3. Only whitelisted addresses can call. Only EOA
   4. This follows a rebalance() call only if the total notional trade size is greater than the max trade size or max borrow limit. This iterates through the TWAP and can be called every 30 sec until the notional amount is rebalanced
3. **ripcord()**
   1. Should rebalance returns 3
   2. Pass in an exchange name string. The exchange must be enabled on the adapter
   3. Anyone can call, not just whitelisted addresses. Only EOA. This can only be called if the current leverage ratio is above the threshold (2.7x initially). This function typically would only be called if keeper bots have not been able to call rebalance() between 2.3x and 2.7x leverage.&#x20;
   4. There is no TWAP when above the ripcord threshold (2.7x). Only need to continuously ping this function until we get below 2.7x
   5. Ripcord will use its own settings for slippage tolerance (5%), cooldown period (1 sec), and max trade size (1200 ETH)
   6. **Caller is rewarded with 1 ETH**
4. **Do nothing**
   1. Should rebalance returns 0

**Note:** In the initial guarded launch, there will be a whitelist of addresses allowed to call the **rebalance()** and **iterateRebalance()** functions. Therefore, any keeper addresses need to be whitelisted prior to launch or go through Index Coop governance post launch. **Ripcord()** does not have this restriction, and will be callable by anyone.

Below are the estimated gas costs for calling each of the 3 functions above:

| **Parameter**         | **Gas Cost** |
| --------------------- | ------------ |
| **Rebalance**         | **\~625k**   |
| **Ripcord**           | **\~665k**   |
| **Iterate rebalance** | **\~614k**   |

## **Resources**

* [FlexibleLeverageStrategyAdapter ABI](https://gist.github.com/richardliang/1c015c90f98faa41bbb6a359c6b928c7)
* [Contract addresses](broken://pages/-MLpfEEcyAvV2d5-6fEC)
* [Discord](https://discord.com/invite/ezuJ6ZZ)


# Trading Interface Guide

a quick introduction to the Index Coop Trade Interface

Our leverage tokens help you trade crypto safer and cheaper by automating real DeFi leverage behind the scenes.&#x20;

The Trading Interface allows you to pick a market, set your leverage, and track positions in just a few clicks. Below, you’ll find a quick guide to making a trade, plus an overview of each key section in the interface.&#x20;

#### Interface Reference

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fl4txyuwXTmA0uZBOuFzw%2FTrade%20Interface%20Guide%20(1).png?alt=media&amp;token=e62cf473-85e7-4e5c-a5c4-1ab19b71ba31" alt=""><figcaption></figcaption></figure>

### 1: Connect Wallet and Pick a Network

You’ll need to be on the chain where your funds are located (e.g., Arbitrum or Base). Head to the *Network & Wallet Section (1)* to confirm or switch.

* **Network Selector:** Shows which blockchain you’re currently connected to (Ethereum, Arbitrum, Base, etc.).
* **Wallet Address:** Displays the address you have connected to the interface. If you want to connect a different wallet, you can do so here.

***

### 2. Choose Your Market

In the *Market & Quick Stats Section (2)*, you can select the token you want to trade and get a sense of current market conditions.

* **Current market:** This is where you can choose what asset you want to trade. Click the dropdown to see all available markets broken down by chain.
* **Underlying Protocol:** Each leverage token represents a fully collateralized lending position and is built using DeFi. The 'Powered by' field indicates which DeFi lending market the selected product is built on.&#x20;
* **Quick Stats:** These shows current price, 24h change, and other quick references.&#x20;

***

### 3. Review Leverage Ratio and Costs

Under *Current Leverage Ratio & Cost of Carry (3)*, you can view the selected product's current leverage, plus the daily costs to hold a position.

* **Leverage Ratio:** Each leverage product targets a specific maximum–minimum range and only rebalances if the ratio drifts beyond that band, so the exact leverage can fluctuate in response to market movements.&#x20;
* **Net Rate:** This is a dynamic cost incurred from borrowing on a lending market, which can be positive or negative. The Net Rate displayed on the interface breaks down the total net cost of holding an open position in the chosen market.

***

### 4. Open or Close a Position

The *Trade Widget (4)* is where you actually make your move. Pick "open" to start a position "close" to exit. Choose your leverage amount and input how much you'd like to trade.&#x20;

* **Open / Close Selector:** Determines the action, whether you are opening a new position or closing a current one.&#x20;
* **Leverage Selector:** Determines the amount of leverage. The options shown correspond with the available amounts of leverage for each market, and can vary from product to product.
* **Pay / Receive:** These indicate which assets you are trading and are where you can input the size of your trade.
* **Submit Button:** This is how you proceed with your trade once you've input the other details.

***

### 5. Monitor Open Positions and History

After opening a trade, you’ll see it under *Open Positions (5)* with key stats like unrealized pnl (profit/loss). if you close or adjust, it’ll show up in your history for recordkeeping.

* **Open Positions:** Lists all of your active trades, showing the market, leverage, and key stats like unrealized pnl and current price.
* **History:** Provides a chronological log of your positions and key actions (like opens, closes, or partial closes). this is helpful for reviewing past trades and tracking overall performance over time.

### Questions? <a href="#questions" id="questions"></a>

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Ripcord Guide

a step-by-step guide for calling the Ripcord function

All [Index Coop Leverage Tokens](/index-coop-community-handbook/products/trade/index-coop-leverage-suite) have an emergency de-lever function that can be triggered by anyone (i.e. publicly callable). This function - Ripcord - can be called when a token's leverage ratio surpasses a pre-defined limit and approaches the liquidation threshold; more information on [Ripcord parameters](https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/fli-technical-documentation/fli-product-parameters#ripcord-parameters) is available here. Ripcord provides additional safety and redundancy to the [Leverage Keeper System](/index-coop-community-handbook/products/trade/fli-keeper-bot-integration) operated by Index Coop today.

An ETH reward is also paid out to Ripcord callers for protecting tokens from liquidation. The amount of the reward varies based on where a leverage token is deployed; see the table below:

<table><thead><tr><th width="170">Network</th><th width="397">Leverage Tokens</th><th>Ripcord Reward</th></tr></thead><tbody><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-ethereum">Ethereum</a></td><td>ETH2x, BTC2x</td><td>1 ETH</td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>ETH3x, ETH2x, iETH1x, BTC3x, BTC2x, iBTC1x</td><td>0.25 ETH</td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-base">Base</a></td><td>ETH3x, ETH2x</td><td>0.25 ETH</td></tr></tbody></table>

A step-by-step guide for calling Ripcord using Arbiscan is provided below.

***

### Step 1: Identify the Correct Contract

Each leverage token has a dedicated `Leverage Strategy Extension` contract that enables rebalancing; the Ripcord function per leverage token can be found in this contract. Using the table below, identify the `Leverage Strategy Extension` contract associated with the token that you want to call Ripcord for:

<table><thead><tr><th width="141">Network</th><th width="156">Leverage Token</th><th>Leverage Strategy Extension</th></tr></thead><tbody><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-ethereum">Ethereum</a></td><td>ETH2x</td><td><a href="https://etherscan.io/address/0x500f8a8b67153966dfdf770bc41ccfbe5dd5f0e7#code">0x500f8A8b67153966dFdF770BC41ccFBe5dd5F0e7</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-ethereum">Ethereum</a></td><td>BTC2x</td><td><a href="https://etherscan.io/address/0xd9b86cadbdf1fd260b9d4e70f5f4067729cdcd77#code">0xD9b86CaDbDf1Fd260b9D4e70f5f4067729cDcd77</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>ETH3x</td><td><a href="https://arbiscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186#code">0x165EDF07Bb61904f47800e13F5120E64C4B9A186</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>ETH2x</td><td><a href="https://arbiscan.io/address/0xb5ef3fe96e4cf0bb8529c9a761e2cb6f2f440cb3#code">0xb5Ef3FE96e4cf0BB8529c9a761e2Cb6F2f440cb3</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>iETH1x</td><td><a href="https://arbiscan.io/address/0xcb3ebcdd25eca9f0755b13b3dc87a7252ef4eb47">0xcB3eBCdd25EcA9F0755b13b3DC87a7252ef4eB47</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>BTC3x</td><td><a href="https://arbiscan.io/address/0x3e262dc5b9aa18d6a8236c11caa979f89473dc39#code">0x3e262dC5B9aa18D6A8236C11CAa979f89473dC39</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>BTC2x</td><td><a href="https://arbiscan.io/address/0x04d58e7051e7f0ea4b01bb648d61f4a641b2c08b">0x04D58e7051E7f0EA4b01BB648D61f4A641b2c08B</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-arbitrum">Arbitrum</a></td><td>iBTC1x</td><td><a href="https://arbiscan.io/address/0xb1aad804e4da225237b88aa62dfddc719715dc44">0xb1aaD804E4Da225237b88AA62dFDDc719715Dc44</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-base">Base</a></td><td>ETH3x</td><td><a href="https://basescan.org/address/0x1cf7c6c4c8997fc047effa0d5b119f174f08b08b#code">0x1cf7c6C4c8997fc047effA0D5B119F174f08B08b</a></td></tr><tr><td><a href="https://docs.indexcoop.com/index-coop-community-handbook/products/leverage/index-coop-leverage-suite#technical-implementation-base">Base</a></td><td>ETH2x</td><td><a href="https://basescan.org/address/0xafbd1f46aa2db385bb09e40e40c857bd2e755f92">0xAFBd1f46Aa2db385bB09E40e40c857BD2e755F92</a></td></tr></tbody></table>

Next, you will engage with the read and write functions on the selected contract.

***

### Step 2: Check if Token Should Rebalance

After selecting the appropriate contract, navigate to the *Contract > Read Contract* tab. Select the `shouldRebalance` function and click *Query*. In the extremely unlikely event that Ripcord can be called as a result of an exceptionally high leverage ratio, this function will return:

* a string value for the DEX used for rebalancing; ex. "`UniswapV3ExchangeAdapterV2`"
* a uint8 value of "`3`" which indicates Ripcord can be called

As an example, we will use the [ETH3x Leverage Strategy Extension](https://arbiscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186#code) contract. See the screenshot below for a *simulated* scenario where Ripcord would be callable.

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FHUFOU1B2PJXguTYbAgCA%2FScreenshot%202024-11-15%20at%205.17.22%E2%80%AFPM.png?alt=media&amp;token=a2613a26-06c8-40e8-9bc6-3d3b74998e48" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FvqOprBGTAPR781Ug4G2p%2FETH3x%20shouldRebalance.png?alt=media&amp;token=bec7cb1a-3c15-4879-875f-be0eb506cbde" alt=""><figcaption><p><code>shouldRebalance</code> function</p></figcaption></figure>

If the returned uint8 value is `3`, then Ripcord can be called. In this case, copy the string value for the enabled exchange - ex.`UniswapV3ExchangeAdapterV2` - you will need it for Step 3.

If the uint8 value is `0`, `1`, or `2`, the Ripcord function cannot be called and subsequent steps will fail.

***

### Step 3: Call Ripcord

If Ripcord is callable, navigate to the *Write Contract* tab on the same Leverage Strategy Extension contract. If you haven't already, connect a wallet - specifically an EOA - so that you may write to the contract.

Expand the `ripcord` function and paste the string value of the enabled exchange from Step 2, which is `UniswapV3ExchangeAdapterV2` in this example. After verifying the transaction details, click *Write* and sign the transaction in the connected wallet.

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fw8QI2pQFHFYjfs5f3L5h%2FScreenshot%202024-11-15%20at%204.54.47%E2%80%AFPM.png?alt=media&amp;token=0cae0675-56cf-4e9a-8926-8f78d40250dc" alt=""><figcaption></figcaption></figure>

Assuming the token's leverage ratio remains above the emergency threshold during the same block, the Ripcord transaction should execute successfully. The token will be rebalanced according to preset Ripcord parameters and the ETH reward will be paid out to the caller's address.

***

Questions?

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Earn


# Staked ETH 15x Smart Loop (wstETH15x)

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FNG8C3UNM7l62Jvc12ki4%2FwstETH15x-blog-card-3d.png?alt=media&amp;token=c571850e-689a-4689-8fc9-0dd7a4378209" alt=""><figcaption></figcaption></figure>

### Overview <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

wstETH15x is the first Smart Loop token from Index Coop. It multiplies the native staking yield of Lido‑wrapped stETH (wstETH) by running an automated 15× leverage loop on Morpho, then wraps the entire position in a single ERC‑20.

#### Initial Parameters:

* Underlying Asset: wstETH
* Borrow Asset: WETH
* DeFi Lending Protocol: Morpho
* Target Leverage Ratio: 15x
* Maximum Leverage Ratio: 16.3636x
* Minimum Leverage Ratio: 14.6965
* Rebalance Interval: LR <14.6965x or > 16.3636x
* Recentering Speed: 100%

### Fees

0.75% Annual Streaming  |  0.10% Mint  |  0.10% Redeem

<details>

<summary>Technical Implementation</summary>

* Token Contract: [0xc8DF827157AdAf693FCb0c6f305610C28De739FD](https://basescan.org/address/0xc8df827157adaf693fcb0c6f305610c28de739fd)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Base)&#x20;
* Smart Contract Apparatus:

| Contract                                                                                                   | Description                                                                                                   |
| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [BaseManagerV2](https://basescan.org/address/0x369a817FB05c730724Be9B3cA84e1256Ca3D1C9d)                   | used to operate, rebalance, and update contracts connected to the product; product-specific contract          |
| [MorphoLeverageModule](https://basescan.org/address/0x9534b6EC541aD182FBEE2B0B01D1e4404765b8d7)            | used to initiate and manage collateralized debt positions in Morpho Blue; protocol-wide contract              |
| [MorphoLeverageStrategyExtension](https://basescan.org/address/0x36873e6b93Cf7A8f4B03e21cE7B32a10ac02C50B) | connects the product to the Morpho Leverage Module and stores methodology settings; product-specific contract |
| [DebtIssuanceModuleV3](https://basescan.org/address/0xa30e87311407ddcf1741901a8f359b6005252f22)            | used to issue and redeem units of the product token; protocol-wide contract                                   |
| [StreamingFeeModule](https://basescan.org/address/0x4580dbe79b8fcb1282eb43113536d62e882fc044)              | used to charge and update fees on the product; protocol-wide contract                                         |
| [FeeSplitExtension](https://basescan.org/address/0x5c491536defe7f11ed489994815d6d35c1fdd0c7)               | connects the product to the Streaming Fee Module; product-specific contract                                   |

</details>

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# High Yield ETH Index (hyETH)

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FPJGe0pUoNnjSdXtTy1qa%2Fhyeth-blog-card-3d.png?alt=media&amp;token=b0f4cb2a-6846-4111-9828-997131361dd0" alt=""><figcaption></figcaption></figure>

### Overview <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

hyETH is designed to track and gain exposure to some of the highest ETH-denominated yields available within the DeFi ecosystem. Tokenisation abstracts away the complexity, management, and need for continual monitoring and trading for users.

### Methodology <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

hyETH aims for yields above Lido’s 30d average [staking rate](https://defillama.com/yields/pool/747c1d2a-c668-4682-b9f9-296708a3dd90). As of Jan 2025 Index Coop [upgraded hyETH](https://gov.indexcoop.com/t/iip-188-upgrades-to-high-yield-eth-index-hyeth/4841/5) to run on [Morpho’s](https://docs.morpho.org/morpho-vaults/overview) vault infrastructure with [Gauntlet](https://www.gauntlet.xyz/product/gauntlet-risk-for-defi-protocols) selected as the risk manager. hyETH deposits WETH into a purpose run Morpho vault. Gauntlet will lend or “allocate” WETH across a selection of Morpho Markets as per the parameters and criteria below:&#x20;

* Target Pendle Principle Token (PT) markets that have fixed yields greater than the Lido staking rate (\~3%)
* Each selected Pendle Market TVL must be no lower than $5m
* Each underlying contract must be open‑source and audited.
* No single Morpho market will take up more than 1/3rd of the allocation
* 91.5% or higher LLTV (max LLTV is defined by Morpho governance)
* [Adaptive Curve interest rate model](https://docs.morpho.org/morpho/contracts/irm/adaptive-curve-irm/)
* LST and LRT assets may also be allocated against, to supplement or substitute the PT regime depending on prevailing yield opportunities.&#x20;
* Future versions may tap non‑ETH blue‑chips (e.g., WBTC, stablecoins) when yields justify it.
* All assets will be subject to Gauntlet’s discretion, due diligence and expertise as a highly qualified, experienced, professional risk manager.&#x20;

The Index Coop retains ultimate control over the product and whilst unlikely can withdraw assets from the vault at any time if it is considered there is a material risk to users. The Index Coop also retains the power to select a new risk manager\* and/or protocol or yield strategy/strategies, with the most material changes being subject to an $INDEX token holder vote via IIP. (\*subject to any outstanding contractual agreements)

### Maintenance

Gauntlet will dynamically manage the vault with the primary objectives focused on yield optimisation, borrow elasticity, market stability and align exposure with available liquidity. This helps to protect deposits while maximising returns.

### Fees

20% Performance Fee  |  0.00% Streaming  |  0.00% Mint  |  0.00% Redeem

<details>

<summary>Technical Implementation</summary>

hyETH is 100% allocated to this [Gauntlet-managed Morpho Vault](https://app.morpho.org/vault?vault=0x701907283a57FF77E255C3f1aAD790466B8CE4ef\&network=mainnet). The hyETH token acts as a wrapper around the vault, allowing any incentives distributed to the vault to be compounded back into the product. Learn more about Morpho Vaults [here.](https://docs.morpho.org/morpho-vaults/overview/)

#### Details

* Token Contract: [0xc4506022Fb8090774E8A628d5084EED61D9B99Ee](https://etherscan.io/address/0xc4506022fb8090774e8a628d5084eed61d9b99ee)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="307">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x6A7EB75C50dDdA0FFa90b6577da938A6F0e35240">BaseManagerV2</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x0daf2df0102490de2d09bf064e0448b619077ffd">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0x2b5990df9212de51c6f6ccd2d651e6ba5158d01b">AuctionRebalanceExtension</a></td><td>connects the product to the Auction Rebalance Module; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x59d55d53a715b3b4581c52098bcb4075c2941dba">AuctionRebalanceModule</a></td><td>used to execute auction rebalancing for the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Cross-chain Implementation:

* Bridging Protocol: [Chainlink CCIP](https://app.transporter.io/?from=mainnet\&tab=token\&to=arbitrum\&token=hyETH)
* Bridged Token Contract - **Arbitrum**: [0x8b5D1d8B3466eC21f8eE33cE63F319642c026142](https://arbiscan.io/token/0x8b5d1d8b3466ec21f8ee33ce63f319642c026142)
* Bridged Token Contract - **Base**: [0xC73e76Aa9F14C1837CDB49bd028E8Ff5a0a71dAD](https://basescan.org/token/0xC73e76Aa9F14C1837CDB49bd028E8Ff5a0a71dAD)

</details>

<details>

<summary>Risks</summary>

hyETH users should understand that they are supplying, also known as lending, their ETH assets to borrowers on Morpho in return for yield. The higher the borrow demand the higher the potential yields available.

‍\
Risk for suppliers in lending markets comes primarily from insolvent debt. Insolvent debt generally happens when liquidators do not liquidate risky borrow positions (positions with health factor < 1) in a timely manner. This can happen when collateral asset prices are decreasing, and there is insufficient liquidity on-chain for liquidators to liquidate positions profitably. Remember that liquidators are rational, profit seeking entities and when market conditions render liquidation opportunities unprofitable, they will not liquidate underwater borrowers. In the case of an insolvent position within a Morpho Market, the losses are immediately socialized per rata to all suppliers to that market. This ensures there is no incentive to 'bank-run' the markets, providing more stability and long-term growth.<br>

When deciding to reduce exposure to specific markets, the primary consideration is the potential for insolvent debt under large price drops and liquidity drops. If a market's exposure under an X% drop in the collateral asset price exceeds the liquidity available during a Y% liquidity crunch, action is taken to decrease exposure. X and Y is determined based on historical data, typically setting:

• X = the 99th percentile day-over-day price drop

• Y = the 99th percentile day-over-day drop in DEX liquidity over the past year.<br>

By adhering to this principle, the risk manager aims to maintain near zero insolvency risk even under severe market conditions. In practice, this means managing the exposure such that the vault has minimal insolvent debt (ex: less than 10bps of total vault TVL) under market conditions as extreme as large price drawdowns and large liquidity drawdowns. The expected number of liquidations and the net volume over adverse price and liquidity scenarios are continually simulated. When expected insolvencies under the prescribed liquidity and price drawdown conditions exceed tolerance thresholds, the vault's exposure to the at-risk markets are reduced as much as possible. This entails reallocating liquidity from markets more likely to experience insolvency to a safer market early and often. If there are no suitable lending markets, Gauntlet will reallocate supply to the idle market.

Another risk associated with lending is liquidity risk. If the underlying markets are at maximum utilisation, hyETH users may be unable to withdraw their WETH. Morpho markets are designed to target 90% utilisation in order to maximise lent assets to earn yield but with enough left in the vault to handle typical day to day withdrawals. Users holding >10% of [hyETH supply](https://etherscan.io/token/0xc4506022fb8090774e8a628d5084eed61d9b99ee#balances) may wish to reduce their holding size in order to avoid this immediate issue, or understand that they may have to make multiple smaller withdrawals spread out over a short period of time whilst the vault adjusts and liquidity is replenished. For an in-depth overview of Morpho markets and utilisation see [here](https://docs.morpho.org/morpho/contracts/irm/adaptive-curve-irm/#formal-description).

In addition the following general risks may apply to this digital asset: full or partial loss of digital assets due to technical hacks, exploits, or failures that may occur at the protocol or smart contract level of a product’s infrastructure; restrictions placed on the digital assets by regulatory authorities in the end users region; loss of digital assets or loss of access to the digital assets due to decisions made by centralized providers of the underlying assets; full or partial loss of digital assets through standard product operations which can be hampered by unexpected market conditions; full or partial loss of digital assets due to changes to underlying product assets made by the originating protocols; full or partial loss of digital assets due to volatility, correlation, value at risk, and contagion risks; underperformance of digital assets due to deviation from intended methodology; full or partial loss of digital assets due to the volatility of underlying tokens.

</details>

<details>

<summary>Additional Resources</summary>

* [hyETH Product Page - indexcoop.com](https://indexcoop.com/products/high-yield-eth)
* [hyETH Dune Dashboard](https://dune.com/index_coop/hyeth)
* [hyETH Presale Analytics](https://dune.com/index_coop/hyeth-presale)
* [Blog Post: Introducing the High Yield ETH Index](https://indexcoop.com/blog/understanding-indicative-apy-vs-realised-roi)
* [IIP-185: Launch the High Yield ETH Index Presale](https://gov.indexcoop.com/t/iip-185-launch-the-high-yield-eth-index-hyeth-pre-sale/4764)
* [IIP-188: Upgrades to High Yield ETH Index](https://gov.indexcoop.com/t/iip-188-upgrades-to-high-yield-eth-index-hyeth/4841)
* [Blog Post: We're Upgrading hyETH with Morpho](https://indexcoop.com/blog/upgrading-hyeth-with-morpho)
* [About Morpho Labs](https://morpho-labs.io/)
* [About Gauntlet](https://www.gauntlet.xyz/about)

</details>

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Interest Compounding ETH Index (icETH)

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FX9wZBJcbp17UcbijtNLJ%2Ficeth-blog-card.png?alt=media&amp;token=65a99969-f3e7-4b13-909a-c2b02b2c385e" alt=""><figcaption></figcaption></figure>

### Overview <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Interest Compounding ETH Index (icETH) multiplies staking returns using a leveraged liquid staking strategy. Built on Set’s battle-tested leverage token infrastructure, icETH multiplies the staking rewards for Lido stETH while minimizing transaction costs and risk associated with maintaining a collateralized debt position on Aave or other lending protocols. Token holders maintain price exposure to ETH and amplify staking returns up to 2.5x.

### Methodology <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

icETH methodology aims to give token holders leveraged exposure to Ethereum staking rewards, with automated leverage management that reduces the risk and the effort required to manually manage a leveraged position. The icETH token is deployed to mainnet Ethereum.  In execution, stETH is deposited to Aave to use as collateral to borrow ETH. This ETH is exchanged for additional stETH which is also deposited back into Aave to create the leveraged position. While stETH staking yield is greater than the cost to borrow ETH on Aave, the strategy is profitable in ETH terms. Fluctuations of the stETH:ETH conversion rate can also influence profitability.

**Initial Parameters:**

* Underlying Asset: stETH
* Borrow Asset: WETH
* DeFi Lending Protocol: Aave v2
* Target Leverage Ratio: 2.75x
* Maximum Leverage Ratio: 3.0x
* Minimum Leverage Ratio: 2.5x
* Rebalance Interval: LR < 2.5x or > 3.0x
* Recentering Speed: 100%

**Token Inclusion Criteria:**

icETH will be composed of, and limited to, astETH and awETH tokens.

**Composition:**&#x200D;

astETH : \~275%\
awETH(debt) : (\~175%)\
icETH is implemented using a leverage strategy built on the Token Sets protocol.

### Maintenance

**Rebalancing**&#x20;

Because of the high correlation / low currency risk of the underlying assets, this index will only rebalance when the leverage ratio moves outside of the safe range defined above. This should lead to minimal rebalancing on a recurring basis and lower operating costs on Ethereum main net, as well as minimal NAV decay due to rebalancing slippage. Based on prevailing staking and borrow rates, automated rebalancing would occur once every 4-6 months.

These parameters may be revised closer to launch. Post-launch, the Product Pod will monitor and manage these parameters and publicly communicate any material changes 24 hours before executing said changes. An example would be updating the LR parameters if borrowing conditions within Aave change drastically, requiring a winding down of the debt position to maintain an acceptable yield.

**Actions**

Changes to any of the Leverage Ratio parameters can be made at any time via IIP to improve or protect the integrity of the product.

### Fees

0.75% Streaming  |  0.00% Mint  |  0.00% Redeem

<details>

<summary>Technical Implementation</summary>

* Token Contract: [0x7C07F7aBe10CE8e33DC6C5aD68FE033085256A84](https://etherscan.io/address/0x7c07f7abe10ce8e33dc6c5ad68fe033085256a84)
* Protocol: [Set Protocol V2](/index-coop-community-handbook/protocol/set-protocol-v2) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="307">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0xb97F5a34696adf30db822612379235c3c53B714A#code">BaseManagerV2</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x251bd1d42df1f153d86a5ba2305faade4d5f51dc#code">AaveLeverageModule</a></td><td>used to initiate and manage collateralized debt positions in Aave v2; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0xe6484a64e2ea165943c734dc498070b5902cbc2b#code">AaveLeverageStrategyExtension</a></td><td>connects the product to the Aave Leverage Module and stores methodology settings; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x69a592d2129415a4a1d1b1e309c17051b7f28d57#code">DebtIssuanceModuleV2</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x08f866c74205617b6f3903ef481798eced10cdec#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x1B7d68134ef476B7795b22a4d76F82c220c54E74#code">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr></tbody></table>

</details>

<details>

<summary>Risks</summary>

The following risks may apply to this digital asset: full or partial loss of digital assets due to technical hacks, exploits, or failures that may occur at the protocol or smart contract level of a product’s infrastructure; restrictions placed on the digital assets by regulatory authorities in the end users region; loss of digital assets or loss of access to the digital assets due to decisions made by centralized providers of the underlying assets; full or partial loss of digital assets through standard product operations which can be hampered by unexpected market conditions; full or partial loss of digital assets due to changes to underlying product assets made by the originating protocols; full or partial loss of digital assets due to volatility, correlation, value at risk, and contagion risks; underperformance of digital assets due to deviation from intended methodology; full or partial loss of digital assets due to the variability and potential volatility of the yield source.

</details>

<details>

<summary>Additional Resources</summary>

* [icETH Product Page - indexcoop.com](https://indexcoop.com/products/interest-compounding-eth-index)
* [icETH Dune Dashboard](https://dune.com/index_coop/icETH)
* [icETH Wallet Performance Dashboard](https://dune.com/index_coop/iceth-wallet-performance)
* [Introducing the Interest Compounding ETH Index](https://indexcoop.com/blog/introducing-the-interest-compounding-eth-index)
* [Understanding the Interest Compounding ETH Index](https://indexcoop.com/blog/understanding-interest-compounding-eth-index-iceth)
* [IIP-1](https://gov.indexcoop.com/t/iip-185-launch-the-high-yield-eth-index-hyeth-pre-sale/4764)[41: Launch the Interest Compounding ETH Index](https://gov.indexcoop.com/t/iip-141-dg-launch-the-interest-compounding-eth-index-iceth/4003)

</details>

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Asset Management


# Product Development Process

## Overview

Most new products under consideration will follow the redefined [Product Development Process](https://gov.indexcoop.com/t/revamping-the-product-development-process/4715) proposed in the forum. The goal of this proposal was to revamp the Index Coop’s product development process by introducing a pre-sale process for new product proposals. This pre-sale process will accomplish four things:

1. Surface a direct demand signal (or lack thereof) for potential products
2. Ensure DAO resources are allocated to products with clear demand
3. Bootstrap TVL and liquidity for new products before launch
4. Incentivize early adopters to support and grow new products over time

The pre-sale process enables customers and early adopters to demonstrate tangible demand for a proposed product by depositing funds into the token before launch. Each pre-sale will have a pre-defined deposit threshold (ex. $3m) that must be met within a specified amount of time (ex. 30 days) to determine whether or not the product is formally launched. If a pre-sale meets or exceeds this threshold in the allotted time, the product will be launched by the Index Coop. If the pre-sale does not meet the agreed-upon threshold, the product will not be launched and depositors can withdraw their funds. Pre-sale supporters may also be incentivized with $INDEX, future product revenue, or other rewards.

## Product Development Timeline

1. Publish [Pre-sale Product Proposal](https://gov.indexcoop.com/t/pre-sale-product-proposal-template/4746) to the forum for comment period&#x20;
2. Conduct INDEX vote to advance (or not advance) the product to a pre-sale
3. If the INDEX vote passes, the **pre-sale period** will begin on the *pre-sale start date*. It will last for a period as defined in the proposal, and it must meet the defined *deposit threshold* at the end of pre-sale period.
4. If the pre-sale is successful, the product will be developed and marketing materials will be created during the **pre-launch period**. During this time, the product will be rebalanced into it's initial composition using deposits from the pre-sale.
5. At the end of pre-launch period, the **formal launch** will take place. The formal launch allows regular users to begin issuing and/or buying the new product.
6. After the formal launch, the **post-launch period** will begin. When distributing incentives to pre-sale depositors, the end of the post-launch period can signify when the incentive recipients will be able to claim their rewards. This is useful as non-binding mechanism to force pre-sale depositors to hold their positions until a sufficient amount of time has passed.

## Rationale

In addition to signaling direct demand for potential products, the pre-sale process also ensures that DAO resources are allocated more efficiently. Under the current product development process, a significant amount of resources must be invested to bring a product to market. Almost every contributor is involved at some stage, translating to direct costs and opportunity costs. It’s not until after these investments are made and the product is formally launched that it is apparent if there is a demand for a product.

Under the pre-sale process, the majority of these go-to-market activities do not need to be completed until after the deposit threshold is met and there is a clear indication of customer demand. Therefore, this pre-sale approach minimizes the upfront investment that has been prohibitive in the past and clarifies the case for eventual resource allocation.


# Product Revenue Tokens (PRTs)

## Overview

Product Revenue Tokens (PRTs) are freely transferable ERC-20 tokens that entitle holders to fees generated by an Index Coop product. PRTs are a mechanism to incentivize product-specific behaviour and gauge market sentiment about a product's commercial outlook.&#x20;

Each PRT-enabled product will have a fixed supply of 10,000 PRTs specific to that product, each representing a proportional claim on that product’s revenue. The PRT holder must stake the PRT to claim the fees generated by a product; unstaked PRTs are not eligible to claim fees. PRT staking will be restricted to non-U.S. persons; more on this in the [Staking Requirements](https://docs.google.com/document/d/1Ta5VXpIx1n3dKJkudAgARVNmanKKFA7927A3q6xJ5_A/edit#heading=h.u8nibsansj2w) section.

## Participating in a Pre-sale

Pre-sale participants can earn incentives , often in the form of PRTs, by depositing to a product before it is launched. When a product is in the pre-sale process, the token has already been deployed onchain, however, it is not in it's final composition. Instead, the composition of the product will be a single asset such as wETH or USDC. After a successful pre-sale, the product will be rebalanced into the initial composition. Keeping the pre-sale composition to a single token reduces the gas cost for issuance and redemption.

To participate in a pre-sale, follow these steps:

1. Go to Index Coop's Pre-sale Page
2. Select the Pre-sale you want to deposit to
3. Choose the amount you want to deposit
4. Approve the deposit token
5. Deposit

## Staking PRTs

*coming soon*


# Legacy Products

Over the past several years, Index Coop has become a market leader in building innovative, structured products. We’ve experimented by building a diverse mix of offerings on different blockchains.

To focus our efforts and resources on the most promising opportunities, we have occasionally needed to wind down underperforming products. This decision ensures we can concentrate on developing and enhancing products that provide the most value to our users.

This section provides information on deprecated Index Coop products that are no longer actively supported or maintained.

<table data-full-width="false"><thead><tr><th width="206">Product</th><th width="124">Status<select><option value="pjbWv7Nk3WUm" label="Hibernated" color="blue"></option><option value="QHKd93Ww8xAw" label="Deprecated" color="blue"></option><option value="ZdK9u4LPQPHm" label="Upgraded" color="blue"></option></select></th><th width="179">Last Update</th><th>Additional Information</th></tr></thead><tbody><tr><td>DPI</td><td><span data-option="pjbWv7Nk3WUm">Hibernated</span></td><td>January 23, 2025</td><td><a href="https://x.com/indexcoop/status/1885409104656548226">[link]</a></td></tr><tr><td>MVI</td><td><span data-option="pjbWv7Nk3WUm">Hibernated</span></td><td>January 23, 2025</td><td><a href="https://x.com/indexcoop/status/1885409104656548226">[link]</a></td></tr><tr><td>BED</td><td><span data-option="pjbWv7Nk3WUm">Hibernated</span></td><td>January 23, 2025</td><td><a href="https://x.com/indexcoop/status/1885409104656548226">[link]</a></td></tr><tr><td>dsETH</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>January 23, 2025</td><td><a href="https://x.com/indexcoop/status/1885409104656548226">[link]</a></td></tr><tr><td>cdETH</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>January 23, 2025</td><td><a href="https://x.com/indexcoop/status/1885409104656548226">[link]</a></td></tr><tr><td>ic21</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>October 24, 2024</td><td><a href="https://gov.indexcoop.com/t/iip-186-deprecate-the-index-coop-large-cap-index-ic21/4830">[link]</a></td></tr><tr><td>ETH2x-FLI</td><td><span data-option="ZdK9u4LPQPHm">Upgraded</span></td><td>March 12, 2024</td><td><a href="https://indexcoop.com/blog/meet-the-index-coops-new-2x-leverage-tokens">[link]</a></td></tr><tr><td>BTC2x-FLI</td><td><span data-option="ZdK9u4LPQPHm">Upgraded</span></td><td>March 12, 2024</td><td><a href="https://indexcoop.com/blog/meet-the-index-coops-new-2x-leverage-tokens">[link]</a></td></tr><tr><td>Polygon FLI Products</td><td><span data-option="ZdK9u4LPQPHm">Upgraded</span></td><td>December 20, 2022</td><td><a href="https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis">[link]</a></td></tr><tr><td>MNYe</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>October 27, 2022</td><td><a href="https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis">[link]</a></td></tr><tr><td>GMI</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>October 27, 2022</td><td><a href="https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis">[link]</a></td></tr><tr><td>DATA</td><td><span data-option="QHKd93Ww8xAw">Deprecated</span></td><td>October 27, 2022</td><td><a href="https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis">[link]</a></td></tr></tbody></table>

#### Learn how to redeem deprecated products on the next page.&#x20;


# How to Redeem Legacy Products

This guide walks you through the process of redeeming ic21, a legacy token on the Index Coop platform. When ic21 was deprecated, it was fully rebalanced into WETH. By redeeming your ic21 tokens, you can receive the underlying WETH directly into your wallet.&#x20;

Follow the steps outlined below to complete the redemption process.

#### **\*\* Before you get started**

* Have a connected wallet that is holding ic21
* Make sure you are connected to Ethereum mainnet
* Have enough ETH to cover transaction fees

### **1. Navigate to the Legacy Products Interface**

* Visit the Index Coop App and navigate to the Legacy Products Interface, which can be found in the footer on any page of the app or directly at [this link.](https://app.indexcoop.com/legacy)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdYCvvXEXdso9k9eo81aqVVlMN4YmJ9G4akbVhSE7mXqoLv2sPjVCI6dkm3r0gf071Wr0toSrVgNVVa5kDeiqKHpwtHngdnKqIx9JfG-YmzO-8W7-33wzhofcHszzwfLLOgoBYQ57Ay3-XSqc6_qvglNLM?key=hI_XKIN1bd_mlf8gxSXBKA" alt=""><figcaption></figcaption></figure>

### 2. Select Your Token

* Choose the desired token and input the amount you want to redeem in the ‘You redeem’ field.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfKFOXNpWcEb6Sb8z545BTMdiglwo5Oixszc7WakPPBsS06dCCotyRpGnA7eVKuRU2vg8Uy-LOAFFkAS4WzBs-EsnIuVranWZPINzzmkT4ojpHSpXtXcjl7RqTslvJV9Uoe22ViyKdglUCFzatjcDq4Je_2?key=hI_XKIN1bd_mlf8gxSXBKA" alt=""><figcaption></figcaption></figure>

### 3. Review Assets to be Received

* The interface will display the breakdown of assets you will receive after redemption.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeIEUAYwFp2fLtC81mWWatbCwrRDmNABdnrgTbzTSjGBq5jdjo-YHLk-VnrFLZfJm7aRh6LkanRM1oSzjbSPjfenenyjw-868EG4C9gpvqphKm_OmXxVoCb5qBQ1sC0K6f2QRdsxZ1DB04wFj88rgVBG24?key=hI_XKIN1bd_mlf8gxSXBKA" alt=""><figcaption></figcaption></figure>

### 4. Submit the Transaction

* Review the transaction summary at the bottom of the widget. For certain tokens, it may be beneficial to wait for periods of low market volatility to minimize gas fees.
* Approve the transaction and then submit it to process the redemption.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdslDNoQLChrvIlPlBa4HAbBqFbP3oYVe6mzwcNCVNXR-doij_mVUxumDrBWQUeLYav2bc3HkQSRm5jwb5xpBGnWL-hMhbBQ6O7E28X_hB5_9ZUPJVH_4R4jGkYt4qfG3u1Gkz9xr9rysmWkOapkvDxW1JS?key=hI_XKIN1bd_mlf8gxSXBKA" alt=""><figcaption></figcaption></figure>

You have **successfully completed** the redemption process for your token. Thank you for being a valued member of our community.

#### Need more help?

Get in touch with the Index Coop team via [Discord](https://discord.com/invite/indexcoop)[.](https://discord.gg/indexcoop)

\ <br>


# DeFi Pulse Index (DPI)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FM6f5KIon5h66Am2Alvvl%2FDPI%20Logo.png?alt=media&amp;token=a8f479cc-70cb-42e3-83d5-eca2f243b923" alt="" width="375"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The DeFi Pulse Index (DPI) is a capitalization-weighted index that tracks the performance of some of the largest protocols in the decentralized finance (DeFi) space.

### Fees

0.95% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b](https://etherscan.io/token/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b)
* Protocol: [Set Protocol V2](/index-coop-community-handbook/protocol/set-protocol-v2) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="336">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x0DEa6d942a2D8f594844F973366859616Dd5ea50#code">ICManager</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d">BasicIssuanceModule</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x90F765F63E7DC5aE97d6c576BF693FB6AF41C129">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x84ce03ae547330f61584ad6103743732b1ae97c5#code">GeneralIndexModule</a></td><td>used to facilitate component rebalancing; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x08f866c74205617b6f3903ef481798eced10cdec#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x5c87b042494cdceba44c541fbb3bc8bff179d500#code">GovernanceModule</a></td><td>used to enable voting for product components; protocol-wide contract</td></tr></tbody></table>

### Cross-chain Implementation:

* Bridging Protocol: [Chainlink CCIP](https://app.transporter.io/?from=mainnet\&tab=token\&to=arbitrum\&token=DPI)
* Bridged Token Contract - **Arbitrum**: [0x9737C658272e66Faad39D7AD337789Ee6D54F500](https://arbiscan.io/token/0x9737c658272e66faad39d7ad337789ee6d54f500)
* Bridged Token Contract - **Base**: [0xc6955B85b622369a54Cc8C6DBeCb8e03c0885BD8](https://basescan.org/token/0xc6955B85b622369a54Cc8C6DBeCb8e03c0885BD8)

### Additional Resources:

* [DPI Product Page - indexcoop.com](https://indexcoop.com/products/defi-pulse-index)
* [DPI Dune Dashboard](https://dune.com/index_coop/sector-products)
* [Introducing the DeFi Pulse Index - Anthony Sassano](https://medium.com/set-protocol/introducing-the-defi-pulse-index-on-tokensets-79f87c6b295b)
* [An Introduction to DeFi Pulse Index Methodology](https://indexcoop.com/blog/defi-pulse-index-methodology)
* [IIP-184: Buyout DPI from Scalara](https://gov.indexcoop.com/t/iip-184-buyout-dpi-from-scalara/4759)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Bankless BED Index (BED)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FUBJDAYlpcwtarJnOJX32%2FBED_Logo.png?alt=media&amp;token=f70d1bba-275f-49f9-af6c-9893a321aef3" alt="" width="270"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Bankless BED Index includes BTC, ETH, and DPI in equal weights, providing exposure to the most promising themes in digital assets: programmable money, store of value, and decentralized finance.

### Fees

0.25% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x2aF1dF3AB0ab157e1E2Ad8F88A7D04fbea0c7dc6](https://etherscan.io/token/0x2af1df3ab0ab157e1e2ad8f88a7d04fbea0c7dc6)
* Protocol: [Set Protocol V2](/index-coop-community-handbook/protocol/set-protocol-v2) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="372">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x5E6898eE65EDd36F76571DB4171B4ebdEab5262C#code">BaseManager</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xf5090c139703cf49eefef6e2a8e62ef150062b17">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d">BasicIssuanceModule</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x84ce03ae547330f61584ad6103743732b1ae97c5#code">GeneralIndexModule</a></td><td>used to facilitate component rebalancing; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x08f866c74205617b6f3903ef481798eced10cdec#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Additional Resources:

* [BED Product Page - indexcoop.com](https://indexcoop.com/products/bankless-bed-index)
* [BED Dune Dashboard](https://dune.com/index_coop/sector-products)
* [Introducing the Bankless BED Index](https://indexcoop.com/blog/recommending-crypto)
* [The Definitive Guide to the Bankless BED Index](https://indexcoop.com/blog/bankless-bed-index-guide)
* [IIP-22: Bankless BED Index](https://gov.indexcoop.com/t/iip-22-bankless-bed-index/1076)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Metaverse Index (MVI)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FXNwo9fki57vMO4aPtZKv%2FMVI_token_logo.png?alt=media&amp;token=636e7f77-7634-41d0-bf32-1802bc056632" alt="" width="375"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Metaverse Index (MVI) is designed to capture the trend of entertainment, social activity and business moving to take place in virtual economies, powered by NFTs and blockchain technology.

### Fees

0.95% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x72e364F2ABdC788b7E918bc238B21f109Cd634D7](https://etherscan.io/token/0x72e364f2abdc788b7e918bc238b21f109cd634d7)
* Protocol: [Set Protocol V2](/index-coop-community-handbook/protocol/set-protocol-v2) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="329">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x0528A40435D0940f3759F6bBad3eBfD050211a2e">BaseManager</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xf47a6657493632fc23b11d3a0bda5af890a9c574#code">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d">BasicIssuanceModule</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x90F765F63E7DC5aE97d6c576BF693FB6AF41C129">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x84ce03ae547330f61584ad6103743732b1ae97c5#code">GeneralIndexModule</a></td><td>used to facilitate component rebalancing; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x08f866c74205617b6f3903ef481798eced10cdec#code">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Cross-chain Implementation:

* Bridging Protocol: [Chainlink CCIP](https://app.transporter.io/?from=mainnet\&tab=token\&to=arbitrum\&token=MVI)
* Bridged Token Contract - **Arbitrum**: [0x0104a6FA30540DC1d9F45D2797F05eEa79304525](https://arbiscan.io/token/0x0104a6fa30540dc1d9f45d2797f05eea79304525)
* Bridged Token Contract - **Base**: [0xEA8954dE7607b90F5ec81A5e2e673D0f60BB7596](https://basescan.org/token/0xEA8954dE7607b90F5ec81A5e2e673D0f60BB7596)

### Additional Resources:

* [MVI Product Page - indexcoop.com](https://indexcoop.com/products/metaverse-index)
* [MVI Dune Dashboard](https://dune.com/index_coop/sector-products)
* [Introducing the Metaverse Index](https://indexcoop.com/blog/introducing-the-metaverse-index-mvi-by-index-coop)
* [Guide to the Methodology Behind the Metaverse Index](https://indexcoop.com/blog/metaverse-index-mvi-methodology)
* [IIP-15: Metaverse Index](https://gov.indexcoop.com/t/iip-15-metaverse-index/837)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Diversified Staked ETH Index (dsETH)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FZsxoiuwaQEII7wratDmS%2FdsETH-logo.png?alt=media&amp;token=ffa3ef93-b053-4eb3-9bfd-553acb7819ed" alt="" width="375"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Diversified Staked ETH Index (dsETH) is an index of the leading Ethereum liquid staking tokens.

### Fees

0.00% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x341c05c0E9b33C0E38d64de76516b2Ce970bB3BE](https://etherscan.io/token/0x341c05c0E9b33C0E38d64de76516b2Ce970bB3BE)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="307">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0xBB6134ba82192E0ab23De846f1Cae7aa9Ae383d5">BaseManagerV2</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xfcdee96d9df5b318ea0eeb39d5d7642d9afd7fda#code">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0xeafb437e9e27e63c0c21e19e6b9603999bd72d26#code">AuctionRebalanceExtension</a></td><td>connects the product to the Auction Rebalance Module; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xf0d343fd94ac44ef6b8baae8db3917d985c2cec7#code">OptimisticAuctionRebalanceExtensionV1</a></td><td>connects the product to UMA's Optimistic Oracle and the Auction Rebalance Module; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x59d55d53a715b3b4581c52098bcb4075c2941dba#code">AuctionRebalanceModule</a></td><td>used to execute auction rebalancing for the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0xfaab3f8f3678f68aa0d307b66e71b636f82c28bf#code">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Cross-chain Implementation:

* Bridging Protocol: [Chainlink CCIP](https://app.transporter.io/?from=mainnet\&tab=token\&to=arbitrum\&token=dsETH)
* Bridged Token Contract - **Arbitrum**: [0x95b11aca35D35Ac8B8A88E1F7792873BBea7CeBb](https://arbiscan.io/token/0x95b11aca35d35ac8b8a88e1f7792873bbea7cebb)
* Bridged Token Contract - **Base**: [0x37E7C051Dc5A24313cEEC581222882648ba537aa](https://basescan.org/token/0x37e7c051dc5a24313ceec581222882648ba537aa)

### Additional Resources:

* [dsETH Product Page - indexcoop.com](https://indexcoop.com/products/diversified-staked-ethereum-index)
* [dsETH Dune Dashboard](https://dune.com/index_coop/dseth)
* [Trust-minimized Reweighting for dsETH](https://indexcoop.com/blog/trust-minimized-reweight-rebalance)
* [Introducing the Diversified Staked ETH Index](https://indexcoop.com/blog/introducing-the-diversified-staked-eth-index)
* [Understanding the Diversified Staked ETH Index](https://indexcoop.com/blog/understanding-the-diversified-staked-eth-index-dseth)
* [IIP-171: Launch the Diversified Staked ETH Index](https://gov.indexcoop.com/t/iip-171-launch-the-diversified-staked-eth-index-dseth/4389)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Index Coop CoinDesk ETH Trend Index (cdETI)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FhS5TZcWoARPfFxWll6aW%2FcdETI-logo.png?alt=media&amp;token=974fa4fd-95ab-451b-a1a2-479eb85b2204" alt="" width="300"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Index Coop CoinDesk ETH Trend Index (cdETI) is an automated strategy token powered by CoinDesk Indices’ Ether Trend Indicator (ETI) designed to capitalize on ETH's price momentum.

### Fees

1.50% Streaming  |  0.10% Mint  |  0.10% Redeem

### Technical Implementation:

* Token Contract: [0x55b2CFcfe99110C773f00b023560DD9ef6C8A13B](https://etherscan.io/token/0x55b2CFcfe99110C773f00b023560DD9ef6C8A13B)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="307">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x929Bea020fbFed0CB189F89992d53780c4F39584#code">DelegatedManager</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x6029f3f247fa87cf998ddf3c91fcb54c166c254c#code">GlobalTradeExtension</a></td><td>connects the product to the Trade Module; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0xfaab3f8f3678f68aa0d307b66e71b636f82c28bf#code">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x8e422e9964881746a68ffa0f6a6163c0100f3037#code">GlobalFeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>protocol-wide contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Additional Resources:

* [cdETI Product Page - indexcoop.com](https://indexcoop.com/products/coindesk-eth-trend-index)
* [cdETI Dune Dashboard](https://dune.com/index_coop/cdeti)
* [Introducing the Index Coop CoinDesk ETH Trend Index (cdETI)](https://indexcoop.com/blog/introducing-the-index-coop-coindesk-eth-trend-index-cdeti)
* [CoinDesk Ether Trend Indicator (ETI)](https://www.coindesk.com/indices/trend-indicators)
* [IIP-178: Launch the Index Coop CoinDesk ETH Trend Index](https://gov.indexcoop.com/t/iip-178-launch-the-index-coop-coindesk-eth-trend-index-cdeti/4630)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Index Coop Large Cap Index (ic21)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FPmFBToFMr6Hb2lABDazi%2FIC21_Logo.png?alt=media&amp;token=d3198afb-b0cf-442d-a730-5c682ec0395e" alt="" width="300"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Index Coop Large Cap Index (ic21) is powered by 21.co wrapped assets and comprised of the most successful crypto projects.

### Fees

0.95% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x1B5E16C5b20Fb5EE87C61fE9Afe735Cca3B21A65](https://etherscan.io/token/0x1B5E16C5b20Fb5EE87C61fE9Afe735Cca3B21A65)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="367">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x402d19089b797D60c366Bc38a8Cff0712D2F4947#code">BaseManagerV2</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xf1872a098afa193e6f1a4307c54624f28b8e8f51">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0x94caea398acc5931b1d32c548959a160ac37ff4a#code">AuctionRebalanceExtension</a></td><td>connects the product to the Auction Rebalance Module; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x59d55d53a715b3b4581c52098bcb4075c2941dba#code">AuctionRebalanceModule</a></td><td>used to execute auction rebalancing for the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0xfaab3f8f3678f68aa0d307b66e71b636f82c28bf#code">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Additional Resources:

* [ic21 Product Page - indexcoop.com](https://indexcoop.com/products/large-cap-index-ic21)
* [ic21 Dune Dashboard](https://dune.com/index_coop/ic21)
* [Introducing the Index Coop Large Cap Index powered by 21.co Wrapped Assets](https://indexcoop.com/blog/introducing-the-index-coop-large-cap-index-ic21-powered-by-21-co-wrapped-assets)
* [IIP-177: Launch the Index Coop Large Cap Index](https://gov.indexcoop.com/t/iip-177-launch-the-index-coop-large-cap-index-ic21/4629)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# ETH 2x Flexible Leverage Index (ETH2x-FLI)

ETH2x-FLI is native to Ethereum main net

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F1nLqRGmUlhJYz9GtZKKp%2FCopy%20of%20ETH2x-FLI_token_logo.png?alt=media&amp;token=7117e109-d98a-4fdf-bbfa-153da29d7f06" alt="" width="188"></div>

### What is the ETH 2x Flexible Leverage Index (ETH2x-FLI)?

The ETH 2x Flexible Leverage Index abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. ETH2x-FLI enables you to get leveraged exposure to Ether using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks.

### What is the methodology behind ETH2x-FLI?

The methodologist behind the FLI is [Scalara](https://www.scalara.xyz/indices/fli). (Formerly Pulse Inc. - DeFi Pulse)

You can find the methodology for FLI on [indexcoop.com/ethfli](https://www.indexcoop.com/ethfli).

### FLI Resources

* Blog: [Understanding the Risks of Owning FLI Tokens](https://indexcoop.com/blog/fli-tokens-risks)
* Blog: [How Volatility Drift Affects FLI Products](https://indexcoop.com/blog/fli-volatility-drift)
* Blog: [Everything You Need to Know About FLI Product Parameters](https://indexcoop.com/blog/fli-product-parameters)
* [FLI ROI Calculator](https://fli-tokens-dashboard.vercel.app/)
* [Contract Addresses](https://docs.indexcoop.com/resources-beta/technical-overview/contract-addresses)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# BTC 2x Flexible Leverage Index (BTC2x-FLI)

BTC2x-FLI is native to Ethereum main net

Discuss in [#✈️fli-discussion](https://discord.gg/RKZ4S3b)

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MJY-enmfAw5ra2s-8QX%2F-M_S-B5iHa5YgoHpHDUu%2F-M_S0FxbC-j3M3Wx5jvL%2FBTC2x-FLI_token_logo.png?alt=media&amp;token=f1c019d3-2bec-49dc-98a6-6f7ddd7d49a2" alt="" width="188"></div>

### What is the BTC 2x Flexible Leverage Index (BTC2x-FLI)?

The BTC 2x Flexible Leverage Index abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. BTC2x-FLI enables you to get leveraged exposure to Bitcoin using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks.

### What is the methodology behind BTC2x-FLI?

The methodologist behind the BTC2x-FLI is [Scalara](https://www.scalara.xyz/indices/fli). (Formerly Pulse Inc. - DeFi Pulse)

You can find the methodology for FLI on [indexcoop.com/btcfli](https://www.indexcoop.com/btcfli)&#x20;

### FLI Resources

* Blog: [Everything You Need to Know About FLI Product Parameters](https://indexcoop.com/blog/fli-product-parameters)
* Blog: [How Volatility Drift Affects FLI Products](https://indexcoop.com/blog/fli-volatility-drift)
* Blog: [Understanding the Risks of Owning FLI Tokens](https://indexcoop.com/blog/fli-tokens-risks)
* [FLI ROI Calculator](https://fli-tokens-dashboard.vercel.app/)
* [Contract Addresses](https://docs.indexcoop.com/resources-beta/technical-overview/contract-addresses)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Bitcoin 2x Flexible Leverage Index](https://medium.com/indexcoop/introducing-the-btc-2x-flexible-leverage-index-38688749b1ab)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# Flexible Leverage Index- Polygon (FLI-Ps)

### ***Note:*** [***Support for Flexible Leverage Index on Polygon Discontinued in December 2022***](https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis)


# ETH 2x Flexible Leverage Index (ETH2x-FLI-P)

ETH2x-FLI-P is native to Polygon

Discuss in [#✈️fli-discussion](https://discord.gg/RKZ4S3b)

![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F1nLqRGmUlhJYz9GtZKKp%2FCopy%20of%20ETH2x-FLI_token_logo.png?alt=media\&token=7117e109-d98a-4fdf-bbfa-153da29d7f06)

### What is the ETH 2x Flexible Leverage Index (ETH2x-FLI-P)?

The Polygon-native version of the ETH 2x Flexible Leverage Index abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. ETH2x-FLI-P enables you to get leveraged exposure to Ether using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. ETH2x-FLI-P targets a long 2x exposure to MATIC and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind ETH2x-FLI-P?

The methodologist behind the FLI is Pulse Inc. (DeFi Pulse).

You can find the methodology for FLI on [indexcoop.com/ethflip](https://www.indexcoop.com/index-coop-eth2xfli-polygon.html) or [pulse.inc/flexible-leverage-index](https://pulse.inc/flexible-leverage-index)

### What's the difference between ETH2x-FLI and ETH2x-FLI-P?

[ETH2x-FLI](/index-coop-community-handbook/products/legacy-products/eth2x-flexible-leverage-index) is the original ETH2x product on Ethereum main net, while ETH2x-FLI-P is a distinct, Polygon-native product. You can find more information on how the two tokens are different in this article: [Differentiating the ETH2x Products](https://medium.com/indexcoop/differentiating-the-eth2x-products-3cd8e71ba11b).

### Where can I buy ETH2x-FLI-P?

* Index Coop website: [ETH2x-FLI-P](https://www.indexcoop.com/index-coop-eth2xfli-polygon.html)
* Slingshot (DEX Aggregator): [ETH2x-FLI-P](https://app.slingshot.finance/trade/m/0x3ad707da309f3845cd602059901e39c4dcd66473)
* TokenSets (Mint and Redeem): [ETH2x-FLI-P](https://www.tokensets.com/portfolio/polygon/eth2x-fli-p)

### FLI Resources

* ETH2x-FLI-P Launch Article: [Introducing the ETH 2x FLI on Polygon](https://medium.com/indexcoop/introducing-the-eth-2x-flexible-leverage-index-on-polygon-2fd0a35f914c)
* Token Contract Address (Polygon): [0x3ad707da309f3845cd602059901e39c4dcd66473](https://polygonscan.com/token/0x3ad707da309f3845cd602059901e39c4dcd66473)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# Inverse ETH Flexible Leverage Index (iETH-FLI-P)

iETH-FLI-P is native to Polygon

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FLuw5drvKSofHWT8XrRPY%2FiETH-FLI-P-512%20(pulse%20red).png?alt=media&amp;token=ce8348fc-a095-4f0e-9350-29c9c9e09945" alt="" width="188"></div>

### What is the Inverse ETH Flexible Leverage Index?

The Inverse ETH Flexible Leverage Index on Polygon abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. iETH-FLI-P enables you to get inverse exposure to ETH using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. iETH-FLI-P targets a short -1x exposure to ETH and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind iETH-FLI-P?

The methodologist behind the FLI is Scalara, formerly known as Pulse, Inc (or DeFi Pulse).

You can find the methodology for FLI on the [Index Coop site](https://indexcoop.com/polygon-inverse-imaticfli) or [scalara.xyz/indices?id=fli](https://www.scalara.xyz/indices?id=fli).

### Where can I buy iETH-FLI-P?

* Index Coop website: [iETH-FLI-P](https://indexcoop.com/polygon-inverse-iethfli)
* Slingshot (DEX Aggregator): [iETH-FLI-P](https://app.slingshot.finance/trade/m/IETH-FLI-P)
* TokenSets (Mint and Redeem): [iETH-FLI-P](https://www.tokensets.com/portfolio/polygon/ieth-fli-p)

### FLI Resources

* Launch Article: [Introducing the Inverse ETH Flexible Leverage Index](https://medium.com/indexcoop/introducing-the-inverse-eth-flexible-leverage-index-72503b108d11)
* Token Contract Address (Polygon): [0x4f025829C4B13dF652f38Abd2AB901185fF1e609](https://polygonscan.com/address/0x4f025829c4b13df652f38abd2ab901185ff1e609)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# BTC 2x Flexible Leverage Index (BTC2x-FLI-P)

BTC2x-FLI-P is native to Polygon

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fv3BO8QPlSylrmadsCt4P%2FCopy%20of%20BTC2x-FLI_token_logo.png?alt=media&amp;token=06f68fe9-3417-464f-b712-852b53f4ee41" alt="" width="188"></div>

### What is the BTC 2x Flexible Leverage Index (BTC2x-FLI-P)?

The Polygon-native version of the BTC 2x Flexible Leverage Index abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. BTC2x-FLI-P enables you to get leveraged exposure to BTC using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. BTC2x-FLI-P targets a long 2x exposure to BTC and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind BTC2x-FLI-P?

The methodologist behind the FLI is Pulse Inc. (DeFi Pulse).

You can find the methodology for FLI on [indexcoop.com/polygon-btc2xfli](https://indexcoop.com/polygon-btc2xfli) or [pulse.inc/flexible-leverage-index](https://pulse.inc/flexible-leverage-index).

### What's the difference between **BTC**2x-FLI and **BTC**2x-FLI-P?

[BTC2x-FLI](/index-coop-community-handbook/products/legacy-products/eth2x-flexible-leverage-index) is the original BTC2x product on Ethereum main net, while BTC2x-FLI-P is a distinct, Polygon-native product. You can find more information on how the two tokens are different in this article: [Differentiating the BTC2x Products](https://indexcoop.com/blog/differentiating-the-btc2x-flexible-leverage-products).

### Where can I buy BTC2x-FLI-P?

* Index Coop website: [BTC2x-FLI-P](https://indexcoop.com/polygon-btc2xfli)
* Slingshot (DEX Aggregator): [BTC2x-FLI-P](https://app.slingshot.finance/trade/m/BTC2X-FLI-P)
* TokenSets (Mint and Redeem): [BTC2x-FLI-P](https://www.tokensets.com/portfolio/polygon/btc2x-fli-p)

### FLI Resources

* BTC2x-FLI-P Launch Article: [Introducing the 2x and Inverse BTC FLIs on Polygon](https://indexcoop.com/blog/btc2x-fli-ibtc-polygon)
* Token Contract Address (Polygon): [0xd6cA869a4EC9eD2C7E618062Cdc45306d8dBBc14](https://polygonscan.com/token/0xd6ca869a4ec9ed2c7e618062cdc45306d8dbbc14)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# Inverse BTC Flexible Leverage Index (iBTC-FLI-P)

iBTC-FLI-P is native to Polygon

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FeW7Y1y1fun3C0dEXeRGC%2FiBTC-FLI-P_pulse_red.png?alt=media&amp;token=1d39927a-009b-41f0-9143-413e867b28a4" alt="" width="188"></div>

### What is the Inverse BTC Flexible Leverage Index?

The Inverse BTC Flexible Leverage Index on Polygon abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. iBTC-FLI-P enables you to get inverse exposure to BTC using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. iBTC-FLI-P targets a short -1x exposure to BTC and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind iBTC-FLI-P?

The methodologist behind the FLI is Scalara, formerly known as Pulse, Inc (or DeFi Pulse).

You can find the methodology for FLI on the [Index Coop site](https://indexcoop.com/polygon-inverse-ibtcfli) or [scalara.xyz/indices?id=fli](https://www.scalara.xyz/indices?id=fli).

### Where can I buy iBTC-FLI-P?

* Index Coop website: [iBTC-FLI-P](https://indexcoop.com/polygon-inverse-ibtcfli)
* Slingshot (DEX Aggregator): [iBTC-FLI-P](https://app.slingshot.finance/trade/m/IBTC-FLI-P)
* TokenSets (Mint and Redeem): [iBTC-FLI-P](https://www.tokensets.com/portfolio/polygon/ibtc-fli-p)

### FLI Resources

* Launch Article: [Introducing the 2x and Inverse BTC FLIs on Polygon](https://indexcoop.com/blog/btc2x-fli-ibtc-polygon)
* Token Contract Address (Polygon): [0x130cE4E4F76c2265f94a961D70618562de0bb8d2](https://polygonscan.com/token/0x130ce4e4f76c2265f94a961d70618562de0bb8d2)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# MATIC 2x Flexible Leverage Index (MATIC2x-FLI-P)

MATIC2x-FLI-P is native to Polygon

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FgDTUXrbGqAU0zXOUxPMJ%2FMATIC2x-FLI_token_logo%20(1)%20(1).png?alt=media&amp;token=adfd4ad8-41fb-4fee-ac0e-12e7b6939c30" alt="" width="188"></div>

### What is the MATIC 2x Flexible Leverage Index?

The MATIC 2x Flexible Leverage Index on Polygon abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. MATIC2x-FLI-P enables you to get leveraged exposure to MATIC using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. MATIC2x-FLI-P targets a long 2x exposure to MATIC and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind MATIC2x-FLI-P?

The methodologist behind the FLI is Scalara, formerly known as Pulse, Inc (or DeFi Pulse).

You can find the methodology for FLI on the [Index Coop site](https://indexcoop.com/polygon-flexible-leverage-index-matic2xfli) or [scalara.xyz/indices?id=fli](https://www.scalara.xyz/indices?id=fli).

### Where can I buy MATIC2x-FLI-P?

* Index Coop website: [MATIC2x-FLI-P](https://indexcoop.com/polygon-flexible-leverage-index-matic2xfli)
* Slingshot (DEX Aggregator): [MATIC2x-FLI-P](https://app.slingshot.finance/trade/m/MATIC2X-FLI-P)
* TokenSets (Mint and Redeem): [MATIC2x-FLI-P](https://www.tokensets.com/portfolio/polygon/matic2x-fli-p)

### FLI Resources

* Launch Article: [Introducing the 2x and Inverse MATIC FLIs](https://medium.com/indexcoop/introducing-the-2x-and-inverse-matic-flexible-leverage-indices-52a87d3eadd2)
* Token Contract Address (Polygon): [0xf287D97B6345bad3D88856b26Fb7c0ab3F2C7976](https://polygonscan.com/address/0xf287d97b6345bad3d88856b26fb7c0ab3f2c7976)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# Inverse MATIC Flexible Leverage Index (iMATIC-FLI-P)

iMATIC-FLI-P is native to Polygon.

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FvdcS0aMHLBuQ6xAD5Pz1%2FiMATIC-FLI-P-512%20(pulse%20red).png?alt=media&amp;token=78522139-0279-43c1-a11b-3e101ad220a2" alt="" width="188"></div>

### What is the Inverse MATIC Flexible Leverage Index?

The Inverse MATIC Flexible Leverage Index on Polygon abstracts collateralized debt management into a simple index, reproducible by an ERC20 token built on Set Protocol. iMATIC-FLI-P enables you to get inverse exposure to MATIC using collateralized debt, without having to manage collateralized debt positions or monitor liquidation risks. iMATIC-FLI-P targets a short -1x exposure to MATIC and employs a flexible leverage mechanism for optimal rebalancing outcomes.

### What is the methodology behind iMATIC-FLI-P?

The methodologist behind the FLI is Scalara, formerly known as Pulse, Inc (or DeFi Pulse).

You can find the methodology for FLI on the [Index Coop site](https://indexcoop.com/polygon-inverse-imaticfli) or [scalara.xyz/indices?id=fli](https://www.scalara.xyz/indices?id=fli).

### Where can I buy iMATIC-FLI-P?

* Index Coop website: [iMATIC-FLI-P](https://indexcoop.com/polygon-inverse-imaticfli)
* Slingshot (DEX Aggregator): [iMATIC-FLI-P](https://app.slingshot.finance/trade/m/iMATIC-FLI-P)
* TokenSets (Mint and Redeem): [iMATIC-FLI-P](https://www.tokensets.com/portfolio/polygon/imatic-fli-p)

### FLI Resources

* Launch Article: [Introducing the 2x and Inverse MATIC FLIs](https://medium.com/indexcoop/introducing-the-2x-and-inverse-matic-flexible-leverage-indices-52a87d3eadd2)
* Token Contract Address (Polygon): [0x340f412860dA7b7823df372a2b59Ff78b7ae6abc](https://polygonscan.com/address/0x340f412860da7b7823df372a2b59ff78b7ae6abc)
* Medium: [Understanding the Risks of Owning FLI Tokens](https://medium.com/indexcoop/understanding-the-risks-of-owning-fli-tokens-cd0468843496)
* Medium: [How Volatility Drift Affects FLI Products](https://medium.com/indexcoop/how-volatility-decay-affects-fli-products-a10f94977da5)
* Medium: [Everything You Need to Know About FLI Product Parameters](https://medium.com/indexcoop/everything-you-need-to-know-about-fli-product-parameters-56dc2c26b0ab)

### Learn More

* TokenSets - [FAQs](https://help.tokensets.com/en/articles/5049454-eth2x-fli-faqs)
* CoinGecko Research
  * [Part 1: Introduction to Crypto Leveraged ETF](https://www.coingecko.com/buzz/part-1-introduction-to-crypto-leveraged-etf)
  * [Part 2: Deep Dive into Decentralized Leveraged ETFs](https://www.coingecko.com/buzz/part-2-deep-dive-into-decentralized-leveraged-etfs)
* Index Coop: [Introducing the Flexible Leverage Index (FLI), by Pulse Inc](https://medium.com/indexcoop/introducing-the-flexible-leverage-index-fli-by-pulse-inc-a369bd422ef)
* Pulse Inc: [Introducing the Flexible Leverage Index](https://pulseinc.medium.com/introducing-the-flexible-leverage-index-5ec90f2381ce)
* View from the Nest \[starts at 18:35] - [Audio interview with Scott Lewis of DeFi Pulse](https://indexcoop.substack.com/p/view-from-the-nest-podcast-4)


# Market Neutral Yield ETH (MNYe)

MNYe is native to the Optimism Layer 2 Ethereum rollup.

### ***Note:*** [***Support for MNYE Discontinued in December 2022***](https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis)

### What is Market Neutral Yield ETH (MNYe)?

The  Market Neutral Yield ETH (MNYe) token automates a continuous basis trading strategy that returns a high, price-neutral yield to token holders. Built using Set’s integration with Perpetual Protocol on Optimism, MNYe contains a fully-hedged ETH position, with equivalent spot exposure and short exposure via perpetuals. Token holders earn a variable USDC return when the funding rate is positive.

### How does MNYe create yield?

Basis trading, also known as [cash and carry arbitrage](https://www.investopedia.com/terms/c/cash-and-carry-arbitrage.asp), is an established strategy for achieving price-neutral yield by arbitraging the difference between an asset price on the spot market and the near-term futures markets. In defi, perpetual swaps – also called perpetuals or perps – can be used in lieu of futures.&#x20;

First implemented by BitMEX, perpetuals are futures with no settlement date. The yield is derived from a funding payment paid periodically between long and short perpetuals in order to incentivize the peg to the spot price. By convention, when the funding rate is positive, the perpetual market maker makes a payment from the long to the short holders, and vice versa when the funding rate is negative.&#x20;

MNYe takes simultaneous spot long and short perpetual ETH positions and derives yield from the funding payment to the short position. By taking a fully hedged position, the product has no net asset price exposure. MNYe uses a 1x ETH spot position and a -1x short ETH perpetual settled in USDC. The yield is further enhanced by weekly auto-compounding when the USDC funding balance is positive. The yield is used to maintain a leveraged position between -0.95x and -2x.

### What is the potential yield?

The APY is projected to be 10-20% based on backtesting results and current performance. Additionally, the funding rates and APRs can be seen on [r72.fi](https://www.r72.fi/derivative/perpetual_protocol/ETH%3AUSD?period=3600) and [perp.fi](https://app.perp.com/markets/ETH:USD). Note that the funding rates and APRs do not take into account compounding and the leverage ratio.

### What is the methodology behind MNYe?

MNYe uses an in-house Index Coop methodology. Find out more [here](https://gov.indexcoop.com/t/iip-144-dg-launch-the-basis-trading-product-suite-basis-eth-et-al/4014).

### Where can I acquire MNYe?&#x20;

* Buy / Sell
  * Index Coop website (non-U.S. only \[Efficient for small trades]): [MNYe](https://indexcoop.com/market-neutral-yield-index-mnye)
  * Uniswap: [MNYe](https://app.uniswap.org/#/swap?chain=optimism)
* Mint / Redeem
  * Index Coop website (non-U.S. only \[Efficient for large trades]): [MNYe](http://app.indexcoop.com/MNYe)

### MNYe Resources

* LP on  [Uni V3 Pool](https://info.uniswap.org/#/optimism/pools/0x926c2aeed9b4c10a025c3605dbc2953834ba2a8a)
* LP on [Arrakis](https://beta.arrakis.finance/vaults/10/0x94AF0AD22515E2A1C3af2390A185EC92b4EC77C5)
* [MNYe](https://www.coingecko.com/en/coins/eth-market-neutral-yield) on CoinGecko
* Read the [forum post](https://gov.indexcoop.com/t/iip-144-dg-launch-the-basis-trading-product-suite-basis-eth-et-al/) &#x20;
* Review the [analytics](https://dune.com/indexcoop/MNYe)&#x20;
* [Contract Addresses](https://optimistic.etherscan.io/address/0x0be27c140f9bdad3474beaff0a413ec7e19e9b93)&#x20;

### Learn More&#x20;

* Index Coop: [Introducing the Market Neutral Yield ETH ($MNYe) Token](https://indexcoop.com/blog/market-neutral-yield-mnye-token)
* Index Coop: [Understanding the Market Neutral Yield ETH (MNYe) Token](https://indexcoop.com/blog/understanding-mnye)
* Index Coop: [How to earn additional yield by minting MNYe tokens and LPing](https://indexcoop.com/blog/earn-yield-by-minting-mnye-tokens-and-lping)


# Bankless DeFi Innovation Index (GMI)

The Bankless DeFi Innovation Index is a simple composite index including promising early stage DeFi projects which are not yet considered “blue chip.”

### ***Note:*** [***Support for GMI Discontinued in December 2022***](https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis)

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FQWY7HwO81gR3wyJ5Xw9b%2FGMI_LOGO-07.png?alt=media&amp;token=b1fea1a4-16d0-404d-b80c-55c0f4c0d87d" alt="" width="188"></div>

### What is GMI?

The Bankless DeFi Innovation Index (GMI) is a simple composite index launched by the Index Cooperative. The index focuses on high growth, early stage DeFi projects which are not yet considered “blue chip”. GMI produces an optimal weighting via the use of a combination of square-root market cap, relative secondary market liquidity, and relative token dilution/emission scoring.

### Where can I redeem GMI?

* [Index Coop app site](https://legacyproducts.indexcoop.com/) - Legacy Products
* [TokenSets ](https://www.tokensets.com/portfolio/gmi)(Mint / Redeem via Exchange Issuance Module) \[Slippage efficient]
* BitGo
* Argent - (Sell Only)

### What is the methodology behind GMI?

The methodologists behind GMI are BanklessDAO and Lemonade Alpha of Index Coop. You can learn more about GMI methodology and underlying tokens here on the [**Index Coop website**](https://indexcoop.com/bankless-defi-innovation-index-gmi)**.**

{% embed url="<https://indexcoop.com/bankless-defi-innovation-index-gmi>" %}

### Frequently Asked Questions

<details>

<summary>Can I LP GMI?</summary>

Yes, on UniSwap V3 or SushiSwap.

</details>

<details>

<summary>What are the contract addresses for GMI?</summary>

Ethereum: 0x47110d43175f7f2C2425E7d15792acC5817EB44f

Polygon:[ 0x7fb27ee135db455de5ab1ccec66a24cbc82e712d](https://polygonscan.com/token/0x7fb27ee135db455de5ab1ccec66a24cbc82e712d)

</details>

<details>

<summary>Is GMI <strong>on any Layer 2?</strong></summary>

Yes. It is on Polygon (MATIC) and zkSync.

</details>

<details>

<summary>Where can I stake GMI?</summary>

Nowhere, currently.

</details>

<details>

<summary>Can I redeem the underlying tokens of GMI?</summary>

All of our indices are fully collateralized and redeemable at any time for the underlying assets. Meaning in GMI you’d receive X% CVX, TRIBE, etc.

Learn more [here](https://docs.tokensets.com/investors/issue-and-redeem-sets).&#x20;

</details>

<details>

<summary>What is the fee split for GMI?</summary>

60% Index Coop / 40% methodologist

</details>

<details>

<summary>When/how often will GMI rebalance?</summary>

Bimonthly, GMI rebalances based on the methodologist criteria. Learn more [here](https://indexcoop.com/blog/automatic-rebalancing).

</details>

<details>

<summary>Are there any liquidity mining incentives for GMI?</summary>

No.

</details>

### Important Links

[GMI Product Dashboard](https://dune.xyz/indexcoop/GMI)

[Introducing $GMI Bankless DeFi Innovation Index](https://indexcoop.com/blog/gmi-bankless-defi-innovation-index)

[IIP-102 DG2 - Launch the Bankless DeFi Innovation Index | $GMI](https://gov.indexcoop.com/t/iip-102-dg2-launch-the-bankless-defi-innovation-index-gmi/3357)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) and search for the **#GMI channel** in the **Products** category. This is the fastest way to have a real person answer any questions you have.


# Data Economy Index (DATA)

The Data Economy is an ecosystem of data-based products and services.

### ***Note:*** [***Support for DATA Discontinued in December 2022***](https://indexcoop.com/blog/deprecation-of-data-gmi-mnye-and-polygon-flis)

<div align="left"><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FqBJa0720wKWJdF1YmuhB%2FDATA-Brand-Identificator-FLOC-1_Mesa%20de%20trabajo%201%20copia%205.png?alt=media&amp;token=7d22f3a6-e189-42fb-b905-e8ff0a14ae0b" alt="" width="188"></div>

### What is the Data Economy Index token (DATA)?

The DATA index is a basket of 7 tokens designed to provide accessible, passive exposure to the second largest Web3 sector, the data economy. The data economy is a digital ecosystem for collecting, storing, and selling data.

### Where can I redeem DATA?

* [TokenSets](https://www.tokensets.com/v2/set/0x33d63Ba1E57E54779F7dDAeaA7109349344cf5F1) (Mint / Redeem via Exchange Issuance Module) \[Slippage efficient]
* BitGo
* Argent (Sell Only)

### What is the methodology behind **DATA**?

The methodologists behind DATA are he [Titans of Data](https://www.titansofdata.org/) (Thomas Hepner and Kiba Gateaux). You can read more about DATA methodology and underlying tokens here on the [**Index Coop website**](https://indexcoop.com/data-economy-index)**.**

{% embed url="<https://indexcoop.com/data-economy-index>" %}

### Frequently Asked Questions

<details>

<summary>Can I LP DATA?</summary>

Yes, on UniSwap V3 or SushiSwap.

</details>

<details>

<summary>What are the contract addresses for DATA?</summary>

Ethereum: [0x33d63ba1e57e54779f7ddaeaa7109349344cf5f1](https://etherscan.io/token/0x33d63ba1e57e54779f7ddaeaa7109349344cf5f1)

Polygon: [0x1D607Faa0A51518a7728580C238d912747e71F7a](https://polygonscan.com/token/0x1D607Faa0A51518a7728580C238d912747e71F7a)

</details>

<details>

<summary>Is DATA <strong>on any Layer 2?</strong></summary>

Yes. It is on Polygon (MATIC) and zkSync.

</details>

<details>

<summary>Where can I stake DATA?</summary>

Nowhere, currently.

</details>

<details>

<summary>Can I redeem the underlying tokens of DATA?</summary>

All of our indices are fully collateralized and redeemable at any time for the underlying assets. Meaning in DATA you’d receive X% LINK, ENS, etc.

Learn more [here](https://docs.tokensets.com/investors/issue-and-redeem-sets).&#x20;

</details>

<details>

<summary>What is the fee split for DATA?</summary>

70% Index Coop / 30% methodologist

</details>

<details>

<summary>When/how often will DATA rebalance?</summary>

Rebalances occur quarterly based on DATA criteria. Learn more [here](https://indexcoop.com/blog/automatic-rebalancing).

</details>

<details>

<summary>Are there any liquidity mining incentives for DATA?</summary>

No.

</details>

### Important Links

* [An Introduction to the Data Economy](https://medium.com/indexcoop/an-introduction-to-the-data-economy-2fb110d72041)
* [Beginners Guide to Data Economy Index](https://medium.com/indexcoop/beginners-guide-to-data-economy-index-data-f19deb999688)
* [Investing in the Future of the Data Economy](https://medium.com/indexcoop/investing-in-the-future-of-the-data-economy-c6214cbe0be5)
* [IIP-55: Data Economy Index (DATA)](https://gov.indexcoop.com/t/iip-55-data-economy-index-data/1894)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) and search for the **#DATA channel** in the **Products** category. This is the fastest way to have a real person answer any questions you have.


# Legacy Contract Addresses

### Web3 Data Economy Index (DATA)

<table><thead><tr><th width="258.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>DATA Token</td><td><a href="https://etherscan.io/address/0x33d63ba1e57e54779f7ddaeaa7109349344cf5f1">0x33d63Ba1E57E54779F7dDAeaA7109349344cf5F1</a></td></tr><tr><td>DATA Manager</td><td><a href="https://etherscan.io/address/0xa420cf4e06cf28dafbdb436ac444920634f1c766">0xA420cf4E06CF28daFbdb436AC444920634f1C766</a></td></tr><tr><td>Set General Index Module</td><td><a href="https://etherscan.io/address/0x84ce03ae547330f61584ad6103743732b1ae97c5">0x84cE03AE547330f61584aD6103743732B1AE97C5</a></td></tr><tr><td>Flash Mint ZeroEx</td><td><a href="https://etherscan.io/address/0xf42ecdc112365ff79a745b4cf7d4c266bd6e4b25">0xf42eCDC112365fF79a745B4cf7D4C266bd6E4b25</a></td></tr></tbody></table>

### Bankless DeFi Innovation Index (GMI)

<table><thead><tr><th width="263.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>GMI Token</td><td><a href="https://etherscan.io/address/0x47110d43175f7f2c2425e7d15792acc5817eb44f">0x47110d43175f7f2c2425e7d15792acc5817eb44f</a></td></tr><tr><td>GMI Manager</td><td><a href="https://etherscan.io/address/0x4039703deb28748dbf155f8567fb5f0ca2ddd742">0x4039703deb28748DbF155F8567fb5f0CA2dDD742</a></td></tr><tr><td>Set General Index Module</td><td><a href="https://etherscan.io/address/0x84ce03ae547330f61584ad6103743732b1ae97c5">0x84cE03AE547330f61584aD6103743732B1AE97C5</a></td></tr><tr><td>Flash Mint ZeroEx</td><td><a href="https://etherscan.io/address/0xf42ecdc112365ff79a745b4cf7d4c266bd6e4b25">0xf42eCDC112365fF79a745B4cf7D4C266bd6E4b25</a></td></tr></tbody></table>

### ETH 2x Flexible Leverage Index (ETH2x-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="307.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>ETH2x-FLI-P Token</td><td><a href="https://polygonscan.com/address/0x3ad707da309f3845cd602059901e39c4dcd66473">0x3Ad707dA309f3845cd602059901E39C4dcd66473</a></td></tr><tr><td>ETH2x-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0x2622c4bb67992356b3826b5034bb2c7e949ab12b">0x2622c4BB67992356B3826b5034bB2C7e949ab12B</a></td></tr><tr><td>ETH2x-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0xb97F5a34696adf30db822612379235c3c53B714A">0xb97F5a34696adf30db822612379235c3c53B714A</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>

### **Inverse ETH** Flexible Leverage Index (iETH-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="292.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>iETH-FLI-P Token</td><td><a href="https://polygonscan.com/address/0x4f025829c4b13df652f38abd2ab901185ff1e609">0x4f025829C4B13dF652f38Abd2AB901185fF1e609</a></td></tr><tr><td>iETH-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0xc4a1bfbce706dc638268085335cef2398ecec23c">0xc4A1bfbCE706dc638268085335CeF2398ECec23c</a></td></tr><tr><td>iETH-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0x70e86d6b6a99a573f3db765d1dbdf9e35ef5eba9">0x70E86d6b6a99a573F3Db765D1DBdf9e35ef5EBa9</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>

### BTC 2x Flexible Leverage Index (BTC2x-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="305.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>BTC2x-FLI-P Token</td><td><a href="https://polygonscan.com/address/0xd6ca869a4ec9ed2c7e618062cdc45306d8dbbc14">0xd6cA869a4EC9eD2C7E618062Cdc45306d8dBBc14</a></td></tr><tr><td>BTC2x-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0x76fe46c9fe6317f73e7fef31346473652eebf3fa">0x76fe46c9fe6317f73e7fef31346473652eebf3fa</a></td></tr><tr><td>BTC2x-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0x3885f88a5bb0791169e80ec5821174976aad7f0a">0x3885F88a5BB0791169e80ec5821174976AAd7f0a</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>

### Inverse BTC Flexible Leverage Index (iBTC-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="305.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>iBTC-FLI-P Token</td><td><a href="https://polygonscan.com/address/0x130ce4e4f76c2265f94a961d70618562de0bb8d2">0x130cE4E4F76c2265f94a961D70618562de0bb8d2</a></td></tr><tr><td>iBTC-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0xf41acb71f9af89546c133944141b400168fe2da1">0xf41acb71f9af89546c133944141b400168fe2da1</a></td></tr><tr><td>iBTC-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0x3bd4ca36a513da012fa77bc471e35f844425a0af">0x3bd4ca36a513da012fa77bc471e35f844425a0af</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>

### MATIC 2x Flexible Leverage Index (MATIC2x-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="305.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>MATIC2x-FLI-P Token</td><td><a href="https://polygonscan.com/address/0xf287d97b6345bad3d88856b26fb7c0ab3f2c7976">0xf287D97B6345bad3D88856b26Fb7c0ab3F2C7976</a></td></tr><tr><td>MATIC2x-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0x0bd75d6efe664991cab603d140375b2f4f70dd70">0x0bd75d6efe664991cab603d140375b2f4f70dd70</a></td></tr><tr><td>MATIC2x-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0x31459836b4f19c84ec004b92aef6b00f7490da52">0x31459836b4f19c84ec004b92aef6b00f7490da52</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>

### Inverse MATIC Flexible Leverage Index (iMATIC-FLI-P)

this product is native to **Polygon**

<table><thead><tr><th width="312.6172506738544">Contract</th><th width="542">Address</th></tr></thead><tbody><tr><td>iMATIC-FLI-P Token</td><td><a href="https://polygonscan.com/address/0x340f412860da7b7823df372a2b59ff78b7ae6abc">0x340f412860dA7b7823df372a2b59Ff78b7ae6abc</a></td></tr><tr><td>iMATIC-FLI-P Manager</td><td><a href="https://polygonscan.com/address/0x9c4218b515d39d20b7e1b6074418aef4c0eaef71">0x9c4218b515d39d20b7e1b6074418aef4c0eaef71</a></td></tr><tr><td>iMATIC-FLI-P Strategy Extension</td><td><a href="https://polygonscan.com/address/0xe7ca688c8ac7f7225aa0ff0169115f6b5827b045">0xe7ca688c8ac7f7225aa0ff0169115f6b5827b045</a></td></tr><tr><td>Flash Mint Leveraged</td><td><a href="https://polygonscan.com/address/0xe86636f23b502b8746a72a1ed87d65f096e419db">0xE86636f23B502B8746A72A1Ed87d65F096E419Db</a></td></tr></tbody></table>


# Money Market Index (icSMMT)

A stablecoin-denominated yield product that provides diversified exposure to the top money market yields in DeFi.

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FHbxCODl4OfPtACYeXQ3F%2FMMI-token-logoStandard.png?alt=media&amp;token=21a6330a-cf69-4861-b28e-00dca81e1552" alt="" width="150"><figcaption></figcaption></figure></div>

***The Index Coop Money Market Index (icSMMT) is designed for large purchasers. We suggest a minimum purchase of $500,000.***

### What is the Money Market Index (icSMMT)? <a href="#what-is-the-defi-pulse-index-dpi" id="what-is-the-defi-pulse-index-dpi"></a>

The Money Market Index ($icSMMT) is an index token of the top stablecoins distributed across variable-rate, peer-to-peer, and fixed-rate lending positions on Ethereum main net. Within the index, USDC, DAI, and USDT are deposited into the most battle-tested money market protocols: Morpho, Notional, Aave v2, and Compound. The composition is defined by a methodology that sets equal weights for each stablecoin and determines which protocols to deposit to based on historical rate data.

### How can I buy icSMMT? <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

* ​[Index Coop - FlashMint​](https://app.indexcoop.com/icsmmt)

### What is the methodology behind the Money Market Index? <a href="#what-is-the-methodology-behind-dpi" id="what-is-the-methodology-behind-dpi"></a>

The objective of the Money Market Index is to enable token holders to access sustainable stablecoin yields through a single token by building on the most battle-tested money market protocols. Stablecoins that pass the inclusion criteria are equally weighted within the index, resulting in a balanced composition of USDC, DAI, and USDT at launch. Distribution across protocols is determined by comparing Base APYs using a 180 DMA for all protocols that meet the inclusion criteria; this measurement excludes incentives or non-stablecoin rewards in order to determine “real yield” per position. Each stablecoin is then split evenly between the two highest-yielding positions across two distinct protocols.

### Important Links <a href="#important-links" id="important-links"></a>

* Fact Sheet
* [Dune Analytics](https://dune.com/index_coop/money-market-index)
* [Introducing the Money Market Index](https://indexcoop.com/blog/introducing-the-money-market-index-icsmmt)
* [Money Market Index - FAQ](https://indexcoop.com/blog/money-market-index-icsmmt-faq)

### Contact Us <a href="#contact-us" id="contact-us"></a>

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) and get in contact with us. This is the fastest way to have a real person answer any questions you have.


# NFT Index Token (JPG)

[NFT Index Token (JPG)](https://moonrock.org/jpg)

Management transferred from [Index Coop → Moonrock in 2022](https://indexcoop.com/blog/jpg-nft-index-jpg-and-collectooors-moving-from-index-coop-to-moonrock)


# CoinShares Gold Index (CGI)

⚠️Deprecated in May 2021: [IIP-43](https://snapshot.org/#/index-coop.eth/proposal/QmWTBBjj4cty1rmVuyujjV1hvNVVCBQaHbx3FSxKkEfD4R) ⚠️

### What is the CoinShares Gold Index token (CGI)?

[**The CoinShares Gold Index**](https://www.indexcoop.com/cgi) is a low-volatility index that utilises the concept of volatility harvesting through (a) forming an equally weighted basket of bitcoin and ether and (b) combining it with gold using weighted-risk contribution as a rebalancing mechanism. By decreasing volatility levels, it seeks to yield superior risk-adjusted returns when compared to a number of alternative strategies, including holding cryptoassets or gold alone.

### What is the methodology behind CGI?

The methodologist behind CGI is [CoinShares](https://coinshares.com/) (The CoinShares Group).&#x20;

You can find the methodology for CGI on [indexcoop.com/cgi](https://www.indexcoop.com/cgi)

### Where can I buy the CoinShares Gold Index token?

* Due to insufficient demand, the CGI product is currently being deprecated.

### CGI Resources

* Contract address: [0xAdA0A1202462085999652Dc5310a7A9e2BF3eD42](https://etherscan.io/address/0xada0a1202462085999652dc5310a7a9e2bf3ed42)
* Dune Analytics - [OverAnalyser's Dashboard](https://explore.duneanalytics.com/dashboard/overanalysers-indexcoop-dashboard)
* [IIP-07 CoinShares Gold and Cryptoassets Index Lite Version (CGCI-LV) ](https://gov.indexcoop.com/t/iip-7-coinshares-gold-and-cryptoassets-index-lite-version-cgci-lv/242)- Index Coop Forum
* [CoinShares Releases DeFi Index Token for Institutional Investors](https://www.coindesk.com/coinshares-releases-defi-index-token-for-institutional-investors) - Coindesk
* [Asset Management is Going Digital, DeFi is Powering the Change](https://coinshares.com/insights/asset-management-is-going-digital) - Coinshares


# Gitcoin Staked ETH Index (gtcETH)

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FbIgmJz1tCJFzNS5OQoUy%2FgtcETH-token-logo.png?alt=media&amp;token=dddb0ed2-0f5b-43a0-8766-f6df2b8c30ab" alt="" width="251"><figcaption></figcaption></figure></div>

### Description <a href="#where-can-i-buy-dpi" id="where-can-i-buy-dpi"></a>

The Gitcoin Staked ETH Index (gtcETH) is an index token of the leading Ethereum liquid staking tokens. Fees are directed towards Gitcoin public goods funding.

### Fees

2.00% Streaming  |  0.00% Mint  |  0.00% Redeem

### Technical Implementation:

* Token Contract: [0x36c833Eed0D376f75D1ff9dFDeE260191336065e](https://etherscan.io/address/0x36c833eed0d376f75d1ff9dfdee260191336065e)
* Protocol: [Index Protocol V1](/index-coop-community-handbook/protocol/index-protocol) (Ethereum)
* Smart Contract Apparatus:

<table data-header-hidden><thead><tr><th width="307">Contract</th><th width="472">Description</th></tr></thead><tbody><tr><td>Contract</td><td>Description</td></tr><tr><td><a href="https://etherscan.io/address/0x2eb7200Dff5b21b3a823074725ED7B035446016a#code">BaseManagerV2</a></td><td>used to operate, rebalance, and update contracts connected to the product; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0xa8a23b678e8b184f653ee8ee9dcbaa933c2cfaec">FeeSplitExtension</a></td><td><p>connects the product to the Streaming Fee Module;</p><p>product-specific contract</p></td></tr><tr><td><a href="https://etherscan.io/address/0xacce49759e2e98b44de01be2498537c37f2597dc#code">AuctionRebalanceExtension</a></td><td>connects the product to the Auction Rebalance Module; product-specific contract</td></tr><tr><td><a href="https://etherscan.io/address/0x59d55d53a715b3b4581c52098bcb4075c2941dba#code">AuctionRebalanceModule</a></td><td>used to execute auction rebalancing for the product; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0xfaab3f8f3678f68aa0d307b66e71b636f82c28bf#code">TradeModule</a></td><td>used for trading product components against DEXs; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3">DebtIssuanceModuleV2_1</a></td><td>used to issue and redeem units of the product token; protocol-wide contract</td></tr><tr><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">StreamingFeeModule</a></td><td>used to charge and update fees on the product; protocol-wide contract</td></tr></tbody></table>

### Additional Resources:

* [gtcETH Product Page - indexcoop.com](https://indexcoop.com/products/gitcoin-staked-ethereum-index)
* [gtcETH Dune Dashboard](https://dune.com/index_coop/gitcoin-staked-eth-index)
* [Introducing the Gitcoin Staked ETH Index](https://indexcoop.com/blog/introducing-the-gitcoin-staked-eth-index-gtceth)
* [IIP-173: Launch the Diversified Staked ETH Index](https://gov.indexcoop.com/t/iip-173-launch-the-gitcoin-staked-eth-index-gtceth/4508)

### Contact Us

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Index Protocol

Index Protocol is an EVM-based protocol that enables asset management strategies by translating them into ERC-20 tokens. It is a [good-faith fork](https://gov.indexcoop.com/t/index-coop-set-next-steps/4367) of Set Protocol v2 and will be the primary platform for Index Coop products beginning in 2023. In contrast to Set Protocol v2, Index Protocol is not currently intended to be a self-service platform for third parties to launch products permissionlessly; rather, it exists to support secure and accessible structured products launched by Index Coop and its partners.

The following Index Coop products have been deployed on Index Protocol:

* [High Yield ETH Index ($hyETH)](/index-coop-community-handbook/products/earn/high-yield-eth-index-hyeth)
* [Diversified Staked ETH Index ($dsETH)](/index-coop-community-handbook/products/legacy-products/diversified-staked-eth-index-dseth)
* [Gitcoin Staked ETH Index ($gtcETH)](/index-coop-community-handbook/products/legacy-products/gitcoin-staked-eth-index-gtceth)
* [Index Coop Large Cap Index ($ic21)](/index-coop-community-handbook/products/legacy-products/index-coop-large-cap-index-ic21)
* [CoinDesk ETH Trend Index ($cdETI)](/index-coop-community-handbook/products/legacy-products/index-coop-coindesk-eth-trend-index-cdeti)
* [Index Coop Ethereum 2x Index ($ETH2x)](/index-coop-community-handbook/products/trade)
* [Index Coop Bitcoin 2x Index ($BTC2x)](/index-coop-community-handbook/products/trade)

Index Protocol employs a modular architecture comprised of core contracts, modules, adapters, and ancillary contracts. Product-specific contracts (like `SetToken`, `BaseManagerv2`, `FeeSplitExtension`) rely on general-purpose or global contracts and resources (like `DebtIssuanceModuleV2`, `StreamingFeeModule`, `IntegrationRegistry`) for complete functionality.

## [Core Contracts](/index-coop-community-handbook/protocol/index-protocol/core-contracts)

perform critical functions for the protocol like verifying permissions and enabling general-purpose resources

<table data-header-hidden><thead><tr><th width="202.33333333333331"></th><th width="421"></th><th></th></tr></thead><tbody><tr><td>Contract</td><td>Description</td><td>Link</td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token">SetToken</a></td><td>ERC20 Token contract that allows privileged modules to make modifications to its positions and invoke function calls; deployed on a per-product basis</td><td><a href="https://github.com/IndexCoop/index-protocol/blob/master/contracts/protocol/SetToken.sol">Github</a>*</td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token-creator">SetTokenCreator</a></td><td>Factory contract that is enabled by the controller to create and register new SetTokens</td><td><a href="https://github.com/IndexCoop/index-protocol/blob/master/contracts/protocol/SetTokenCreator.sol">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/controller">Controller</a></td><td>contract that registers protocol contracts such as products, modules, factories, price oracles, and other resources</td><td><a href="https://etherscan.io/address/0xd2463675a099101e36d85278494268261a66603a">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry">IntegrationRegistry</a></td><td>contract that holds state relating to modules and the integrations they are connected with</td><td><a href="https://etherscan.io/address/0xb9083dee5e8273e54b9db4c31ba9d4ab7c6b28d3">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/price-oracle">PriceOracle</a></td><td>contract that returns the price for any given asset pair; price is retrieved either directly from an oracle, calculated using common asset pairs, or uses external data to calculate price</td><td><a href="https://github.com/IndexCoop/index-protocol/blob/master/contracts/protocol/PriceOracle.sol">Github</a>*</td></tr><tr><td>BaseManagerV2</td><td>Manager contract that contains permissions and administrative functionality for a SetToken; deployed on a per-product basis</td><td><a href="https://github.com/IndexCoop/index-coop-smart-contracts/blob/master/contracts/manager/BaseManagerV2.sol">Github</a>*</td></tr></tbody></table>

\* source code linked for contracts that may have many different instances on-chain&#x20;

## [Modules](#modules)

extend setToken functionality by adding fees, enabling composability, and accessing DeFi services; modules can be considered general purpose, or usable by multiple products at once

<table data-header-hidden><thead><tr><th width="231.33333333333331"></th><th width="394"></th><th></th></tr></thead><tbody><tr><td>Module</td><td>Description</td><td>Link</td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/debt-issuance-module-v2">DebtIssuanceModuleV2</a></td><td>enables users to issue and redeem SetTokens that contain default and external positions, including–but not limited to–debt positions</td><td><a href="https://etherscan.io/address/0xa0a98eb7af028be00d04e46e1316808a62a8fd59#code">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/trade-module">TradeModule</a></td><td>enables SetTokens to perform atomic trades using DEXs or DEX aggregators; integration mappings are stored on the IntegrationRegistry contract</td><td><a href="https://etherscan.io/address/0xFaAB3F8f3678f68AA0d307B66e71b636F82C28BF">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/streaming-fee-module">StreamingFeeModule</a></td><td>accrues streaming fees for managers; streaming fees are denominated as percent per year and realized as inflation rewarded to the manager</td><td><a href="https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186">Etherscan</a></td></tr><tr><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/airdrop-module">AirdropModule</a></td><td>enables manager to absorb tokens sent to the SetToken into the token's positions</td><td><a href="https://etherscan.io/address/0x09b9e7c7e2daf40fCb286fE6b863e517d5d5c40F">Etherscan</a></td></tr><tr><td>NotionalTradeModule</td><td>enables trading, issuance, and redemption of Notional fCash positions; compatible with ERC20-wrapped fCash assets</td><td><a href="https://etherscan.io/address/0x600d9950c6ecAef98Cc42fa207E92397A6c43416">Etherscan</a></td></tr></tbody></table>

## Adapters

interface with external protocols and used by modules to gather and validate transaction parameters

<table data-header-hidden><thead><tr><th width="217"></th><th width="386.3333333333333"></th><th></th></tr></thead><tbody><tr><td>Adapter</td><td>Description</td><td>Link</td></tr><tr><td>0x API Adapter</td><td>Exchange Adapter for 0x API that returns data for swaps</td><td><a href="https://etherscan.io/address/0xD7A4244f3A17468F7b0568d6A43fdE94b11c9C11">Etherscan</a></td></tr><tr><td>Curve stETH Exchange Adapter</td><td>Exchange Adapter for Curve specialized for stETH/ETH exchange contracts </td><td><a href="https://etherscan.io/address/0x79530caA46b1bB1CDd1B19e418af4d7347c5FCDF">Etherscan</a></td></tr><tr><td>Synthetix Exchange Adapter</td><td>Exchange Adapter for Synthetix that returns data for swaps</td><td><a href="https://etherscan.io/address/0x64177fd4dFad1a6CFf95E1ebba403bB73c6A8E41">Etherscan</a></td></tr><tr><td>Uniswap v2 Exchange Adapter v2</td><td>Exchange Adapter for Uniswap v2 that returns data for swaps</td><td><a href="https://etherscan.io/address/0x0F5C21d4929f6F17119f43b0c51E665f12367A19">Etherscan</a></td></tr><tr><td>Uniswap v3 Exchange Adapter v2</td><td>Exchange Adapter for Uniswap v3 that returns data for swaps</td><td><a href="https://etherscan.io/address/0xe6382D2D44402Bad8a03F11170032aBCF1Df1102">Etherscan</a></td></tr><tr><td>Fee Split Extension</td><td>Smart Contract Extension that allows for splitting and setting streaming, mint, and redeem fees; deployed on a per-product basis</td><td><a href="https://github.com/IndexCoop/index-coop-smart-contracts/blob/master/contracts/adapters/FeeSplitExtension.sol">Github</a>*</td></tr><tr><td>StakeWise Reinvestment Extension</td><td>Smart Contract Extension that enables reinvestment of rETH2 rewards within dsETH</td><td><a href="https://github.com/IndexCoop/index-coop-smart-contracts/blob/master/contracts/adapters/StakeWiseReinvestmentExtension.sol">Github</a>*</td></tr></tbody></table>

\* source code linked for contracts that may have many different instances on-chain

## Ancillary Contracts

built on top of and/or used in conjunction with protocol contracts

<table data-header-hidden><thead><tr><th width="217.33333333333331"></th><th width="388"></th><th></th></tr></thead><tbody><tr><td>Contract</td><td>Description</td><td>Link</td></tr><tr><td>0x Flash Mint</td><td>Contract that swaps an input token for proportional components of an index and issues said index token in an atomic fashion</td><td><a href="https://etherscan.io/address/0x9d648e5564b794b918d99c84b0fbf4b0bf36ce45#code">Etherscan</a></td></tr><tr><td>Compound Flash Mint</td><td>Contract that converts an input token into proportional cToken components of an index and issues said index token in an atomic fashion </td><td><a href="https://etherscan.io/address/0x5c0d0a9a0c3a0a5b591496ff894686893b69faa2#code">Etherscan</a></td></tr><tr><td>Notional Flash Mint</td><td>Contract that converts an input token into proportional wrapped fCash components of an index and issues said index token in an atomic fashion</td><td><a href="https://etherscan.io/address/0x9da9992b5d01bd0efb1ee8310e8011dc837bd476#code">Etherscan</a></td></tr></tbody></table>

The same security assumptions and audit coverage for Set Protocol v2 apply to Index Protocol as no changes have been made to the core code. Any Core Contracts or Modules added to Index Protocol over time will be audited by security professionals before deployment and published here; Adapters and Ancillary Contracts undergo rigorous testing before being enabled.

#### Source code for all Index Coop contracts can be found in the following GitHub repositories:

* [IndexCoop / index-protocol](https://github.com/IndexCoop/index-protocol)
* [IndexCoop / index-coop-smart-contracts](https://github.com/IndexCoop/index-coop-smart-contracts)

Additional information about contracts and capabilities can be found in the official Set Protocol v2 [Documentation](https://docs.tokensets.com/developers/contracts) and in the Set Protocol v2 GitHub[ repository.](https://github.com/SetProtocol/set-protocol-v2) Not all Set Protocol v2 contracts will be deployed for Index Protocol, but any smart contract supporting an Index Protocol product will be documented here as well as in Github and on Etherscan.


# Core Contracts

perform critical functions for the protocol like verifying permissions and enabling general-purpose resources

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td>Set Token</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token">Set Token</a></td></tr><tr><td></td><td>Set Token Creator</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token-creator">Set Token Creator</a></td></tr><tr><td></td><td>Controller</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/controller">Controller</a></td></tr><tr><td></td><td>Integration Registry</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry">Integration Registry</a></td></tr><tr><td></td><td>Price Oracle</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/price-oracle">Price Oracle</a></td></tr><tr><td></td><td>Set Valuer</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-valuer">Set Valuer</a></td></tr></tbody></table>


# Set Token

The Set Token contract is an ERC20 token contract that allows privileged modules to make modifications to its positions and invoke function calls from the SetToken.&#x20;

## Select View Methods

### manager()

`function manager() view returns (address)`

Returns the manager of the SetToken.

| Return Name | Type    | Description                       |
| ----------- | ------- | --------------------------------- |
| manager     | address | Address of the SetToken's manager |

### getModules()

`function getModules() external view returns (address[] memory)`

Returns the list of modules a SetToken has enabled.

| Return Name | Type       | Description             |
| ----------- | ---------- | ----------------------- |
| modules     | address\[] | List of enabled modules |

### getPositions()

`function getPositions() public view returns (ISetToken.Position[] memory)`

Retrieves the positions in an array from the SetToken. A position definition is as follows:

```javascript
    /**
     * The base definition of a SetToken Position
     *
     * @param component           Address of token in the Position
     * @param module              If not in default state, the address of associated module
     * @param unit                Each unit is the # of components per 10^18 of a SetToken
     * @param positionState       The type of position denoted as a uint8
     * @param data                Arbitrary data
     */
    struct Position {
        address component;
        address module;
        int256 unit;
        uint8 positionState;
        bytes data;
    }
```

<table data-header-hidden><thead><tr><th>Return Name</th><th width="558.3333333333333">Type</th><th>Description</th></tr></thead><tbody><tr><td>Return Name</td><td>Type</td><td>Description</td></tr><tr><td>positions</td><td>Position[]</td><td>List of positions</td></tr></tbody></table>

### getComponents()

`function getComponents() public view returns (address[] memory)`

Returns the list of component assets in the SetToken.

| Return Name | Type       | Description        |
| ----------- | ---------- | ------------------ |
| components  | address\[] | List of components |

### getDefaultPositionRealUnit()

`function getDefaultPositionRealUnit(address _component) external view returns (int256)`

Returns the component real unit of a `Default` position.

| Parameter Name | Type    | Description                    |
| -------------- | ------- | ------------------------------ |
| \_component    | address | Address of the component asset |

| Return Name   | Type      | Description                                          |
| ------------- | --------- | ---------------------------------------------------- |
| componentUnit | int256\[] | Position real unit of the component (signed integer) |

### getExternalPositionRealUnit()

`function getExternalPositionRealUnit(address _component, address _positionModule) public view returns(int256)`

Returns the component real unit of an `External` position.

| Parameter Name   | Type    | Description                                     |
| ---------------- | ------- | ----------------------------------------------- |
| \_component      | address | Address of the component asset                  |
| \_positionModule | address | Module the external position is associated with |

| Return Name   | Type      | Description                                          |
| ------------- | --------- | ---------------------------------------------------- |
| componentUnit | int256\[] | Position real unit of the component (signed integer) |

### getTotalComponentRealUnits() <a href="#getexternalpositionrealunit" id="getexternalpositionrealunit"></a>

`function getTotalComponentRealUnits(address _component) external view returns(int256)`‌

Returns the total component real units of a position, summing the `Default` and `External`.

| Parameter Name | Type    | Description                    |
| -------------- | ------- | ------------------------------ |
| \_component    | address | Address of the component asset |

| Return Name   | Type      | Description                                          |
| ------------- | --------- | ---------------------------------------------------- |
| componentUnit | int256\[] | Position real unit of the component (signed integer) |


# Set Token Creator

The Set Token Creator is a smart contract used to deploy new [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) contracts. The SetTokenCreator is a Factory contract that is enabled by the [Controller](/index-coop-community-handbook/protocol/index-protocol/core-contracts/controller) to create and register new SetTokens.

## Select Methods

### create()

`function create(address[] memory _components, int256[] memory _units, address[] memory _modules, address _manager, string memory _name, string memory _symbol) external returns (address)`

Creates a SetToken smart contract and registers the SetToken with the controller. The SetTokens are composed of positions that are instantiated as DEFAULT (positionState = 0) state.

| Parameter Name | Type       | Description                                                               |
| -------------- | ---------- | ------------------------------------------------------------------------- |
| \_components   | address\[] | List of addresses of components for initial positions                     |
| \_units        | uint256\[] | List of units. Each unit is the # of components per 10^18 of a SetToken   |
| \_modules      | address\[] | List of modules to enable. All modules must be approved by the Controller |
| \_manager      | address    | Address of the manager                                                    |
| \_name         | string     | Name of the SetToken                                                      |
| \_symbol       | string     | Symbol of the SetToken                                                    |

| Return Name     | Type    | Description                           |
| --------------- | ------- | ------------------------------------- |
| setTokenAddress | address | Address of the newly created SetToken |


# Controller

The Index Protocol **Controller** ([Etherscan](https://etherscan.io/address/0xd2463675a099101e36d85278494268261a66603a)) is a contract that registers system contracts such as added [setTokens](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token), [Modules](/index-coop-community-handbook/protocol/index-protocol/modules), factories, resources (like [Price Oracles](/index-coop-community-handbook/protocol/index-protocol/core-contracts/price-oracle)), and protocol fee configurations.

## Select View Methods

### getModuleFee()

`function getModuleFee(address _moduleAddress, uint256 _feeType) external view returns (uint256)`

Returns the protocol fee for a given module.

| Parameter Name  | Type    | Description       |
| --------------- | ------- | ----------------- |
| \_moduleAddress | address | Address of module |
| \_feeType       | uint256 | Fee type          |

| Return Name | Type    | Description                   |
| ----------- | ------- | ----------------------------- |
| fee         | uint256 | Stored protocol fee on module |

### isSystemContract()

`function isSystemContract(address _contractAddress) external view returns (bool)`

Check if a contract address is a module, Set, resource, factory or controller.

| Parameter Name    | Type    | Description         |
| ----------------- | ------- | ------------------- |
| \_contractAddress | address | Address of contract |

| Return Name      | Type | Description                                           |
| ---------------- | ---- | ----------------------------------------------------- |
| isSystemContract | bool | Boolean that returns if address is part of Set system |


# Integration Registry

The Index Protocol **Integration Registry** ([Etherscan](https://etherscan.io/address/0xb9083dee5e8273e54b9db4c31ba9d4ab7c6b28d3)) holds state relating to [Modules](/index-coop-community-handbook/protocol/index-protocol/modules) and the integrations they are connected with. The state is combined into a single Registry to allow governance updates to be aggregated into one contract.

## Current Integrations

The current adapters registered in the IntegrationRegistry are:

{% tabs %}
{% tab title="Mainnet" %}

| Integration Name                      | Module             | Description                                                                                   |
| ------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| "UniswapV2ExchangeAdapter"            | TradeModule        | Exchange adapter for Uniswap V2 that returns data for trades                                  |
| "SushiswapExchangeAdapter"            | TradeModule        | Exchange adapter for Sushiswap that returns data for trades                                   |
| "OneInchExchangeAdapter"              | TradeModule        | Exchange adapter for 1Inch exchange V1 that returns data for trades                           |
| "AaveMigrationWrapAdapter"            | WrapModule         | Wrap adapter for one time token migration that returns data for wrapping LEND into AAVE       |
| "AaveGovernanceAdapter"               | GovernanceModule   | Governance adapter for Aave V1 governance that returns data for voting                        |
| "CompoundGovernanceAdapter"           | GovernanceModule   | Governance adapter for Compound that returns data for voting, delegating and making proposals |
| "UniswapGovernanceAdapterV2"          | GovernanceModule   | Governance adapter for Uniswap that returns data for voting, delegating and making proposals  |
| "KyberExchangeAdapter"                | TradeModule        | Exchange adapter that returns Kyber trade data                                                |
| "AaveWrapAdapter"                     | WrapModule         | Wrap adapter that returns data for lending components in Aave V1                              |
| "ZeroExApiAdapterV3"                  | TradeModule        | Trade adapter that returns data for 0x trades                                                 |
| "AaveGovernanceV2Adapter"             | GovernanceModule   | Governance adapter for Aave V2                                                                |
| "CompoundBravoGovernanceAdapter"      | GovernanceModule   | Bravo governance adapter                                                                      |
| "SnapshotGovernanceAdapter"           | GovernanceModule   | Snapshot delegation adapter                                                                   |
| "UniswapV2TransferFeeExchangeAdapter" | TradeModule        | Supports V2 trades with a transfer fee                                                        |
| "CompoundWrapAdapter"                 | WrapModule         | Wrap adapter that returns data for lending on Compound                                        |
| "UniswapV2IndexExchangeAdapter"       | GeneralIndexModule | Returns data for Uniswap V2 index trades                                                      |
| "SushiswapIndexExchangeAdapter"       | GeneralIndexModule | Returns data for Sushiswap index trades                                                       |
| "BalancerV1IndexExchangeAdapter"      | GeneralIndexModule | Returns data for Balancer V1 index trades                                                     |
| "UniswapV3ExchangeAdapter"            | TradeModule        | Returns data for V3 trades                                                                    |
| "UniswapV3IndexExchangeAdapter"       | GeneralIndexModule | Returns data for Uniswap V3 index trades                                                      |
| "KyberV3IndexExchangeAdapter"         | GeneralIndexModule | Returns data for Kyber DMM index trades                                                       |
| "AMMSplitterExchangeAdapter"          | TradeModule        | Returns data for AMMSplitter trades (splits optimally between Uniswap V2 and Sushi)           |
| "AMMSplitterIndexExchangeAdapter"     | GeneralIndexModule | Returns data for AMMSplitter trades (splits optimally between Uniswap V2 and Sushi)           |
| {% endtab %}                          |                    |                                                                                               |
| {% endtabs %}                         |                    |                                                                                               |

## Select View Methods

### getIntegrationAdapter()

`function getIntegrationAdapter(address _module, string memory _name) external view returns (address)`

Get integration adapter address associated with passed human readable name.

| Parameter Name | Type    | Description                 |
| -------------- | ------- | --------------------------- |
| \_module       | address | Address of module           |
| \_name         | string  | Human readable adapter name |

| Return Name        | Type    | Description        |
| ------------------ | ------- | ------------------ |
| integrationAdapter | address | Address of adapter |

### isValidIntegration()

`function isValidIntegration(address _module, string memory _name) external view returns (bool)`

Check if adapter name is valid

| Return Name        | Type | Description                 |
| ------------------ | ---- | --------------------------- |
| isValidIntegration | bool | Boolean indicating if valid |


# Price Oracle

A Price Oracle is a contract that returns the price for any given asset pair. Price is retrieved either directly from an oracle, calculated using common asset pairs, or uses external data to calculate price. Note: Prices are returned in preciseUnits (i.e. 18 decimals of precision).

## Select View Methods

### oracles()

`mapping(address => mapping(address => IOracle)) public oracles;`

Mapping between assetA / assetB and its associated oracle. Asset 1 -> asset 2 -> source oracle address.&#x20;

| Parameter Name | Type    | Description               |
| -------------- | ------- | ------------------------- |
| assetOne       | address | Asset one to get price of |
| assetTwo       | address | Asset two to get price of |

| Return Name   | Type    | Description    |
| ------------- | ------- | -------------- |
| oracleAddress | IOracle | Oracle address |


# Set Valuer

The Set Valuer is a contract that returns the valuation of SetTokens using [Price Oracle](/index-coop-community-handbook/protocol/index-protocol/core-contracts/price-oracle) data used in contracts that are external to the system.

## Select View Methods

### calculateSetTokenValuation()

`function calculateSetTokenValuation(ISetToken _setToken, address _quoteAsset) external view returns (uint256)`

Gets the valuation of a SetToken using data from the price oracle. Reverts if no price exists for a component in the SetToken.&#x20;

**Note**: this works for external positions and negative (debt) positions. There is a risk that the valuation is off if airdrops aren't retrieved or debt builds up via interest and its not reflected in the position

| Parameter Name | Type      | Description                            |
| -------------- | --------- | -------------------------------------- |
| \_setToken     | ISetToken | SetToken instance to get valuation     |
| \_quoteAsset   | address   | Address of token to quote valuation in |

| Return Name | Type    | Description                                                      |
| ----------- | ------- | ---------------------------------------------------------------- |
| valuation   | uint256 | SetToken valuation in terms of quote asset in precise units 1e18 |


# Modules

extend setToken functionality by adding fees, enabling composability, and accessing DeFi services; modules can be considered general purpose, or usable by multiple products at once

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td>Basic Issuance Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/basic-issuance-module">Basic Issuance Module</a></td></tr><tr><td></td><td>Debt Issuance Module v2</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/debt-issuance-module-v2">Debt Issuance Module v2</a></td></tr><tr><td></td><td>NAV Issuance Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/nav-issuance-module">NAV Issuance Module</a></td></tr><tr><td></td><td>Trade Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/trade-module">Trade Module</a></td></tr><tr><td></td><td>Streaming Fee Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/streaming-fee-module">Streaming Fee Module</a></td></tr><tr><td></td><td>Wrap Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/wrap-module">Wrap Module</a></td></tr><tr><td></td><td>Airdrop Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/airdrop-module">Airdrop Module</a></td></tr><tr><td></td><td>Claim Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/claim-module">Claim Module</a></td></tr><tr><td></td><td>Governance Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/governance-module">Governance Module</a></td></tr><tr><td></td><td>Compound Leverage Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/compound-leverage-module">Compound Leverage Module</a></td></tr><tr><td></td><td>Aave Leverage Module</td><td></td><td><a href="/index-coop-community-handbook/protocol/index-protocol/modules/aave-v2-leverage-module">Aave v2 Leverage Module</a></td></tr></tbody></table>


# Basic Issuance Module

The **BasicIssuanceModule** is a smart contract that enables issuance and redemption functionality on a [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) for default-only positions.

## Select Methods

### issue()

`function issue(ISetToken _setToken, uint256 _quantity, address _to)`

Deposits the SetToken's position components into the SetToken and mints the SetToken of the given quantity to the specified \_to address. This function only handles Default Positions (positionState = 0). Components must be approved to this contract (BasicIssuanceModule) ahead of the issuance call.

| Parameter Name | Type      | Description                      |
| -------------- | --------- | -------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken         |
| \_quantity     | uint256   | Quantity of the SetToken to mint |
| \_to           | address   | Address to mint SetToken to      |

### redeem()

`function redeem( ISetToken _setToken, uint256 _quantity,address _to)`

Redeems the SetToken's positions and sends the components of the given quantity to the caller. This function only handles Default Positions (positionState = 0).

| Parameter Name | Type      | Description                         |
| -------------- | --------- | ----------------------------------- |
| \_setToken     | ISetToken | Address of the SetToken             |
| \_quantity     | uint256   | Quantity of the SetToken to`redeem` |
| \_to           | address   | Address to redeem components to     |

### initialize()

`function initialize(ISetToken _setToken, IManagerIssuanceHook _preIssueHook)`

**Manager only.** Initializes this module to the SetToken with issuance-related hooks. Only callable by the SetToken's manager. Hook addresses are optional. Address(0) means that no hook will be called

| Parameter Name | Type                 | Description                                                          |
| -------------- | -------------------- | -------------------------------------------------------------------- |
| \_setToken     | ISetToken            | Address of the SetToken                                              |
| \_preIssueHook | IManagerIssuanceHook | Instance of the Manager Contract with the Pre-Issuance Hook function |

## Select View Methods

### getRequiredComponentUnitsForIssue()

`function getRequiredComponentUnitsForIssue(ISetToken _setToken, uint256 _quantity) view returns (address[] memory, uint256[] memory)`

Retrieves the addresses and units required to mint a particular quantity of SetToken.

| Parameter Name | Type      | Description                         |
| -------------- | --------- | ----------------------------------- |
| \_setToken     | ISetToken | Address of the SetToken             |
| \_quantity     | uint256   | Quantity of the SetToken to`redeem` |

| Return Name         | Type       | Description                                                         |
| ------------------- | ---------- | ------------------------------------------------------------------- |
| componentAddresses  | address\[] | Address of the SetToken                                             |
| componentQuantities | uint256\[] | List of component units required to issue the quantity of SetTokens |


# Debt Issuance Module v2

The **DebtIssuanceModuleV2** module ([Etherscan](https://etherscan.io/address/0xa0a98eb7af028be00d04e46e1316808a62a8fd59)) is a smart contract that enables users to issue and redeem [SetTokens](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) that contain default and all external positions, including debt positions. Module hooks are added to allow for syncing of positions, and component-level hooks are added to ensure positions are replicated correctly. The manager can define arbitrary issuance logic in the manager hook, as well as specify issue and redeem fees.

## Select Methods <a href="#select-methods" id="select-methods"></a>

### issue() <a href="#issue" id="issue"></a>

`function issue(ISetToken _setToken, uint256 _quantity, address _to)`‌

Deposits components to the SetToken, replicates any external module component positions, and mints the SetToken. If the token has a debt position all collateral will be transferred in first then debt will be returned to the minting address. If specified, a fee will be charged on issuance.

**NOTE**: Overrides DebtIssuanceModule#issue external function and adds under-collateralization checks in place of the previous default strict balances checks. The under-collateralization checks are implemented in IssuanceValidationUtils library and they revert upon under-collateralization of the SetToken post-component transfer.

| Parameter Name | Type      | Description                      |
| -------------- | --------- | -------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken         |
| \_quantity     | uint256   | Quantity of the SetToken to mint |
| \_to           | address   | Address to mint SetToken to      |

### redeem() <a href="#redeem" id="redeem"></a>

`function redeem( ISetToken _setToken, uint256 _quantity,address _to)`‌

Returns components from the SetToken, unwinds any external module component positions and burns the SetToken. If the token has debt positions, the module transfers in the required debt amounts from the caller and uses those funds to repay the debts on behalf of the SetToken. All debt will be paid down first then equity positions will be returned to the minting address. If specified, a fee will be charged on redeem.

**NOTE:** Overrides DebtIssuanceModule#redeem internal function and adds under-collateralization checks in place of the previous default strict balances checks. The under-collateralization checks are implemented in IssuanceValidationUtils library and they revert upon under-collateralization of the SetToken post-component transfer.

| Parameter Name | Type      | Description                         |
| -------------- | --------- | ----------------------------------- |
| \_setToken     | ISetToken | Address of the SetToken             |
| \_quantity     | uint256   | Quantity of the SetToken to`redeem` |
| \_to           | address   | Address to redeem components to‌    |

### initialize() <a href="#initialize" id="initialize"></a>

`function initialize(ISetToken _setToken, uint256 _maxManagerFee, uint256 _managerIssueFee, uint256 _managerRedeemFee, address _feeRecipient, IManagerIssuanceHook _managerIssuanceHook)`‌

**Manager only.** Initializes this module to the SetToken with issuance-related hooks. Only callable by the SetToken's manager. Hook addresses are optional. Address(0) means that no hook will be called

| Parameter Name     | Type                 | Description                                                          |
| ------------------ | -------------------- | -------------------------------------------------------------------- |
| \_setToken         | ISetToken            | Address of the SetToken                                              |
| \_maxManagerFee    | uint256              | Max manager fee                                                      |
| \_managerIssueFee  | uint256              | Issuance fee                                                         |
| \_managerRedeemFee | uint256              | Redemption fee                                                       |
| \_feeRecipient     | address              | Fee recipient address                                                |
| \_preIssueHook     | IManagerIssuanceHook | Instance of the Manager Contract with the Pre-Issuance Hook function |

## Select View Methods <a href="#select-view-methods" id="select-view-methods"></a>

### getRequiredComponentIssuanceUnits() <a href="#getrequiredcomponentunitsforissue" id="getrequiredcomponentunitsforissue"></a>

`function getRequiredComponentIssuanceUnits(ISetToken _setToken, uint256 _quantity) view returns (address[] memory, uint256[] memory, uint256[] memory)`‌

Retrieves the addresses and units required to mint a particular quantity of SetToken.

| Parameter Name | Type      | Description                         |
| -------------- | --------- | ----------------------------------- |
| \_setToken     | ISetToken | Address of the SetToken             |
| \_quantity     | uint256   | Quantity of the SetToken to `issue` |

| Return Name        | Type       | Description                                                                              |
| ------------------ | ---------- | ---------------------------------------------------------------------------------------- |
| componentAddresses | address\[] | Array of component addresses making up the Set                                           |
| equityNotional     | uint256\[] | Array of equity notional amounts of each component, respectively, represented as uint256 |
| debtNotional       | uint256\[] | Array of debt notional amounts of each component, respectively, represented as uint256   |

### getRequiredComponentRedemptionUnits() <a href="#getrequiredcomponentunitsforissue" id="getrequiredcomponentunitsforissue"></a>

`function getRequiredComponentRedemptionUnits(ISetToken _setToken, uint256 _quantity) view returns (address[] memory, uint256[] memory, uint256[] memory)`‌

Retrieves the addresses and units required to mint a particular quantity of SetToken.

| Parameter Name | Type      | Description                          |
| -------------- | --------- | ------------------------------------ |
| \_setToken     | ISetToken | Address of the SetToken              |
| \_quantity     | uint256   | Quantity of the SetToken to `redeem` |

| Return Name        | Type       | Description                                                                              |
| ------------------ | ---------- | ---------------------------------------------------------------------------------------- |
| componentAddresses | address\[] | Array of component addresses making up the Set                                           |
| equityNotional     | uint256\[] | Array of equity notional amounts of each component, respectively, represented as uint256 |
| debtNotional       | uint256\[] | Array of debt notional amounts of each component, respectively, represented as uint256   |


# NAV Issuance Module

The **NAVIssuanceModule** is a smart contract that enables issuance and redemption of a [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) with any valid ERC20 token or ETH if allowed by the manager. Sender receives a proportional amount of SetTokens on issuance or ERC20 token on redemption based on the calculated net asset value (NAV) using [Price Oracles](/index-coop-community-handbook/protocol/index-protocol/core-contracts/price-oracle). The manager is able to enforce a premium/discount on issuance/redemption to avoid arbitrage and front-running when relying on oracle prices.

## Select Methods

### issue()

`issue(ISetToken _setToken, address _reserveAsset, uint256 _reserveAssetQuantity, uint256 _minSetTokenReceiveQuantity, address _to)`

Deposits the allowed reserve asset into the SetToken and mints the appropriate % of Net Asset Value of the SetToken to the specified `_to` address.

| Parameter Name               | Type      | Description                                        |
| ---------------------------- | --------- | -------------------------------------------------- |
| \_setToken                   | ISetToken | Instance of the SetToken                           |
| \_reserveAsset               | address   | Address of the reserve asset to issue with         |
| \_reserveAssetQuantity       | uint256   | Quantity of the reserve asset to issue with        |
| \_minSetTokenReceiveQuantity | uint256   | Min quantity of SetToken to receive after issuance |
| \_to                         | address   | Address to mint SetToken to                        |

### issueWithEther()

`issue(ISetToken _setToken, uint256 _minSetTokenReceiveQuantity, address _to)`

Wraps ETH and deposits WETH if allowed into the SetToken and mints the appropriate % of Net Asset Value of the SetToken to the specified `_to` address.

| Parameter Name               | Type      | Description                                        |
| ---------------------------- | --------- | -------------------------------------------------- |
| \_setToken                   | ISetToken | Instance of the SetToken                           |
| \_minSetTokenReceiveQuantity | uint256   | Min quantity of SetToken to receive after issuance |
| \_to                         | address   | Address to mint SetToken to                        |

### redeem()

`redeem(ISetToken _setToken, address _reserveAsset, uint256 _setTokenQuantity, uint256 _minReserveReceiveQuantity, address _to)`

Redeems a SetToken into a valid reserve asset representing the appropriate % of Net Asset Value of the SetToken to the specified \_to address. Only valid if there are available reserve units on the SetToken.

| Parameter Name               | Type      | Description                              |
| ---------------------------- | --------- | ---------------------------------------- |
| \_setToken                   | ISetToken | Instance of the SetToken                 |
| \_reserveAsset               | address   | Address of the reserve asset to redeem   |
| \_reserveAssetQuantity       | uint256   | Quantity of the reserve asset to redeem  |
| \_minSetTokenReceiveQuantity | uint256   | Min quantity of reserve asset to receive |
| \_to                         | address   | Address to redeem reserve asset to       |

### redeemIntoEther()

`redeemIntoEther(ISetToken _setToken, uint256 _setTokenQuantity, uint256 _minReserveReceiveQuantity, address _to)`

Redeems a SetToken into Ether (if WETH is valid) representing the appropriate % of Net Asset Value of the SetToken to the specified \_to address. Only valid if there are available WETH units on the SetToken.

| Parameter Name               | Type      | Description                              |
| ---------------------------- | --------- | ---------------------------------------- |
| \_setToken                   | ISetToken | Instance of the SetToken                 |
| \_reserveAssetQuantity       | uint256   | Quantity of the reserve asset to redeem  |
| \_minSetTokenReceiveQuantity | uint256   | Min quantity of reserve asset to receive |
| \_to                         | address   | Address to redeem reserve asset to       |

### initialize()

`function initialize(ISetToken _setToken, NAVIssuanceSettings _navIssuanceSettings)`

**Manager only.** Initializes this module to the SetToken with hooks, allowed reserve assets, fees and issuance premium. Only callable by the SetToken's manager. Hook addresses are optional. Address(0) means that no hook will be called.

| Parameter Name        | Type                | Description                                    |
| --------------------- | ------------------- | ---------------------------------------------- |
| \_setToken            | ISetToken           | Address of the SetToken                        |
| \_navIssuanceSettings | NAVIssuanceSettings | NAVIssuanceSettings struct defining parameters |

The NAVIssuanceSettings struct is constructed as follows:

```typescript
struct NAVIssuanceSettings {
    INAVIssuanceHook managerIssuanceHook;          // Issuance hook configurations
    INAVIssuanceHook managerRedemptionHook;        // Redemption hook configurations
    address[] reserveAssets;                       // Allowed reserve assets - Must have a price enabled with the price oracle
    address feeRecipient;                          // Manager fee recipient
    uint256[2] managerFees;                        // Manager fees. 0 index is issue and 1 index is redeem fee (0.01% = 1e14, 1% = 1e16)
    uint256 maxManagerFee;                         // Maximum fee manager is allowed to set for issue and redeem
    uint256 premiumPercentage;                     // Premium percentage (0.01% = 1e14, 1% = 1e16). This premium is a buffer around oracle
                                                   // prices paid by user to the SetToken, which prevents arbitrage and oracle front running
    uint256 maxPremiumPercentage;                  // Maximum premium percentage manager is allowed to set (configured by manager)
    uint256 minSetTokenSupply;                     // Minimum SetToken supply required for issuance and redemption 
                                                   // to prevent dramatic inflationary changes to the SetToken's position multiplier
}                                                   
```

### **addReserveAsset**()

`function addReserveAsset(ISetToken _setToken, address _reserveAsset)`

**Manager only.** Add an allowed reserve asset

| Parameter Name | Type      | Description                         |
| -------------- | --------- | ----------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken            |
| \_reserveAsset | address   | Address of the reserve asset to add |

### **removeReserveAsset**()

`function removeReserveAsset(ISetToken _setToken, address _reserveAsset)`

**Manager only.** Add an allowed reserve asset

| Parameter Name | Type      | Description                            |
| -------------- | --------- | -------------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken               |
| \_reserveAsset | address   | Address of the reserve asset to remove |

### **editPremium**()

`function editPremium(ISetToken _setToken, uint256 _premiumPercentage)`

**Manager only.** Edit the premium percentage. Learn more about what the premium percentage is [here](broken://pages/-MQIh7D9OR9FWzIaN9En).

| Parameter Name      | Type      | Description                                   |
| ------------------- | --------- | --------------------------------------------- |
| \_setToken          | ISetToken | Instance of the SetToken                      |
| \_premiumPercentage | uint256   | Premium percentage in 10e16 (e.g. 10e16 = 1%) |

### **editManagerFee**()

`function editManagerFee(ISetToken _setToken, uint256 _managerFeePercentage, uint256 _managerFeeIndex)`

**Manager only.** Edit manager fee

| Parameter Name         | Type      | Description                                                    |
| ---------------------- | --------- | -------------------------------------------------------------- |
| \_setToken             | ISetToken | Instance of the SetToken                                       |
| \_managerFeePercentage | uint256   | Manager fee percentage in 10e16 (e.g. 10e16 = 1%)              |
| \_managerFeeIndex      | uint256   | Manager fee index. 0 index is issue fee, 1 index is redeem fee |

### **editFeeRecipient**()

`function editFeeRecipient(ISetToken _setToken, address _managerFeeRecipient)`&#x20;

**Manager only.** Edit fee recipient

| Parameter Name        | Type      | Description              |
| --------------------- | --------- | ------------------------ |
| \_setToken            | ISetToken | Instance of the SetToken |
| \_managerFeeRecipient | uint256   | Manager fee recipient    |

## Select View Methods

### getReserveAssets()

`function getReserveAssets(ISetToken _setToken) external view returns (address[] memory)`

Returns reserve assets for a given SetToken.

| Return Name   | Type       | Description                     |
| ------------- | ---------- | ------------------------------- |
| reserveAssets | address\[] | Address array of reserve assets |

### getExpectedSetTokenIssueQuantity()

`function getExpectedSetTokenIssueQuantity(ISetToken _setToken, address _reserveAsset, uint256 _reserveAssetQuantity) external view returns (uint256)`

Get the expected SetTokens minted to recipient on issuance

| Parameter Name         | Type      | Description                             |
| ---------------------- | --------- | --------------------------------------- |
| \_setToken             | ISetToken | Address of the SetToken                 |
| \_reserveAsset         | address   | Address of the reserve asset to redeem  |
| \_reserveAssetQuantity | uint256   | Quantity of the reserve asset to redeem |

| Return Name      | Type    | Description                                  |
| ---------------- | ------- | -------------------------------------------- |
| setTokenQuantity | uint256 | Expected SetTokens to be minted to recipient |

### getExpectedReserveRedeemQuantity()

`function getExpectedReserveRedeemQuantity(ISetToken _setToken, address _reserveAsset, uint256 _setTokenQuantity) external view returns (uint256)`

Get the expected reserve asset to be redeemed

| Parameter Name     | Type      | Description                            |
| ------------------ | --------- | -------------------------------------- |
| \_setToken         | ISetToken | Address of the SetToken                |
| \_reserveAsset     | address   | Address of the reserve asset to redeem |
| \_setTokenQuantity | uint256   | Quantity of SetTokens to redeem        |

| Return Name          | Type    | Description                              |
| -------------------- | ------- | ---------------------------------------- |
| reserveAssetQuantity | uint256 | Expected reserve asset quantity redeemed |


# Trade Module

The **TradeModule** ([Etherscan](https://etherscan.io/address/0xfaab3f8f3678f68aa0d307b66e71b636f82c28bf)) is a module that enables [SetTokens](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) to perform atomic trades using DEXs and DEX aggregators such as Uniswap, Curve, Balancer and 0x. Integrations mappings are stored on the [IntegrationRegistry](/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry) contract.

## Select Methods

### trade()

`function trade(ISetToken _setToken, string memory _exchangeName, address _sendToken, uint256 _sendQuantity, address _receiveToken, uint256 _minReceiveQuantity, bytes memory _data)`

**Manager only**. Executes a trade on a supported DEX. Only callable by the SetToken's manager. Although the SetToken units are passed in for the send and receive quantities, the total quantity sent and received is the quantity of SetToken units multiplied by the SetToken `totalSupply`.

| Parameter Name       | Type      | Description                                                      |
| -------------------- | --------- | ---------------------------------------------------------------- |
| \_setToken           | ISetToken | Instance of the SetToken                                         |
| \_exchangeName       | string    | Human readable name of the exchange in the integrations registry |
| \_sendToken          | address   | Address of the token to be sent to the exchange                  |
| \_sendQuantity       | uint256   | Units of token in SetToken sent to the exchange                  |
| \_receiveToken       | address   | Address of the token that will be received from the exchange     |
| \_minReceiveQuantity | uint256   | Min units of token in SetToken to be received from the exchange  |
| \_data               | bytes     | Arbitrary bytes to be used to construct trade call data          |

### initialize()

`function initialize(ISetToken _setToken)`

**Manager only.** Initializes this module to the SetToken.

| Parameter Name | Type      | Description             |
| -------------- | --------- | ----------------------- |
| \_setToken     | ISetToken | Address of the SetToken |


# Streaming Fee Module

The **StreamingFeeModule** ([Etherscan](https://etherscan.io/address/0x165edf07bb61904f47800e13f5120e64c4b9a186)) is a smart contract that accrues streaming fees for managers and methodologists. Streaming fees are denominated as percent per year and realized as inflation rewarded to recipients.

## Select Methods

### accrueFee()

`function accrueFee(ISetToken _setToken)`

Calculates total inflation percentage then mints new Sets to the fee recipient. Position units are then adjusted down (in magnitude) in order to ensure full collateralization. Callable by anyone.

| Parameter Name | Type      | Description              |
| -------------- | --------- | ------------------------ |
| \_setToken     | ISetToken | Instance of the SetToken |

### initialize()

`function initialize(ISetToken _setToken, FeeState memory _settings)`

**Manager only.** Initializes this module to the SetToken.

| Parameter Name | Type      | Description                             |
| -------------- | --------- | --------------------------------------- |
| \_setToken     | ISetToken | Address of the SetToken                 |
| \_settings     | FeeState  | FeeState struct defining fee parameters |

The FeeState struct is constructed as follows:

```typescript
struct FeeState {
    address feeRecipient;                   // Address to accrue fees to
    uint256 maxStreamingFeePercentage;      // Max streaming fee manager commits to using (1% = 1e16, 100% = 1e18)
    uint256 streamingFeePercentage;         // Percent of Set accruing to manager annually (1% = 1e16, 100% = 1e18)
    uint256 lastStreamingFeeTimestamp;      // Timestamp last streaming fee was accrued
}                                                  
```

### updateStreamingFee()

`function updateStreamingFee(ISetToken _setToken, uint256 _newFee)`

**Manager only**. Set new streaming fee. Fees accrue at current rate then new rate is set. Fees are accrued to prevent the manager from unfairly accruing a larger percentage.

| Parameter Name | Type    | Description                               |
| -------------- | ------- | ----------------------------------------- |
| \_setToken     | address | Instance of the SetToken                  |
| \_newFee       | uint256 | New streaming fee in 18 decimal precision |

### updateFeeRecipient()

`function updateFeeRecipient(ISetToken _setToken, address _newFeeRecipient)`

**Manager only**. Set new fee recipient.

| Parameter Name    | Type      | Description              |
| ----------------- | --------- | ------------------------ |
| \_setToken        | ISetToken | Instance of the SetToken |
| \_newFeeRecipient | address   | New fee recipient        |


# Wrap Module

The **WrapModuleV2** ([Etherscan](https://etherscan.io/address/0xbfe0f7b4f9537a25d7c498161d6f24b38699a075)) is a smart contract that enables the wrapping of ERC20 and Ether positions via third-party protocols. The WrapModule works in conjunction with WrapAdapters, in which the `wrapAdapterID` / `integrationNames` are stored on the [integration registry](/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry). Examples of wrap actions include wrapping DAI to cDAI (Compound) or DAI to aDAI (Aave).

## Select Methods

### wrap()

`function wrap(ISetToken _setToken, address _underlyingToken, address _wrappedToken, uint256 _underlyingUnits, string calldata _integrationName)`      &#x20;

**Manager only**. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.

| Parameter Name    | Type      | Description                                                       |
| ----------------- | --------- | ----------------------------------------------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken                                          |
| \_underlyingToken | address   | Address of the component to be wrapped                            |
| \_wrappedToken    | address   | Address of the desired wrapped token                              |
| \_underlyingUnits | uint256   | Quantity of underlying units in Position units                    |
| \_integrationName | string    | Name of wrap module integration (mapping on integration registry) |

### wrapWithEther()

`function wrapWithEther(ISetToken _setToken, address _wrappedToken, uint256 _underlyingUnits, string calldata _integrationName)`      &#x20;

**Manager only**. Instructs the SetToken to wrap Ether into a wrappedToken via a specified adapter. Since SetTokens only hold WETH, in order to support protocols that collateralize with Ether the SetToken's WETH must be unwrapped first before sending to the external protocol.

| Parameter Name    | Type      | Description                                                       |
| ----------------- | --------- | ----------------------------------------------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken                                          |
| \_wrappedToken    | address   | Address of the desired wrapped token                              |
| \_underlyingUnits | uint256   | Quantity of underlying units in Position units                    |
| \_integrationName | string    | Name of wrap module integration (mapping on integration registry) |

### unwrap()

`function unwrap(ISetToken _setToken, address _underlyingToken, address _wrappedToken, uint256 _wrappedUnits, string calldata _integrationName)`      &#x20;

**Manager only**. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.

| Parameter Name    | Type      | Description                                                       |
| ----------------- | --------- | ----------------------------------------------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken                                          |
| \_underlyingToken | address   | Address of the component to be wrapped                            |
| \_wrappedToken    | address   | Address of the desired wrapped token                              |
| \_wrappedUnits    | uint256   | Quantity of wrapped units in Position units                       |
| \_integrationName | string    | Name of wrap module integration (mapping on integration registry) |

### unwrapWithEther()

`function unwrapWithEther(ISetToken _setToken, address _wrappedToken, uint256 _wrappedUnits, string calldata _integrationName)`      &#x20;

**Manager only**. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.

| Parameter Name    | Type      | Description                                                       |
| ----------------- | --------- | ----------------------------------------------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken                                          |
| \_wrappedToken    | address   | Address of the desired wrapped token                              |
| \_wrappedUnits    | uint256   | Quantity of wrapped units in Position units                       |
| \_integrationName | string    | Name of wrap module integration (mapping on integration registry) |

### initialize()

`function initialize(ISetToken _setToken)`

**Manager only.** Initializes this module to the SetToken.

| Parameter Name | Type      | Description             |
| -------------- | --------- | ----------------------- |
| \_setToken     | ISetToken | Address of the SetToken |


# Airdrop Module

The **AirdropModule** ([Etherscan](https://etherscan.io/address/0x09b9e7c7e2daf40fcb286fe6b863e517d5d5c40f))is a smart contract that enables managers to absorb tokens sent to the [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) into the token's positions. With each SetToken, managers are able to specify 1) the airdrops they want to include, 2) an airdrop fee recipient, 3) airdrop fee, and 4) whether all users are allowed to trigger an airdrop.

## Select Methods

### absorb()

`function absorb(ISetToken _setToken, IERC20 _token)`

**Valid Caller only**. Absorb specified token into position. If airdropFee is defined, send portion to feeRecipient and portion to protocol feeRecipient address. Callable only by the manager unless the manager has set anyoneAbsorb to true.

| Parameter Name | Type      | Description                |
| -------------- | --------- | -------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken   |
| \_token        | IERC20    | Address of token to absorb |

### addAirdrop()

`addAirdrop(ISetToken _setToken, IERC20 _airdrop)`

**Manager only**. Adds new tokens to be added to positions when absorb is called.

| Parameter Name | Type      | Description                      |
| -------------- | --------- | -------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken         |
| \_airdrop      | IERC20    | Component to add to airdrop list |

### updateFeeRecipient()

`updateFeeRecipient(ISetToken _setToken, address _newFeeRecipient)`

**Manager only**. Update address manager fees are sent to.

| Parameter Name    | Type      | Description                  |
| ----------------- | --------- | ---------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken     |
| \_newFeeRecipient | address   | Address of new fee recipient |

### updateAirdropFee()

`function updateAirdropFee( ISetToken _setToken, uint256 _newFee )`

**Manager only**. Update airdrop fee percentage.

| Parameter Name | Type      | Description                                                 |
| -------------- | --------- | ----------------------------------------------------------- |
| \_setToken     | ISetToken | Instance of the SetToken                                    |
| \_newFee       | uint256   | Percentage, in preciseUnits, of new airdrop fee (1e16 = 1%) |

### initialize()

`function initialize( ISetToken _setToken, AirdropSettings memory _airdropSettings )`

**Manager only.** Initialize the module with SetToken and set initial airdrop tokens as well as specify whether anyone can call absorb.

| Parameter Name    | Type            | Description                                                                                                                          |
| ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| \_setToken        | ISetToken       | Address of the SetToken                                                                                                              |
| \_airdropSettings | AirdropSettings | Struct of airdrop setting for Set including accepted airdrops, feeRecipient, airdropFee, and indicating if anyone can call an absorb |

The AirdropSettings struct is constructed as follows:

```typescript
struct AirdropSettings {
    address[] airdrops;                     // Array of tokens manager is allowing to be absorbed
    address feeRecipient;                   // Address airdrop fees are sent to
    uint256 airdropFee;                     // Percentage in preciseUnits of airdrop sent to feeRecipient (1e16 = 1%)
    bool anyoneAbsorb;                      // Boolean indicating if any address can call absorb or just the manager
}
```


# Claim Module

The **ClaimModule** is a smart contract that enables managers to claim tokens from external protocols given to the [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) as part of participating in incentivized activities of other protocols. The ClaimModule works in conjunction with ClaimAdapters, in which the claimAdapterID / integrationNames are stored on the [integration registry](/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry).

## Select Methods

### claim()

`claim(ISetToken _setToken, address _rewardPool, string calldata _integrationName)`

**Valid Caller only**. Claim the rewards available on the rewardPool for the specified claim integration. Callable only by manager unless manager has set anyoneClaim to true.

| Parameter Name    | Type      | Description                                                             |
| ----------------- | --------- | ----------------------------------------------------------------------- |
| \_setToken        | ISetToken | Instance of the SetToken                                                |
| \_rewardPool      | address   | Address of the rewardPool that identifies the contract governing claims |
| \_integrationName | string    | ID of claim module integration (mapping on integration registry)        |

### initialize()

`function initialize(ISetToken _setToken, bool _anyoneClaim, address[] calldata _rewardPools, string[] calldata _integrationNames)`

**Manager only.** Initializes this module to the SetToken.

| Parameter Name     | Type       | Description                                                                                                 |
| ------------------ | ---------- | ----------------------------------------------------------------------------------------------------------- |
| \_setToken         | ISetToken  | Address of the SetToken                                                                                     |
| \_anyoneClaim      | bool       | Boolean indicating if anyone can claim or just manager                                                      |
| \_rewardPools      | address\[] | Addresses of rewardPools that identifies the contract governing claims. Maps to same index integrationNames |
| \_integrationNames | string\[]  | Human-readable names matching adapter used to collect claim on pool. Maps to same index in rewardPools      |


# Governance Module

The **GovernanceModule** enables participating in the governance of component tokens held in the [SetToken](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token). Examples of intended protocols include Aave, Compound, and Uniswap governance.

## Select Methods

### delegate()

`function delegate(ISetToken _setToken, string memory _governanceName, address _delegatee)`

**Manager only**. Delegate voting power to an Ethereum address. Note: for some governance adapters, delegating to self is equivalent to registering and delegating to zero address is revoking right to vote.

| Parameter Name   | Type      | Description                                                          |
| ---------------- | --------- | -------------------------------------------------------------------- |
| \_setToken       | ISetToken | Instance of the SetToken                                             |
| \_governanceName | string    | Human readable name of integration stored in the IntegrationRegistry |
| \_delegatee      | address   | Address of delegatee                                                 |

### propose()

`function propose(ISetToken _setToken, string memory _governanceName, bytes memory _proposalData)`

**Manager only**. Create a new proposal for a specified governance protocol.

| Parameter Name   | Type      | Description                                                          |
| ---------------- | --------- | -------------------------------------------------------------------- |
| \_setToken       | ISetToken | Instance of the SetToken                                             |
| \_governanceName | string    | Human readable name of integration stored in the IntegrationRegistry |
| \_proposalData   | bytes     | Byte data of proposal to pass into governance adapter                |

### vote()

`function vote(ISetToken _setToken, string memory _governanceName, uint256 _proposalId, bool _support, bytes memory _data)`

**Manager only**. Cast vote for a specific governance token held in the SetToken. Manager specifies whether to vote for or against a given proposal

| Parameter Name   | Type      | Description                                                          |
| ---------------- | --------- | -------------------------------------------------------------------- |
| \_setToken       | ISetToken | Instance of the SetToken                                             |
| \_governanceName | string    | Human readable name of integration stored in the IntegrationRegistry |
| \_proposalId     | uint256   | ID of the proposal to vote on                                        |
| \_support        | bool      | Boolean indicating whether to support proposal                       |
| \_data           | bytes     | Arbitrary bytes to be used to construct vote call data               |

### register()

`function register(ISetToken _setToken, string memory _governanceName)`

**Manager only**. Register for voting for the SetToken

| Parameter Name   | Type      | Description                                                          |
| ---------------- | --------- | -------------------------------------------------------------------- |
| \_setToken       | ISetToken | Instance of the SetToken                                             |
| \_governanceName | string    | Human readable name of integration stored in the IntegrationRegistry |

### revoke()

`function revoke(ISetToken _setToken, string memory _governanceName)`

**Manager only**. Revoke voting for the SetToken

| Parameter Name   | Type      | Description                                                          |
| ---------------- | --------- | -------------------------------------------------------------------- |
| \_setToken       | ISetToken | Instance of the SetToken                                             |
| \_governanceName | string    | Human readable name of integration stored in the IntegrationRegistry |

### initialize()

`function initialize(ISetToken _setToken)`

**Manager only.** Initializes this module to the SetToken.

| Parameter Name | Type      | Description             |
| -------------- | --------- | ----------------------- |
| \_setToken     | ISetToken | Address of the SetToken |


# Compound Leverage Module

The **CompoundLeverageModule** is a smart contract that enables leverage trading using Compound v2 as the lending protocol. This module is paired with a [Debt Issuance Module](/index-coop-community-handbook/protocol/index-protocol/modules/debt-issuance-module-v2) that will call functions on this contract to keep interest accrual and liquidation state updated. Each asset is leveraged when using this module (i.e. it is not built for simple lending). Integrations mappings to specify the exchange to trade on are stored in the [IntegrationRegistry](/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry).

## Select Methods

### lever()

`function lever(ISetToken _setToken, IERC20 _borrowAsset, IERC20 _collateralAsset, uint256 _borrowQuantity, uint256 _minReceiveQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Increases leverage for a given collateral position using an enabled borrow asset that is enabled. Performs a DEX trade, exchanging the borrow asset for collateral asset. Deposits \_collateralAsset to Compound and mints corresponding aToken. **Note:** Both collateral and borrow assets need to be enabled, and they must not be the same asset.

| Parameter Name       | Type      | Description                                                                                                  |
| -------------------- | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken           | ISetToken | Instance of the SetToken                                                                                     |
| \_borrowAsset        | address   | Address of the token being borrowed and sent to the exchange                                                 |
| \_collateralAsset    | address   | Address of the token that will be received from the exchange and deposited into Compound after the trade     |
| \_borrowQuantity     | uint256   | Borrow quantity of asset in position units                                                                   |
| \_minReceiveQuantity | uint256   | Min receive quantity of collateral asset to receive post-trade in position units                             |
| \_tradeAdapterName   | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData          | bytes     | Arbitrary data for trade                                                                                     |

### delever()

`function delever(ISetToken _setToken, IERC20 _collateralAsset, IERC20 _repayAsset, uint256 _redeemQuantity, uint256 _minRepayQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Decrease leverage for a given collateral position using an enabled borrow asset. Withdraws \_collateralAsset from Compound. Performs a DEX trade, exchanging the \_collateralAsset for \_repayAsset. Repays \_repayAsset to Compound and burns corresponding debt tokens. **Note:** Both collateral and borrow assets need to be enabled, and they must not be the same asset.

| Parameter Name     | Type      | Description                                                                                                  |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken         | ISetToken | Instance of the SetToken                                                                                     |
| \_collateralAsset  | address   | Address of collateral asset (underlying of cToken)                                                           |
| \_repayAsset       | address   | Address of asset being repaid                                                                                |
| \_redeemQuantity   | uint256   | Quantity of collateral asset to delever                                                                      |
| \_minRepayQuantity | uint256   | Minimum amount of repay asset to receive post trade                                                          |
| \_tradeAdapterName | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData        | bytes     | Arbitrary data for trade                                                                                     |

### deleverToZeroBorrowBalance()

`function deleverToZeroBorrowBalance(ISetToken _setToken, IERC20 _collateralAsset, IERC20 _repayAsset, uint256 _redeemQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Pays down the borrow asset to 0 selling off a given amount of collateral asset. Withdraws \_collateralAsset from Aave. Performs a DEX trade, exchanging the \_collateralAsset for \_repayAsset. Minimum receive amount for the DEX trade is set to the current variable debt balance of the borrow asset. Repays received \_repayAsset to Aave which burns corresponding debt tokens. Any extra received borrow asset is updated as equity. No protocol fee is charged.

**Note**: Both collateral and borrow assets need to be enabled, and they must not be the same asset. The function reverts if not enough collateral asset is redeemed to buy the required minimum amount of \_repayAsset.

| Parameter Name     | Type      | Description                                                                                                  |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken         | ISetToken | Instance of the SetToken                                                                                     |
| \_collateralAsset  | address   | Address of collateral asset (underlying of cToken)                                                           |
| \_repayAsset       | address   | Address of asset being repaid                                                                                |
| \_redeemQuantity   | uint256   | Quantity of collateral asset to delever                                                                      |
| \_tradeAdapterName | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData        | bytes     | Arbitrary data for trade                                                                                     |

### initialize()

`function initialize(ISetToken _setToken, IERC20[] memory _collateralAssets, IERC20[] memory _borrowAssets)`

**Manager only.** Initializes this module to the SetToken. Only callable by the SetToken's manager. Note: managers can enable collateral and borrow assets that don't exist as positions on the SetToken.

| Parameter Name     | Type      | Description                                                   |
| ------------------ | --------- | ------------------------------------------------------------- |
| \_setToken         | ISetToken | Address of the SetToken                                       |
| \_collateralAssets | IERC20\[] | Underlying tokens to be enabled as collateral in the SetToken |
| \_borrowAssets     | IERC20\[] | Underlying tokens to be enabled as borrow in the SetToken     |


# Aave v2 Leverage Module

The **AaveLeverageModule** is a smart contract that enables leverage trading using Aave v2 as the lending protocol. This module is paired with a [Debt Issuance Module](/index-coop-community-handbook/protocol/index-protocol/modules/debt-issuance-module-v2) that will call functions on this contract to keep interest accrual and liquidation state updated. Each asset is leveraged when using this module (i.e. it is not built for simple lending). Integrations mappings to specify the exchange to trade on are stored in the [IntegrationRegistry](/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry).

## Select Methods

### lever()

`function lever(ISetToken _setToken, IERC20 _borrowAsset, IERC20 _collateralAsset, uint256 _borrowQuantity, uint256 _minReceiveQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Increases leverage for a given collateral position using an enabled borrow asset. Borrows \_borrowAsset from Aave. Performs a DEX trade, exchanging the \_borrowAsset for \_collateralAsset. Deposits \_collateralAsset to Aave and mints corresponding aToken. **Note:** Both collateral and borrow assets need to be enabled, and they must not be the same asset

| Parameter Name       | Type      | Description                                                                                                  |
| -------------------- | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken           | ISetToken | Instance of the SetToken                                                                                     |
| \_borrowAsset        | address   | Address of the token being borrowed and sent to the exchange                                                 |
| \_collateralAsset    | address   | Address of the token that will be received from the exchange and deposited into Compound after the trade     |
| \_borrowQuantity     | uint256   | Borrow quantity of asset in position units                                                                   |
| \_minReceiveQuantity | uint256   | Min receive quantity of collateral asset to receive post-trade in position units                             |
| \_tradeAdapterName   | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData          | bytes     | Arbitrary data for trade                                                                                     |

### delever()

`function delever(ISetToken _setToken, IERC20 _collateralAsset, IERC20 _repayAsset, uint256 _redeemQuantity, uint256 _minRepayQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Decrease leverage for a given collateral position using an enabled borrow asset. Withdraws \_collateralAsset from Aave. Performs a DEX trade, exchanging the \_collateralAsset for \_repayAsset. Repays \_repayAsset to Aave and burns corresponding debt tokens. **Note:** Both collateral and borrow assets need to be enabled, and they must not be the same asset.

| Parameter Name     | Type      | Description                                                                                                  |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken         | ISetToken | Instance of the SetToken                                                                                     |
| \_collateralAsset  | address   | Address of collateral asset (underlying of cToken)                                                           |
| \_repayAsset       | address   | Address of asset being repaid                                                                                |
| \_redeemQuantity   | uint256   | Quantity of collateral asset to delever                                                                      |
| \_minRepayQuantity | uint256   | Minimum amount of repay asset to receive post trade                                                          |
| \_tradeAdapterName | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData        | bytes     | Arbitrary data for trade                                                                                     |

### deleverToZeroBorrowBalance()

`function deleverToZeroBorrowBalance(ISetToken _setToken, IERC20 _collateralAsset, IERC20 _repayAsset, uint256 _redeemQuantity, string memory _tradeAdapterName, bytes memory _tradeData)`

**Manager only**. Pays down the borrow asset to 0 selling off a given amount of collateral asset. Withdraws \_collateralAsset from Aave. Performs a DEX trade, exchanging the \_collateralAsset for \_repayAsset. Minimum receive amount for the DEX trade is set to the current variable debt balance of the borrow asset. Repays received \_repayAsset to Aave which burns corresponding debt tokens. Any extra received borrow asset is updated as equity. No protocol fee is charged.&#x20;

**Note:** Both collateral and borrow assets need to be enabled, and they must not be the same asset. The function reverts if not enough collateral asset is redeemed to buy the required minimum amount of \_repayAsset.

| Parameter Name     | Type      | Description                                                                                                  |
| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------ |
| \_setToken         | ISetToken | Instance of the SetToken                                                                                     |
| \_collateralAsset  | address   | Address of collateral asset (underlying of cToken)                                                           |
| \_repayAsset       | address   | Address of asset being repaid                                                                                |
| \_redeemQuantity   | uint256   | Quantity of collateral asset to delever                                                                      |
| \_tradeAdapterName | string    | Human readable name of the exchange in the integrations registry. Conforms to same interfaces as TradeModule |
| \_tradeData        | bytes     | Arbitrary data for trade                                                                                     |

### sync()

`function sync(ISetToken _setToken)`

**Anyone callable.** Sync Set positions with ALL enabled Aave collateral and borrow positions. For collateral assets, update aToken default position. For borrow assets, update external borrow position.

* Collateral assets may come out of sync when interest is accrued or a position is liquidated
* Borrow assets may come out of sync when interest is accrued or position is liquidated and borrow is repaid

**Note**: In Aave, both collateral and borrow interest is accrued in each block by increasing the balance of aTokens and debtTokens for each user, and 1 aToken = 1 variableDebtToken = 1 underlying.&#x20;

| Parameter Name | Type      | Description             |
| -------------- | --------- | ----------------------- |
| \_setToken     | ISetToken | Address of the SetToken |

### initialize()

`function initialize(ISetToken _setToken, IERC20[] memory _collateralAssets, IERC20[] memory _borrowAssets)`

**Manager only.** Initializes this module to the SetToken. Only callable by the SetToken's manager. Note: managers can enable collateral and borrow assets that don't exist as positions on the SetToken&#x20;

| Parameter Name     | Type      | Description                                                   |
| ------------------ | --------- | ------------------------------------------------------------- |
| \_setToken         | ISetToken | Address of the SetToken                                       |
| \_collateralAssets | IERC20\[] | Underlying tokens to be enabled as collateral in the SetToken |
| \_borrowAssets     | IERC20\[] | Underlying tokens to be enabled as borrow in the SetToken     |


# Aave v3 Leverage Module

In 2023, Index Coop developed and audited a new [Aave v3 Leverage Module](https://etherscan.io/address/0x9d08cced85a68bf8a19374ed4b5753ae3be9f74f#code) for Index Protocol.\
\
The **Aave v3 Leverage Module** is a smart contract that enables leverage trading using Aave v3 as the lending protocol. This module is paired with a [Debt Issuance Module v2](/index-coop-community-handbook/protocol/index-protocol/modules/debt-issuance-module-v2) that will call functions on this contract to keep interest accrual and liquidation state updated. Each asset is leveraged when using this module (i.e. it is not built for simple lending).


# Auction Rebalance Module

In 2023, Index Coop developed an [Auction Rebalance Module](https://etherscan.io/address/0x59d55d53a715b3b4581c52098bcb4075c2941dba#code) for Index Protocol, with the aim of overcoming some of the limitations and inefficiencies associated with DEX-only trading.\
\
The Auction Rebalance Module facilitates rebalances for [SetTokens](/index-coop-community-handbook/protocol/index-protocol/core-contracts/set-token) via single-asset auctions. Managers initiate rebalances specifying target allocations in precise units (scaled by 10^18), quote asset (e.g., WETH, USDC), auction parameters per component, and rebalance duration through startRebalance(). Bidders can participate via bid() for individual components.


# Set Protocol v2

[Set Protocol v2](https://docs.tokensets.com/) is an EVM-based protocol developed by Set Labs that enables asset management strategies by translating them into ERC20 tokens. It has historically been the primary platform for Index Coop products, as Set Labs is a founding member of the DAO.

The following Index Coop products have been deployed on Set Protocol v2:

* [DeFi Pulse Index (DPI)](/index-coop-community-handbook/products/legacy-products/defi-pulse-index-dpi)
* [Metaverse Index (MVI)](/index-coop-community-handbook/products/legacy-products/metaverse-index-mvi)
* [Bankless BED Index (BED)](/index-coop-community-handbook/products/legacy-products/bankless-bed-index-bed)
* [Interest Compounding ETH (icETH)](/index-coop-community-handbook/products/earn/interest-compounding-eth-index-iceth)
* [Flexible Leverage Indices (FLI)](/index-coop-community-handbook/products/legacy-products/eth2x-flexible-leverage-index)

Set Protocol v2 employs a modular architecture comprised of core contracts, modules, adapters, and ancillary contracts. Product-specific contracts (like SetToken, BaseManagerv2, FeeSplitExtension) rely on general-purpose contracts and resources (like DebtIssuanceModuleV2, StreamingFeeModule, IntegrationRegistry) for complete functionality. The following sections outline contracts currently used by Index Coop products; however, not all contracts included in the [Set Documentation](https://docs.tokensets.com/developers/contracts) are used by Index Coop products.

## Core Contracts

perform critical functions for the protocol like verifying permissions and enabling general-purpose resources

<table data-header-hidden><thead><tr><th width="202.33333333333331"></th><th width="412"></th><th></th></tr></thead><tbody><tr><td>Contract</td><td>Description</td><td>Link</td></tr><tr><td>SetToken</td><td>ERC20 Token contract that allows privileged modules to make modifications to its positions and invoke function calls; deployed on a per-product basis</td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/SetToken.sol">Github</a>*</td></tr><tr><td>BaseManagerV2</td><td>Manager contract that contains permissions and administrative functionality for a SetToken; deployed on a per-product basis</td><td><a href="https://github.com/IndexCoop/index-coop-smart-contracts/blob/master/contracts/manager/BaseManagerV2.sol">Github</a>*</td></tr><tr><td>BaseManager</td><td>Manager contract that contains permissions and administrative functionality for a SetToken; deployed on a per-product basis</td><td><a href="https://github.com/SetProtocol/set-v2-strategies/blob/master/contracts/manager/BaseManager.sol">Github</a>*</td></tr><tr><td>ICManager</td><td>Manager contract that contains permissions and administrative functionality for a SetToken; deployed on a per-product basis</td><td><a href="https://github.com/IndexCoop/index-coop-smart-contracts/blob/master/contracts/manager/ICManager.sol">Github</a>*</td></tr><tr><td>SetTokenCreator</td><td>Factory contract that is enabled by the controller to create and register new SetTokens</td><td><a href="https://etherscan.io/address/0xeF72D3278dC3Eba6Dc2614965308d1435FFd748a#code">Etherscan</a></td></tr><tr><td>Controller</td><td>contract that registers protocol contracts such as products, modules, factories, price oracles, and other resources</td><td><a href="https://etherscan.io/address/0xa4c8d221d8bb851f83aadd0223a8900a6921a349">Etherscan</a></td></tr><tr><td>IntegrationRegistry</td><td>contract that holds state relating to modules and the integrations they are connected with</td><td><a href="https://etherscan.io/address/0x6655194c95d24b8b10b156dffce22a2c126e2e5a">Etherscan</a></td></tr><tr><td>PriceOracle</td><td>contract that returns the price for any given asset pair; price is retrieved either directly from an oracle, calculated using common asset pairs, or uses external data to calculate price</td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/PriceOracle.sol">Github</a>*</td></tr></tbody></table>

\* source code linked for contracts that may have many different instances on-chain

## Modules

extend setToken functionality by adding fees, enabling composability, and accessing DeFi services; modules can be considered general purpose, or usable by multiple products at once

<table data-header-hidden><thead><tr><th width="212.33333333333331"></th><th width="401"></th><th></th></tr></thead><tbody><tr><td>Module</td><td>Description</td><td>Link</td></tr><tr><td>BasicIssuanceModule</td><td>enables issuance and redemption functionality on a SetToken for default-only positions</td><td><a href="https://etherscan.io/address/0xd8EF3cACe8b4907117a45B0b125c68560532F94D">Etherscan</a></td></tr><tr><td>DebtIssuanceModuleV2</td><td>enables users to issue and redeem SetTokens that contain default and external positions, including–but not limited to–debt positions</td><td><a href="https://etherscan.io/address/0x69a592D2129415a4A1d1b1E309C17051B7F28d57">Etherscan</a></td></tr><tr><td>DebtIssuanceModuleV1</td><td>enables users to issue and redeem SetTokens that contain default and external positions, including–but not limited to–debt positions</td><td><a href="https://etherscan.io/address/0x39F024d621367C044BacE2bf0Fb15Fb3612eCB92">Etherscan</a></td></tr><tr><td>AaveLeverageModule</td><td>enables management of collateralized debt positions in Aave v2; it is paired with a Debt Issuance Module that will call functions on this module to keep interest accrual and liquidation state updated</td><td><a href="https://etherscan.io/address/0x251Bd1D42Df1f153D86a5BA2305FaADE4D5f51DC">Etherscan</a></td></tr><tr><td>CompoundLeverageModule</td><td>Enables management of collateralized debt positions in Compound v2; it is paired with a Debt Issuance Module that will call functions on this module to keep interest accrual and liquidation state updated</td><td><a href="https://etherscan.io/address/0x8d5174eD1dd217e240fDEAa52Eb7f4540b04F419">Etherscan</a></td></tr><tr><td>TradeModule</td><td>enables SetTokens to perform atomic trades using DEXs or DEX aggregators; integration mappings are stored on the IntegrationRegistry contract</td><td><a href="https://etherscan.io/address/0x90F765F63E7DC5aE97d6c576BF693FB6AF41C129">Etherscan</a></td></tr><tr><td>GeneralIndexModule</td><td>facilitates rebalancing for SetTokens</td><td><a href="https://etherscan.io/address/0x84cE03AE547330f61584aD6103743732B1AE97C5">Etherscan</a></td></tr><tr><td>StreamingFeeModule</td><td>accrues streaming fees for managers; streaming fees are denominated as percent per year and realized as inflation rewarded to the manager</td><td><a href="https://etherscan.io/address/0x08f866c74205617B6F3903EF481798EcED10cDEC">Etherscan</a></td></tr><tr><td>GovernanceModule</td><td>enables participation in governance of component tokens held in the SetToke; examples include Compound, Uniswap, and Maker</td><td><a href="https://etherscan.io/address/0x5C87b042494cDcebA44C541fbB3BC8bFF179d500">Etherscan</a></td></tr><tr><td>WrapModule</td><td>enables the wrapping of ERC20 and ETH positions via third party protocols; works in conjunction with WrapAdapters</td><td><a href="https://etherscan.io/address/0xbe4aEdE1694AFF7F1827229870f6cf3d9e7a999c">Etherscan</a></td></tr><tr><td>AirdropModule</td><td>enables manager to absorb tokens sent to the SetToken into the token's positions</td><td><a href="https://etherscan.io/address/0x0e1fD036506c1129e9F2A05c1a01DDCfa813b0Aa">Etherscan</a></td></tr></tbody></table>

## Adapters & Extensions

interface with external protocols and used by modules to gather and validate transaction parameters

<table data-header-hidden><thead><tr><th width="210.33333333333331"></th><th width="404"></th><th></th></tr></thead><tbody><tr><td>Adapter</td><td>Description</td><td>Link</td></tr><tr><td>0x API Adapter</td><td>Exchange Adapter for 0x API that returns data for swaps</td><td><a href="https://etherscan.io/address/0xAdEd5dC9a2A5eE371938d1893E9128afe50A8e69#code">Etherscan</a></td></tr><tr><td>Curve stETH Exchange Adapter</td><td>Exchange Adapter for Curve specialized for stETH/ETH exchange contracts </td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/integration/exchange/CurveStEthExchangeAdapter.sol">Github</a>*</td></tr><tr><td>Synthetix Exchange Adapter</td><td>Exchange Adapter for Synthetix that returns data for swaps</td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/integration/exchange/SynthetixExchangeAdapter.sol">Github</a>*</td></tr><tr><td>Uniswap v2 Exchange Adapter v2</td><td>Exchange Adapter for Uniswap v2 that returns data for swaps</td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/integration/exchange/UniswapV2ExchangeAdapterV2.sol">Github</a>*</td></tr><tr><td>Uniswap v3 Exchange Adapter v2</td><td>Exchange Adapter for Uniswap v3 that returns data for swaps</td><td><a href="https://github.com/SetProtocol/set-protocol-v2/blob/master/contracts/protocol/integration/exchange/UniswapV3ExchangeAdapterV2.sol">Github</a>*</td></tr><tr><td>Sushiswap Exchange Adapter</td><td>Exchange Adapter for Sushiswap that returns data for swaps</td><td><a href="https://etherscan.io/address/0xb9ebB277f1D9eAbB11eA9Ba4CaAcaa3DE9ab0eD6">Etherscan</a></td></tr><tr><td>AMM Splitter Exchange Adapter</td><td>Exchange Adapter that splits trades efficiently between Uniswap V2 and Sushiswap</td><td><a href="https://etherscan.io/address/0x54ab93d8b64a2f111a37857bd28d94024ebbf332#code">Etherscan</a></td></tr><tr><td>Aave Governance Adapter</td><td>Governance Adapter for Aave that returns data for voting, delegating, and creating proposals</td><td><a href="https://etherscan.io/address/0x6b8fcF12c960fA11048644BCC3c058b1d40D4Cc3">Etherscan</a></td></tr><tr><td>Compound Governance Adapter</td><td>Governance Adapter for Compound that returns data for voting, delegating, and creating proposals</td><td><a href="https://etherscan.io/address/0x6be50A653647f3Edce6E852E4e76CA0c8b7871dD">Etherscan</a></td></tr><tr><td>Uniswap Governance Adapter</td><td>Governance Adapter for Uniswap that returns data for voting, delegating, and creating proposals</td><td><a href="https://etherscan.io/address/0x4F37f4F9Fbb91613e385A8F510923aC97f59A283">Etherscan</a></td></tr><tr><td>Fee Split Extension</td><td>Smart Contract Extension that allows for splitting and setting streaming, mint, and redeem fees; deployed on a per-product basis</td><td><a href="https://github.com/SetProtocol/set-v2-strategies/blob/master/contracts/extensions/FeeSplitExtension.sol">Github</a>*</td></tr><tr><td>Compound Leverage Strategy Extension</td><td>Smart Contract Extension that enables automated management of leverage tokens and pairs with the Compound Leverage Module; deployed on a per-product basis</td><td><a href="https://etherscan.io/address/0x9ba41a2c5175d502ea52ff9a666f8a4fc00c00a1">Etherscan</a></td></tr><tr><td>Aave Leverage Strategy Extension</td><td>Smart Contract Extension that enables automated management of leverage tokens and pairs with the Aave Leverage Module; deployed on a per-product basis</td><td><a href="https://etherscan.io/address/0xe6484a64e2ea165943c734dc498070b5902cbc2b">Etherscan</a></td></tr><tr><td>Airdrop Extension</td><td>Smart Contract Extension that enables a manager to claim incentives accrued to a SetToken contract; pairs with the AirdropModule</td><td><a href="https://etherscan.io/address/0x0fba2bc72038ce9b932fc299c21e53a886e59183#readContract">Etherscan</a></td></tr><tr><td>General Index Module Extension</td><td>Smart Contract Extension that acts as a pass-through contract for interacting with the GeneralIndexModule</td><td><a href="https://etherscan.io/address/0x1906f7408e2c2643ea99aa3dcd37234adf675f74">Etherscan</a></td></tr></tbody></table>

\* source code linked for contracts that may have many different instances on-chain

## Ancillary Contracts

built on top off and/or used in conjunction with protocol contracts

<table data-header-hidden><thead><tr><th width="194.33333333333331"></th><th width="418"></th><th></th></tr></thead><tbody><tr><td>Contract</td><td>Description</td><td>Link</td></tr><tr><td>Supply Cap Issuance Hook</td><td>Issuance Hook that checks a new issuance won't push SetToken totalSupply over defined supply cap; deployed on a per-product basis</td><td><a href="https://github.com/SetProtocol/set-v2-strategies/blob/master/contracts/hooks/SupplyCapIssuanceHook.sol">Github</a>*</td></tr><tr><td>0x Flash Mint</td><td>Contract that swaps an input token for proportional components of an index and issues said index token in an atomic fashion via exchange issuance</td><td><a href="https://etherscan.io/address/0xf42ecdc112365ff79a745b4cf7d4c266bd6e4b25">Etherscan</a></td></tr><tr><td>Leveraged Flash Mint</td><td>Contract that enables exchange issuance and redemption for leveraged SetTokens</td><td><a href="https://etherscan.io/address/0xb7cc88a13586d862b97a677990de14a122b74598">Etherscan</a></td></tr></tbody></table>

\* source code linked for contracts that may have many different instances on-chain

All Core Contracts or Modules have been audited by security professionals prior to deployment, and Adapters and Ancillary Contracts undergo rigorous testing before being enabled as well. Excerpt from Set Protocol [documentation](https://docs.tokensets.com/protocol/security):

> “Security of our system is of the utmost importance to us. We recognize the complexity of the protocol, the difficulties in deploying issue-free software, and the responsibility of maintaining a value-bearing protocol. Therefore, we’ve made a considerable effort to ensure the system has been reviewed by top security firms and heavily scrutinized line by line internally…
>
> Our Set Protocol contracts repo has 100% line and branch coverage over the span of over 840+ unit, integration and simulation tests. Every line of smart contract code for Set Protocol is open source, and we encourage technical community members to review and verify our code. For more information on our system, view the [Litepaper](https://docs.tokensets.com/protocol/litepaper).”

**More information on auditors and audit reports can be found on the** [**Security**](broken://pages/VnmttiDEoCdlrkuT8dPp) **page. Source code for all Set Protocol v2 and Index Coop contracts can be found in the following GitHub repositories:**

* [SetProtocol / set-protocol-v2](https://github.com/SetProtocol/set-protocol-v2)
* [SetProtocol / set-v2-strategies](https://github.com/SetProtocol/set-v2-strategies)
* [IndexCoop / index-coop-smart-contracts](https://github.com/IndexCoop/index-coop-smart-contracts)

Additional information about contracts and capabilities can be found in the official Set Protocol v2 [Documentation](https://docs.tokensets.com/developers/contracts). Not all Set Protocol v2 contracts support Index Coop products, but any contract that does support an Index Coop product will be documented here.


# Security and Audits

Index Coop products are built on either [Index Protocol](/index-coop-community-handbook/protocol/index-protocol) (a good-faith fork of Set Protocol v2) or [Set Protocol v2](/index-coop-community-handbook/protocol/set-protocol-v2). The security of both systems is of the utmost importance to the DAO and we recognize the complexity, difficulty, and responsibility of maintaining and evolving a value-bearing protocol. Therefore, Index Coop and Set Labs have made considerable efforts to ensure both systems have been reviewed by top independent security firms and that every line of code is heavily scrutinized.

## Audits

The following audits for Index Protocol and Set Protocol v2 have been conducted and published by independent security firms:

<table data-header-hidden><thead><tr><th width="162.33333333333331"></th><th width="367"></th><th></th></tr></thead><tbody><tr><td>Auditor</td><td>Coverage</td><td>Link</td></tr><tr><td>Sherlock</td><td><code>AaveLeverageStrategyExtension</code>, <code>AaveV3LeverageStrategyExtension</code>, <code>BaseManagerV2</code>, <code>Controller</code>, <code>IntegrationRegistry</code>, <code>SetToken</code>, <code>SetTokenCreator</code>, <code>AaveV3LeverageModule</code>, <code>AirdropModule</code>, <code>AmmModule</code>, <code>ClaimModule</code>, <code>DebtIssuanceModule</code>, <code>DebtIssuanceModuleV2</code>, <code>StreamingFeeModule</code>, <code>TradeModule</code>, <code>WrapModuleV2</code>, <code>BasicIssuanceModule</code>, <code>AuctionRebalanceModuleV1</code>, <code>BoundedStepwiseExponentialPriceAdapter</code>, <code>BoundedStepwiseLinearPriceAdapter</code>, <code>BoundedStepwiseLogarithmicPriceAdapter</code>, <code>ConstantPriceAdapter</code></td><td><a href="https://audits.sherlock.xyz/contests/81/report">Index Protocol</a><br><br><a href="https://audits.sherlock.xyz/contests/91/report">Index Update</a></td></tr><tr><td>0x52</td><td><code>CustomOracleNAVIssuanceModule</code>, <code>SetValuer</code>, <code>PriceOracle</code>, <code>PreciseUnitOracle</code>, <code>ERC4626Oracle</code>, <code>RebasingComponentModule</code>, <code>WrapModuleV2</code>, <code>AaveV2WrapV2Adapter</code>, <code>AaveV3WrapV2Adapter</code>, <code>CompoundV3WrapV2Adapter</code>, <code>ERC4626WrapV2Adapter</code>, <code>TargetWeightWrapExtension</code>, <code>SnapshotStakingPool</code>, <code>SignedSnapshotStakingPool</code>, <code>PrtFeeSplitExtension</code>, <code>Prt</code> , <code>DebtIssuanceModuleV3</code></td><td><a href="https://github.com/IndexCoop/audits/blob/main/audits/IndexIcUSDAuditReport.md">icUSD Audit Report</a><br><br><a href="https://github.com/IndexCoop/audits/blob/main/audits/IndexPRTAuditReport.md">PRT Audit Report</a><br><br><a href="https://github.com/IndexCoop/audits/blob/main/audits/IndexDIMv3AuditReport.md">DIMv3 Audit Report</a></td></tr><tr><td>Code4rena</td><td><code>NotionalTradeModule</code>, <code>NotionalWrappedfCash</code></td><td><a href="https://code4rena.com/reports/2022-06-notional-coop/">Notional x Index Coop Findings &#x26; Analysis Report - Code4rena</a></td></tr><tr><td>OpenZeppelin</td><td><code>BasicIssuanceModule</code>, <code>PriceOracle</code>, <code>InvokeLib</code>, <code>Controller</code>, <code>SetToken</code>, <code>StreamingFeeModule</code>, <code>IntegrationRegistry</code>, <code>PositionLib</code>, <code>PreciseUnitMath</code>, <code>AddressArrayUtils</code>, <code>SetTokenCreator</code>, <code>ISetToken</code>, <code>ExplicitERC20</code>, <code>ModuleBase</code>, <code>IOracle</code>, <code>IOracleAdapter</code>, <code>IController</code>, <code>IManagerIssuanceHook</code></td><td><a href="https://blog.openzeppelin.com/set-protocol-audit/">Set Protocol v2 Audit - OpenZeppelin Security</a></td></tr><tr><td>ABDK</td><td><code>BasicIssuanceModule</code>, <code>PriceOracle</code>, <code>InvokeLib</code>, <code>Controller</code>, <code>SetToken</code>, <code>StreamingFeeModule</code>, <code>IntegrationRegistry</code>, <code>PositionLib</code>, <code>PreciseUnitMath</code>, <code>AddressArrayUtils</code>, <code>SetTokenCreator</code>, <code>ISetToken</code>, <code>ExplicitERC20</code>, <code>ModuleBase</code>, <code>IModuleBase</code>, <code>IOracle</code>, <code>IOracleAdapter</code>, <code>IController</code>, <code>IDepositor</code>, <code>IManagerIssuanceHook</code>, <code>WrapModule</code>, <code>TradeModule</code>, <code>CompoundLeverageModule</code>, <code>AaveV3LeverageModule</code>, <code>AaveV3LeverageStrategyExtension</code></td><td>(consolidated) PDFs below</td></tr><tr><td>Iosiro</td><td><code>GeneralIndexModule</code>, <code>DebtIssuanceModuleV2</code>, <code>AaveLeverageModule</code>, <code>AMMSplitter</code>, <code>BatchTradeExtension</code>, <code>PerpetualV2Module</code>, <code>PerpetualV2BasisTradingModule</code></td><td>(consolidated) PDF below</td></tr></tbody></table>

{% file src="/files/uJV24hZAsOoELixGdNhT" %}

{% file src="/files/96hL8SnzaNR1LUiD2fDS" %}

{% file src="/files/ps06mF0bnvoUuwG8rU36" %}

All issues identified in these reports have been addressed by the Index Coop and/or Set Labs teams. While the audits are a thorough investigation of the code’s integrity, please be advised that these audits do not provide a 100% foolproof guarantee that the contracts are free from vulnerabilities.

The same security assumptions and audit coverage for Set Protocol v2 apply to Index Protocol as no changes have been made to the code for Core Contracts, Modules, or Adapters. Any Core Contracts or Modules added to Index Protocol over time will also be audited by security professionals before deployment and published here. Incremental smart contract development is subject to internal unit, integration, and simulation testing before submission to auditors and/or deployment.

## Bug Bounty

Both Index Coop and Set Protocol maintain bug bounty programs in order to incentivize hackers to make positive-sum contributions to protocol and product security.

**Index Coop**’s bug bounty program is live on [Immunifi](https://immunefi.com/bounty/indexcoop/), where bug hunters and DeFi researchers can win up to $200,000 for helping strengthen the security of Index Protocol. Rewards are distributed according to the impact of the vulnerability based on the[ ](https://immunefi.com/immunefi-vulnerability-severity-classification-system-v2-2/)Immunefi [Vulnerability Severity Classification System](https://immunefi.com/immunefi-vulnerability-severity-classification-system-v2-2/), a simplified 5-level scale that focuses on the impact of the vulnerability reported. You can find full details on the [Immunefi - Index Coop page](https://immunefi.com/bounty/indexcoop/).

## GitHub

All source code for contracts supporting Index Coop products can be found in the following GitHub repositories:

* [IndexCoop / index-protocol](https://github.com/IndexCoop/index-protocol)
* [IndexCoop / index-coop-smart-contracts](https://github.com/IndexCoop/index-coop-smart-contracts)
* [SetProtocol / set-protocol-v2](https://github.com/SetProtocol/set-protocol-v2)
* [SetProtocol / set-v2-strategies](https://github.com/SetProtocol/set-v2-strategies)

The most current audit reports are also stored in [IndexCoop / audits](https://github.com/IndexCoop/audits).


# Contract Verification

step-by-step guide for exploring and verifying smart contracts that support Index Coop products

Supporting contracts for all Index Coop products can be easily and independently verified through Etherscan. The following steps will take you through this process, starting with the token contract address for a given Index Coop product:&#x20;

1. For a given **Index Token Contract** under the “*Contract*” tab, select “*Read Contract*”

<figure><img src="https://lh5.googleusercontent.com/m_o09UBnc9bHZ47qHI4WLChk1fMUKZMb3dq2DXs8z46bFiofYxrKl4Wl8dSF5kCIJeXrUH22r-FDyyzaldI2YqgIHAcRSVQS1Uxfe71XEZWtbazDk5Yx6lBbvuOi1fMhxKKjxm8AHmkQqRvpQ_alqA43NlqjQmiKb0I7dVzbSJdRcrMnzXgaKyJ88X1CyA" alt=""><figcaption></figcaption></figure>

2\. Click “*11. getModules*” to see a complete list of enabled Modules for the **Token Contract**

<figure><img src="https://lh4.googleusercontent.com/t63WNX3hy1CzI6w6Eohp38x27FMLUyfzQuHjaTCc1T2TviGJdQkrK1qfvnYVNH0mGSFw-hfNjW1Jj2SP3qj-nCN_tXsnTgEWdbn3fTNqrcCU74WTcy7pi9O5R4Na06R_pNHuWCOqBWMUI6N-4zd_Nb5uJqEdk0Zl5oebwEnm9ZboOyiVy0yhBrn3rW8OVQ" alt=""><figcaption></figcaption></figure>

3\. Click “*20. manager*” to see the **Manager** contract for the Token Contract

<figure><img src="https://lh4.googleusercontent.com/JC9WIzbgzwXvosqwEisrdGMaAQQvDvt94xIU9XzV2o9KZT3ny2UsKsJ4_5cDhzvoYYmkQLYPSOPXMe2MTTrzIGujMEM_NfJFb2eo25o2900XP4j5N4aUZbciAs3STHxyDdgLovSgP7qM6RjvbZLh8uqmZFiGw0oG4E2s9LOZuc2M-j4pMhNc0ZvlYXApsQ" alt=""><figcaption></figcaption></figure>

4\. From the **Manager** address under the “*Contract*” tab, select “*Read Contract*”

<figure><img src="https://lh5.googleusercontent.com/N-NXIz0Zh0PLFtHou5IyFsIyLLJw49myIOngUCZ_HDVH3Doou6Fo4upg7kb4ORYXcq12CJVciO0SXGdqHqAQ7y2GgawFATzXf1PhdlPkHoCabNgBrJ24qOtTRU7zV-pdrDb84wo3iSwXmtHoTJNfgFTi7jCNWpU_j697OIIjLKwbH8DN8frOUAh9MtdcSw" alt=""><figcaption></figcaption></figure>

5\. Click “*3. getExtensions*” to see a complete list of enabled Extensions for the **Manager** and, by extension, the **Token Contract**

<figure><img src="https://lh6.googleusercontent.com/U2nSglqJ3B6lcTnezAgH5vF8w6we5iuNOTDjm4zsRrRYHSSkJzruGt7M3GHdmSDL2at4fJTBytjuWEXy1Zxehvu16kz0WjZYpanLK18BoSTt2GMRxKZ6See6zHAOFl7eve2XJ3gzFerLzBvNfir_8ZEwUrXL2EZ9Do3mxruWUoFZdEt20l_VZXcGyhqWSA" alt=""><figcaption></figcaption></figure>

In the event that a connected contract does not have an official “Index Protocol” or "Set Protocol" label or name, please notify the Index Coop team via discord. In the absence of an official label or name, the “*Code*” option within the “*Contract*” tab will display the default name for the contract.


# Programmatic Redemptions

a step-by-step guide for redeeming Index Coop products at the smart contract level

All Index Coop products can be permissionlessly redeemed for their underlying assets at any time. In the absence of app or front-end support, this can be accomplished by interacting directly with the product's issuance module on the chain where it is natively deployed. This guide will provide a step-by-step walkthrough for programmatic redemptions using Etherscan.

Please note that this guide is limited to non-leverage tokens. [Leverage](/index-coop-community-handbook/products/trade) products are more complex to redeem because of the associated debt positions; a separate guide for leverage token redemptions will be published as soon as it is available.

***

### Step 1: Identify the Correct Contracts

Each product is represented by a unique token contract, which can be found in the table below. Different products utilize different issuance modules, so the primary issuance module contract for each product is listed in the table below too.

Start by identifying the product you want to redeem and matching it with the relevant issuance module; you'll need both addresses for subsequent steps.

For this example, we will redeem dsETH (`0x341c05c0E9b33C0E38d64de76516b2Ce970bB3BE`) using the Debt Issuance Module v2\_1 (`0x04b59F9F09750C044D7CfbC177561E409085f0f3`) on Index Protocol V1.

<table><thead><tr><th width="110">Product</th><th width="101">Protocol</th><th width="260">Token Contract</th><th>Issuance Module Contract</th></tr></thead><tbody><tr><td><a href="/index-coop-community-handbook/products/legacy-products/defi-pulse-index-dpi">DPI</a></td><td><a href="/index-coop-community-handbook/protocol/set-protocol-v2">Set V2</a></td><td><a href="https://etherscan.io/token/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b">0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b</a></td><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d#code">0xd8EF3cACe8b4907117a45B0b125c68560532F94D</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/metaverse-index-mvi">MVI</a></td><td><a href="/index-coop-community-handbook/protocol/set-protocol-v2">Set V2</a></td><td><a href="https://etherscan.io/token/0x72e364f2abdc788b7e918bc238b21f109cd634d7">0x72e364F2ABdC788b7E918bc238B21f109Cd634D7</a></td><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d#code">0xd8EF3cACe8b4907117a45B0b125c68560532F94D</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/bankless-bed-index-bed">BED</a></td><td><a href="/index-coop-community-handbook/protocol/set-protocol-v2">Set V2</a></td><td><a href="https://etherscan.io/token/0x2af1df3ab0ab157e1e2ad8f88a7d04fbea0c7dc6">0x2aF1dF3AB0ab157e1E2Ad8F88A7D04fbea0c7dc6</a></td><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d#code">0xd8EF3cACe8b4907117a45B0b125c68560532F94D</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/index-coop-large-cap-index-ic21">ic21</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index V1</a></td><td><a href="https://etherscan.io/token/0x1B5E16C5b20Fb5EE87C61fE9Afe735Cca3B21A65">0x1B5E16C5b20Fb5EE87C61fE9Afe735Cca3B21A65</a></td><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3#code">0x04b59F9F09750C044D7CfbC177561E409085f0f3</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/data-economy-index-data">DATA</a></td><td><a href="/index-coop-community-handbook/protocol/set-protocol-v2">Set V2</a></td><td><a href="https://etherscan.io/token/0x33d63ba1e57e54779f7ddaeaa7109349344cf5f1">0x33d63Ba1E57E54779F7dDAeaA7109349344cf5F1</a></td><td><a href="https://etherscan.io/address/0xd8ef3cace8b4907117a45b0b125c68560532f94d#code">0xd8EF3cACe8b4907117a45B0b125c68560532F94D</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/bankless-defi-innovation-index-gmi">GMI</a></td><td><a href="/index-coop-community-handbook/protocol/set-protocol-v2">Set V2</a></td><td><a href="https://etherscan.io/token/0x47110d43175f7f2c2425e7d15792acc5817eb44f">0x47110d43175f7f2C2425E7d15792acC5817EB44f</a></td><td><a href="https://etherscan.io/address/0x39f024d621367c044bace2bf0fb15fb3612ecb92#code">0x39F024d621367C044BacE2bf0Fb15Fb3612eCB92</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/earn/high-yield-eth-index-hyeth">hyETH</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index V1</a></td><td><a href="https://etherscan.io/address/0xc4506022fb8090774e8a628d5084eed61d9b99ee">0xc4506022Fb8090774E8A628d5084EED61D9B99Ee</a></td><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3#code">0x04b59F9F09750C044D7CfbC177561E409085f0f3</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/diversified-staked-eth-index-dseth">dsETH</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index V1</a></td><td><a href="https://etherscan.io/token/0x341c05c0E9b33C0E38d64de76516b2Ce970bB3BE">0x341c05c0E9b33C0E38d64de76516b2Ce970bB3BE</a></td><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3#code">0x04b59F9F09750C044D7CfbC177561E409085f0f3</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/gitcoin-staked-eth-index-gtceth">gtcETH</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index V1</a></td><td><a href="https://etherscan.io/address/0x36c833eed0d376f75d1ff9dfdee260191336065e">0x36c833Eed0D376f75D1ff9dFDeE260191336065e</a></td><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3#code">0x04b59F9F09750C044D7CfbC177561E409085f0f3</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/index-coop-coindesk-eth-trend-index-cdeti">cdETI</a></td><td><a href="/index-coop-community-handbook/protocol/index-protocol">Index V1</a></td><td><a href="https://etherscan.io/token/0x55b2CFcfe99110C773f00b023560DD9ef6C8A13B">0x55b2CFcfe99110C773f00b023560DD9ef6C8A13B</a></td><td><a href="https://etherscan.io/address/0x04b59f9f09750c044d7cfbc177561e409085f0f3#code">0x04b59F9F09750C044D7CfbC177561E409085f0f3</a></td></tr></tbody></table>

***

### Step 2: Find the uint256 Value of Your Tokens

Next, go to your product's token contract on Etherscan and navigate to the *Contract* > *Read Contract* tab. Select the `balanceOf` function and paste in the wallet address that holds your tokens. After hitting the *Query* button, save the uint256 value that it returns.

See the example for dsETH below, with a uint256 value of `47910320749244497`.

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FYF7EZ9C18x1qG6fctVPz%2FScreenshot%202024-10-30%20at%203.49.22%E2%80%AFPM.png?alt=media&amp;token=775c77b7-b741-4b77-8323-60f47166ed2d" alt=""><figcaption></figcaption></figure>

Make sure to copy your uint256 value and/or leave the Etherscan tab open - you'll need it for the next step!

***

### Step 3: Approve the Issuance Module to Spend Tokens

Next, you must allow the issuance module to "spend" your product tokens in exchange for the underlying components.

Go to the product token page on Etherscan and navigate to the *Contract* > *Write Contract* tab. Select the `approve` function and carefully paste in the corresponding values...

* `spender` = the relevant issuance module contract address (from [Step 1](#step-1-identify-the-correct-contracts))
* `amount` = the uint256 value representing your wallet balance (from [Step 2](#step-2-find-the-uint256-value-of-your-tokens))

See the dsETH example below:

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F7psLn7UtsVqXcMorPxG4%2FScreenshot%202024-10-30%20at%204.05.21%E2%80%AFPM.png?alt=media&amp;token=bc3e6f8c-665b-4b4e-a674-5ff846523c42" alt=""><figcaption></figcaption></figure>

If you haven't already, connect the wallet that holds your product tokens to Etherscan. This will allow you to "write" to the contract and grant the issuance module permission to spend your tokens.

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FfuI1unu0AdHgyhPicMAW%2FScreenshot%202024-10-30%20at%204.15.08%E2%80%AFPM.png?alt=media&amp;token=d19a6d25-f760-4b3d-b91c-826cea57f843" alt=""><figcaption><p><em>Before</em> Connecting vs <em>After</em> Connecting</p></figcaption></figure>

After double-checking your inputs and confirming your wallet is connected, click the *Write* button; this should trigger a transaction in the connected wallet. Carefully review the transaction before signing, and note that this approval transaction will cost gas.

A [successful approval transaction](https://etherscan.io/tx/0xd10c9d9d8b0df06aab63409c920d45bc6d4c805e8cca859237dec638c20d5fe0) for dsETH can be seen below:

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F6020uhoL13XM71sSGypB%2FScreenshot%202024-10-30%20at%204.58.25%E2%80%AFPM.png?alt=media&amp;token=7bc4bd7c-3b03-4ed2-aa17-61decfd9ea6c" alt=""><figcaption></figcaption></figure>

***

### Step 4: Redeem Your Product Tokens

Finally, you can redeem your product tokens for the underlying components by interacting directly with the issuance module contract.

Go to the relevant issuance module contract on Etherscan and navigate to the *Contract* > *Write Contract* tab. Connect the wallet that holds your product tokens, then select the `redeem` function. Carefully paste in the corresponding values collected during previous steps...

* `_setToken` = the product's token contract address (from [Step 1](#step-1-identify-the-correct-contracts))
* `_quantity` = the uint256 value that represents your wallet balance (from [Step 2](#step-2-find-the-uint256-value-of-your-tokens))
* `_to` = the address that should receive the underlying components (i.e. your wallet)

See an example for dsETH below:

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FRyPBmbAoN8KPRcnyimpd%2FScreenshot%202024-10-30%20at%204.41.29%E2%80%AFPM.png?alt=media&amp;token=252c6ad1-493b-4901-863f-d4db4841c0b7" alt=""><figcaption></figcaption></figure>

After double-checking your inputs and confirming your wallet is connected, click the *Write* button; this should trigger a transaction in the connected wallet. Carefully review the transaction before signing, and note that this approval transaction will cost more gas than the previous approval step.

Once you have executed this transaction, the product tokens will be burned and the underlying components will be sent to your wallet (or to a different `_to` address that you provided).

A [successful redemption transaction ](https://etherscan.io/tx/0x14b1bd2e29a80aacea375581a9e2691dcbd89d53e3c7dad4f2f0809431fcc8a5)for dsETH can be found below:

<figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FQh84D0Y7CvqN0mUS2A2p%2FScreenshot%202024-10-30%20at%204.58.40%E2%80%AFPM.png?alt=media&amp;token=8748291d-1437-43d1-8bd9-eb13358c9cd7" alt=""><figcaption></figcaption></figure>

And that's it! You have successfully redeemed your product for the underlying components.

***

### Questions?

Drop into the [**Index Coop Discord Server**](https://discord.com/invite/indexcoop) - this is the fastest way to have a real person answer any questions you have!


# Governance


# $INDEX - Governance Token

The Index Coop DAO's native token.

### What's the token for?

$[**INDEX**](https://www.indexcoop.com/index) is a governance token used to vote on proposals for the Index Coop. $INDEX holders may vote on new products, changes to existing products, external protocol governance, treasury allocation decisions, and more. There is a maximum supply of 10 million $INDEX tokens.

The $INDEX token contract is natively deployed to Ethereum main net and can be verified with the following address: [**0x0954906da0Bf32d5479e25f46056d22f08464cab**](https://etherscan.io/token/0x0954906da0Bf32d5479e25f46056d22f08464cab)

### What is the initial distribution of the $INDEX token?

Here is a breakdown of the initial token distribution at launch:

* **1%** allocated to the historical airdrop for [$DPI](broken://pages/-MK38r5hu8wuL8vN6MUC) holders&#x20;
* **7.5%** allocated to the Methodologist program over 18 months (starting 60 days after launch)
* **9%** allocated to the 60-day liquidity mining program
* **52.5%** allocated to the [DAO treasury](/index-coop-community-handbook/resources/funded-wallets-appendix)
  * **5%** available immediately
  * **47.5%** vested over 3 years
* **28%** allocated to Set Labs Inc
* **2%** allocated to DeFi Pulse

### Non-Circulating Addresses

| Name                                  | Address                                      |
| ------------------------------------- | -------------------------------------------- |
| Index Coop Treasury                   | `0x9467cfadc9de245010df95ec6a585a506a8ad5fc` |
| Index Coop Contributor Ownership Pool | `0x236815b32b50cc80f5c6348396b1a9b09fd3e7f7` |
| Index Coop Treasury Fast              | `0xbf14566a37D96d55485bD281f5E7c547883A54C8` |
| Index Coop Treasury Operations        | `0xFafd604d1CC8b6B3B6CC859cF80Fd902972371C1` |
| Index Coop Treasury Investment        | `0x462A63D4405A6462b157341A78Fd1baBfD3F8065` |
| Index Coop Treasury Liquidity         | `0x3a36b94689f303aAf9BFE761068Efb8F78912023` |
| Contributor Vesting Contract 1        | `0x476cf198afac0fb13576f664cb49e5e658fd4322` |
| Contributor Vesting Contract 2        | `0x1bb64af7fe05fc69c740609267d2abe3e119ef82` |

### **$INDEX Tokenomics**

Currently, $INDEX derives value primarily from being a governance token; in practice, this takes the form of voting on improvement protocols for the Index Coop (IIPs), deciding which products to launch and maintain, and also for meta-governance proposals relating to underlying tokens held in $DPI (and future index products).

$INDEX should be viewed as a ‘proof-of-work’ token as it is distributed to those who contribute to the progress of Index Coop. We believe that focusing on decisions that benefit the DAO in the long term is what brings value to $INDEX, and it is ultimately up to $INDEX holders to determine broader value accrual for the DAO.

### $INDEX Liquidity

$INDEX tokens can currently be bought and sold through the following exchanges:

* [Coinbase](https://www.coinbase.com/price/index-cooperative) (centralized)
* [Gemini](https://www.gemini.com/prices/index-cooperative) (centralized)
* [Uniswap v3](https://info.uniswap.org/#/tokens/0x0954906da0bf32d5479e25f46056d22f08464cab) (decentralized)

For onchain buyers and sellers, DEX aggregators like [CoW Swap](https://swap.cow.fi/#/1/swap/WETH/INDEX), [Matcha](https://matcha.xyz/tokens/ethereum/0x0954906da0bf32d5479e25f46056d22f08464cab), and [LlamaSwap](https://swap.defillama.com/?chain=ethereum\&from=0x0000000000000000000000000000000000000000\&to=0x0954906da0bf32d5479e25f46056d22f08464cab) are recommended for best execution.


# Index Improvement Proposals (IIP) Overview

## What is an IIP?

An IIP is a proposal to update some function or standard within the Index Coop. IIPs can vary widely from proposing new Index products to requesting funds from the Index Treasury, to performing Index Coop smart contract upgrades. The IIP proposal process largely follows the same behavior as Ethereum's EIP process.

The Index Coop GitBook (what you are reading) contains details on how to engage with the IIP Process.&#x20;

**An archive of all historic IIPs can be found on this** [**tracker**](https://index-coop.notion.site/c62741fd18414b62aed0ae97bb9f319b?v=e801e8bc76fc4703aea4b8e4e091505f)**.** &#x20;

**Scheduled and live votes can be found on the Index Coop** [**snapshot**](https://snapshot.org/#/index-coop.eth) **page.**

### This is a high level overview of an IIP lifecycle:

1\. RECOMMENDED (optional): Informal discussion & sentiment check on the [Index Coop Discord](https://discord.gg/aKDwfaDy) server or[ forum](https://gov.indexcoop.com).  This is a good time to ensure that the relevant parties (affected, deciding, executing) are aligned on the desired outcome. **THE REMAINING STEPS ARE REQUIRED.**

2\. Make a formal proposal (use the [IIP template](https://docs.indexcoop.com/governance/index-improvement-proposals-iips/iip-template) or [Product IIP template](https://docs.indexcoop.com/governance/index-improvement-proposals-iips/product-dg-template)) on the[ Index Coop Forum](https://gov.indexcoop.com/c/leadership-governance/). The proposal should be categorized under Leadership and Governance -> Proposals, with the relevant tag (‘IIP’ or ‘Product’) added.

3\. After posting your proposal. There are two separate ways to proceed:

1. If you wish to queue the subsequent snapshot vote yourself (1000 INDEX is required to post on the [Index Coop Snapshot Page](https://snapshot.org/#/index-coop.eth)), proceed to step 5.
2. If you do not wish to interact with snapshot, or you do not have the minimum INDEX required. Tag the [@GovNest](https://gov.indexcoop.com/t/governance-requests-govnest-account-guidelines/4034) account in a comment to the post, and request that a [GovRep](https://docs.indexcoop.com/governance/index-improvement-proposals-iips/gov-reps) review the post and assign an IIP number.

4\. The Proposed IIP will be assigned to a GovRep:&#x20;

* The @GovNest account will introduce the assigned GovRep in a subsequent post. From this point in the process you will interface directly with the assigned GovRep; tag the @GovNest account if your GovRep is unresponsive or if a request requires elevated attention.
* If there are non-material edits the GovRep will make them and notify you.
* If the proposal does not comport with the template or lacks sufficient detail to be executable upon passage, the GovRep will provide this feedback in the forum.  In this case, an IIP number will not be assigned yet, and you are free to edit the post and call for a new GovRep review by tagging both the assigned GovRep and the @GovNest account.

5\. There is a 48-hour minimum discussion period following the initial forum post and IIP number assignment, after the first 48 hours, the proposal may be ported over to snapshot. Any significant edits to the post reset the 48-hour discussion period.

6\. Typically IIPs run starting on Mondays at 1800 UTC; however, any date that satisfies the 48-hour minimum discussion period may be chosen, it is advised however to keep the 1800 UTC start time.

7\. Once the IIP is queued on Snapshot by the author of the proposal or an assigned GovRep. Voting should run for 72-hours once the snapshot vote is live. For assistance with awareness around any votes that might be live, reach out to any of the Governance Nest coordinators mentioned below.

8\. After the vote ends, voting results should be posted on the forum as a comment to the original proposal.

9\. The specification of the proposal should contain sufficient detail to outline execution. If execution status is unclear from the IIP tracker, tag the @GovNest account in a comment to the original post and a representative from the Governance Nest will follow up on the request.&#x20;

**For assistance with this process:**

**Operational Governance Coordinator:** @sixtykeys (discord)

**Governance Nest Coordinator:** @mel.eth#0001 (discord)


# IIP Step-by-Step

This document outlines the end to end process for IIP contributors.

## Context

The IIP process is not just about fulfilling Index Coop’s functional duties. A streamlined and accessible IIP process can help cultivate a community which values open collaboration and ensure contributions are recognized and given a clear path to success.

## Objectives

* Make the path for community contribution simple, accessible, and achievable
* Set clear guidelines for “next steps” at each stage of proposal process

## Workflow

#### 1. Discord & Forum

This is the initial fielding research + discussion on Discord, governance forum, Twitter or any other venue. This is an informal process to gauge community interest in a potential Index Coop improvement.

Here are some questions a proposer might want to answer:

* Am I able to informally get any traction for this proposal in the Discord?
* Has this proposal been tried before?
* How does this proposal get the community closer to achieving its stated goals?
* What trade-offs are implicit in this improvement's adoption?

#### 2. Create an IIP Proposal

Once a contributor feels they have a rough consensus that their IIP is valuable, original, and achievable, they should submit an[ Index Improvement Proposal](/index-coop-community-handbook/resources/governance/index-improvement-proposals-iips/iip-template) on the [Index Coop governance forum](https://gov.indexcoop.com/c/proposals/5) according [to the IIP-0 guidelines.](https://gov.indexcoop.com/t/iip-0-context/63)

They should also tag an [IIP editor](https://docs.indexcoop.com/governance/iip-editors) to review the IIP and get an IIP number assigned.

#### 3. Editor Review & IIP Number Assignment

Once an IIP Editor has reviewed the proposal for basic adherence to IIP guidelines, the Editor will create a corresponding entry in the Index Coop GitBook, assign the IIP a number, and create a corresponding discord channel for discussion.

#### 4. Discussion and Minimum Waiting Period

The forum is the formal area to debate the merits of each IIP. While the IIP is on the forum in 'Draft' state, the IIP author is free to make changes to the proposal. Once the IIP author is satisfied with the proposal, they should change the proposal status from 'Draft' to 'Proposed', and contact an IIP editor to schedule a snapshot vote.

Per [IIP-26](https://snapshot.org/#/index-coop.eth/proposal/QmaE8dWs4pgMcG8Fu4oxq8aGyveDxv6YVLJHiRVpiSnsfK), the waiting period before a vote can be called is 48 hours.

#### 5. Calling a Vote

All IIPs are confirmed or rejected by the Index Coop via [Snapshot Vote.](https://snapshot.org/#/index) The IIP author is responsible for deciding a snapshot vote date with the following criteria in mind:

* The snapshot voting period may not begin until at least 48 hours after the IIP has been proposed.
* The IIP has a voting period of 3 days where token holders may vote FOR or AGAINST.
* For **standard IIP** and **meta-governance** votes to pass
  * 5% of circulating INDEX tokens must participate&#x20;
  * 50% or more must vote FOR.
* For a **Product Addition IIP** to pass
  * 10% of circulating INDEX tokens must participate
  * 60% or more must vote FOR.

#### 6. Post Voting Process

After the snapshot voting period has concluded an IIP Editor will tally votes and update the GitBook IIP record with the related voting data. If a proposal has passed, the IIP is moved from proposed to approved. If a proposal is rejected the IIP may be moved to rejected or back to WIP to be revised for future consideration.

#### 8. Implementation

In the early stages of Index Coop, approved IIPs will be executed via multisig where necessary. Otherwise, implementation of the IIP will vary on a case-by-case basis.

## Resources

* [IIP-0 Guidelines](https://gov.indexcoop.com/t/iip-0-context/63)
* [Example IIP](https://github.com/SetProtocol/IIPS/blob/master/IIPS/iip-001.md)


# Governance Representatives

### What is a GovRep?&#x20;

GovReps are responsible for the facilitation of the Index Coop Governance process. Responsibilities of a GovRep include fielding requests for snapshot votes, reviewing and editing proposals, carrying out announcements for votes, and informing the community of any votes that might be short of quorum. As a GovRep, you are also expected to keep all relevant governance trackers up to date.

### GovRep Process&#x20;

Below is the outlined process for carrying out the GovRep role. Your two main tools will be the [Index Coop Forum](https://gov.indexcoop.com/) and the [Index Coop snapshot](https://snapshot.org/#/index-coop.eth). So ensure that you have the Moderator role on the forum, and that your ethereum address has been added as an author on snapshot. An Index Coop email address is also a requirement, as this will allow you to interface with our Notion databases without issue. Votes will be assigned to you by the GovOps Pod coordinator, and will be distributed to all GovReps throughout a season to ensure each GovRep is active in the role.

### [GovRep Checklist ](https://docs.google.com/spreadsheets/d/1HzSSHUp6Y5ISUVo9B2qjIbAOgxh0tyeoltHMIjF63Yo/edit#gid=0)

The checklist linked above is a granular step by step guide on going from Forum request to snapshot. You can make a copy, and check off each step as you go through the process each time. While using this checklist is not a requirement, it helps make sure that you don’t miss any steps of the process.

Below is a high level overview of the process:

#### 1. Call to vote

The author of a proposal will make a call to vote on the forum, usually asking for an IIP number as well as a snapshot vote on a date of their choice. You are required to read through the proposal, ensuring that it follows the [IIP Template](https://docs.indexcoop.com/index-improvement-proposals/iip-template), and makes technical sense.&#x20;

It is the GovRep’s responsibility to check the IIP for language (spelling, grammar, sentence structure, etc.) and fix any errors. Any changes that need to be made to the proposal itself must first be communicated to and approved by the author. After editing is complete, the proposal is ported over to snapshot, and queued for a vote on the day requested by the author, to be run for 72 hours.

**2.** **Awareness**

Once a vote has been queued on snapshot, GovReps are expected to communicate this information back to the author on the IC Forum post where the request was originally made. When the vote goes live, announcements are expected to be made through 3 main platforms i.e Discord, Twitter and Telegram. Discord announcements go to the ‘governance’ announcement channel, Twitter announcements are carried out on the ‘Coop Gov’ account, and Telegram announcements are made to the ‘IC announcements’ channel.&#x20;

Follow up announcements are required for any snapshot votes that might be short of quorum, after 24 hour intervals of time. An announcement that quorum has not been reached has to be made after 24, 48 and 60 hours after the vote originally went live. Quorum announcements are expected to be made on all 3 of the main platforms i.e Discord, Twitter and Telegram.

**3. Documentation**

All information on IIPs is hosted on our Notion [IIP Tracker](https://index-coop.notion.site/c62741fd18414b62aed0ae97bb9f319b?v=e801e8bc76fc4703aea4b8e4e091505f). As a GovRep you are expected to fill out an entry for every IIP that you attend to, this includes information such as the vote name, links to the forum and snapshot; and once the vote is closed number of INDEX participated, number of voters, etc.\
\
\ <br>


# IIP Template

This is the template for new IIPs. Note that an IIP number will be assigned by a GovRep.

**IIP**: \[to be assigned]\
**Status:** \[Discussion -> Proposed]\
**Author(s):** \[a list of author(s) names, usernames]\
**Discussions-to:** \[Create a new thread on <https://gov.indexcoop.com/> and drop the link here, or link any related threads]\
**Created:** \[date created on MM-DD-YYYY]\
**Quorum:** \[5% of [Votable Supply](https://dune.com/queries/569413)]

### Simple Summary

Simply describe the outcome the proposed change intends to achieve. This should be non-technical and accessible to a casual community member.

### Abstract

A short (\~200 word) description of the proposed change, the abstract should clearly describe the proposed change. This is what *will* be done if the IIP is implemented, not *why* it should be done or *how* it will be done. If the IIP proposes deploying a new contract, write, "We propose to deploy a new contract that will do x".

### Motivation

This is the problem statement. This is the *why* of the IIP. It should clearly explain *why* the current state of the protocol is inadequate. It is critical that you explain *why* the change is needed, if the IIP proposes changing how something is calculated, you must address *why* the current calculation is inaccurate or wrong. This is not the place to describe how the IIP will address the issue!

### Specification

#### Overview

This is a high-level overview of *how* the IIP will solve the problem. The overview should clearly describe how the new feature will be implemented.

#### Rationale

This is where you explain the reasoning behind how you propose to solve the problem. Why did you propose to implement the change in this way, what were the considerations and trade-offs. The rationale fleshes out what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during the discussion.

#### Technical Specification

The technical specification should outline the public API of the changes proposed. That is, changes to any of the interfaces of the Index Coop currently exposes or the creations of new ones.

#### Test Cases

Test cases for implementation are mandatory for IIPs but can be included with the implementation.

### Voting

**FOR:**

Short description of what a future voter will be voting for.

**AGAINST:**

Short description of what a future voter will be voting against.

### Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).


# Product (DG) Template

This is the template for new Product (DG) IIPs. Note that an IIP number will be assigned by a GovRep.

**IIP**: \[to be assigned]\
**Status:** \[Discussion -> Proposed]\
**Author(s):** \[a list of author(s) names, usernames]\
**Discussions-to:** \[Create a new thread on <https://gov.indexcoop.com/> and drop the link here]\
**Created:** \[date created on MM-DD-YYYY]\
**Quorum:** \[10% of [Votable Supply](https://dune.com/queries/569413)]

## 1.0 Abstract

‌Provide a brief (2-3 paragraph) description of the proposed product. The first 1-2 sentences should be a simple summary for a lay reader. Specify if the proposal is seeking approval for one product or a suite.

## 2.0 Market information

### 2.1 Target customer segments & user stories

List the target customer segments in descending priority, for example, defi-native, tradfi-convert, DAO treasuries. Give a user story for each segment, eg, ‘As a defi-native investor, product ABC gives me …’

### 2.2 Market research

Describe the market survey results or any other hard evidence of market demand. For market survey results, give the method, date, sample size, margin of error, comparison to other products in the survey, and any potential sources of bias. References to general market trends are not sufficient market validation.

### 2.3 Size of opportunity

Give the predicted AUM, for example, at 6, 12, and 24 months post-launch. This can be based on the past performance of similar product launches. Also describe any limits to growth such as low underlying liquidity.

The purpose of this section is to give an approximate forecast of what the product AUM will be and not to give the total addressable market. Accordingly, do not use top-down market assessments. For example, do not say the derivatives market is $100B and we plan to capture 1% of that market for a $1B AUM.

### 2.4 Differentiation

Describe how this product is different from other products on the market and/or under development at Index Coop.

### 2.5 Marketing support / distribution / partnerships

Describe the role that branding partners or distribution channels will play.

### 2.6 Marketing risks and weaknesses

Describe the most likely reasons the product will fail to live up to its potential, for example, the concept is too early for the market, strong competition, insufficient liquidity mining incentives, etc.

## 3.0 Financials

### 3.1 Revenue

Give the streaming fee, mint/redeem fee and any other revenue sources. List any commitments to provide transparency on product costs and asset decay.

### 3.2 Fee splits

List any agreed or potential fee splits, eg, to branding partners. All fee splits will be post gas costs.

### 3.3 Product economics

Describe the expected monthly revenue, monthly costs (eg from rebalancing), profit margin, and any assumptions. All products should have >70% gross profit margin (excluding liquidity mining incentives) at launch.

### 3.4 Financial forecast

Give at least a 2-year financial forecast for the profit margin and cash flow. Naturally this will involve many assumptions, which is okay if they are reasonable. The purpose of the forecast is to confirm that the product team has fully thought through the product profitability rather than to provide a fully accurate forecast.

## 4.0 Specification

### 4.1 Product design

#### Methodology

Describe how the product will be built.

### Engineering lift

Give a brief summary of the engineering lift required and any novel adaptors or integrations required. Specify the lift and new requirements for both pre-launch and post-launch.

#### Deployments and bridges

Describe on which chain/s the token will be natively deployed and bridged to. For example, ‘deployed natively on mainnet and bridged to Polygon and Arbitrum.’

#### Token inclusion/exclusion criteria \[if applicable]

Token inclusion / exclusion criteria, for example, minimum market cap and liquidity.

#### Index weight calculation \[if applicable]

Formula for calculating the index weights, for example, market cap and liquidity weighted. Specify any allocation caps. Note that using multiple allocation caps can be very expensive on mainnet.

#### Rebalancing approach \[if applicable]

For products on mainnet, we recommend no rebalancing. If rebalancing is essential for the product strategy describe the rebalancing approach including frequency. Note that rebalancing is very gas expensive on mainnet and decays the underlying assets.

#### Recomposition approach \[if applicable]

Criteria for adding and removing tokens from the index. Note that recomposition is very gas expensive on mainnet and decays the underlying assets through slippage. We aim for <5% asset decay/year maximum.

#### Intrinsic productivity \[if applicable]

Describe intrinsic productivity, if any

#### Governance \[if applicable]

Describe governance model, if any.

### 4.2 Example composition

Give a table of the underlying composition including the weights, market cap, underlying liquidity, dex’s and overallocation factor for each component (if applicable). The liquidity should be defined as the trading depth at 100 bps including the LP fee. The overallocation factor is the ratio between the component allocation for a $1M AUM and the trading depth at 100 bps.

### 4.3 On-Chain liquidity analysis of underlying tokens

* For general indices, this will consider:
  * The price impact on each underlying token for a $1 M exchange issuance / arb trade.
  * Number of trades (with price impact < 50 bp / 0.005%) to add / remove the token from the fund at $10,000,000.
  * Trades should be on a single pool on L1 using Uniswap v2, Uniswap v3, Sushiswap or Balancer.
* For leveraged indices, this will consider:
  * Size of a trade (dollar and asset value) that will incur a 1% transaction cost on each available DEX. Transaction cost includes fees and price impact.
  * Size of available liquidity on pairs used for rebalance transactions & number of hops required to rebalance if using more than one pair
* Highlight the smallest amount of liquidity of any pair used for rebalancing. This is the weakest point in the rebalance process and can be used to stress test the product.

### 4.4 Backtest results \[if applicable]

Give backtest results, preferably covering a market upcycle and downcycle. Compare to ETH or the most relevant comparator.

## 5.0 Product liquidity

Specify whether the product will be launching on a dex or exchange issuance and why.

For a dex launch, specify the LP pair (XXX:ETH) and dex (SushiSwap, Uiniswap v3 etc) for the initial liquidity. Discuss whether the liquidity is expected to be self-sustaining (e.g. highly traded FLI products) or need ongoing liquidity mining incentives.

## 6.0 ‌Author Background

List the authors and their roles.

### Copyright

‌Copyright and related rights waived via[ CC0](https://creativecommons.org/publicdomain/zero/1.0/).


# Meta-Governance

### **What is Meta-governance?**

Meta-governance refers to the ability for $INDEX token holders to vote on governance proposals for other protocols. Governance tokens held within the $DPI index can be used to vote on their respective proposals. Currently this is limited to Uniswap, Compound, YFI, Balancer and AAVE. You can head to the [Index Coop snapshot page](https://snapshot.org/#/index-coop.eth) if you hold $INDEX to check for open proposals and cast your vote!

### How does it work exactly?

Meta-governance voting is carried via the GovernanceModule in the following steps:

1. A governance vote is called for AAVE, Compound, Uniswap, Balancer, or Yearn.<br>
2. The proposal is duplicated on Index Coop’s [snapshot page](https://www.indexcoop.com/vote). <br>
3. $INDEX holders vote on the meta governance proposal via snapshot.<br>
4. The meta governance voting period will end 24 hours before the underlying (AAVE, Compound, Balancer, Yearn, Badger DAO or UNI) governance vote ends.<br>
5. At the end of the voting period if a **5% quorum** is reached, the Index Coop multisig will vote according to the related snapshot proposal majority. Votes will not be split proportionally, so reaching quorum 'for' a proposal will use the full weight of tokens held by DPI in favor and likewise if majority 'against'.<br>
6. With the implementation of [IIP-51](https://snapshot.org/#/index-coop.eth/proposal/QmdXkzHzo9NvMBXxX9zFY6rwDv4yVTtfCnNgrxsNFbYzZg), the Meta Governance Committee (MGC) will step in and vote on behalf of the community, should the 5% quorum not be reached. The MGC is a body of 5 members elected by the community (for 3-month terms). Currently community members TrotNixonLine (David), Matthew Graham, Penn Blockchain, ncitron, and Lavi form the MGC.


# Delegation

How to Delegate your INDEX Votes

## [Guide with images](https://indexcoop.com/blog/delegate-index-votes)

## How do I delegate my $INDEX voting power?

1. Visit the Index Coop Discord server, and head over to the #delegates channel under the governance nest category. You can find a [spreadsheet](https://docs.google.com/spreadsheets/d/1ZKgxmLVH6585UPJhpjN3ZRCjxWHP9zCNbENUF4XzlcI/edit#gid=0) pinned to the chat, with the names of all the delegates, and a brief description of the delegate, as well as a link to their voting history (You can view this manually by going to [Boardroom](https://app.boardroom.info/) and pasting their ethereum address in the search bar).
2. Once you have decided on a suitable candidate, you can visit the Index Coop Snapshot page. Connect your wallet to snapshot, and select the ‘[delegate](https://snapshot.org/#/delegate/index-coop.eth)’ option on the upper left side.
3. Once you are on the delegate page, simply input the address of your chosen delegate, and select ‘confirm’. This will bring up a transaction that occurs on-chain that you will need to sign (this will cost gas).
4. Once the transaction is confirmed, you have successfully delegated your voting power, congratulations. If you wish to un-delegate your votes at any given time, simply go back to the ‘delegate’ page linked in step 2, a button will appear that allows you to un-delegate and get back your voting power (this will also cost gas).

If you wish to vote on a proposal, you can still do so yourself. Any vote you make on a given proposal will override the vote made by the delegate.

Note that your $INDEX tokens never leave your wallet. The only thing being transferred is the voting power carried by the $INDEX tokens.

## How do I become a delegate?

Becoming a delegate is easy. Remember, though, that as a delegate, you are expected to be an active participant in Index Coop governance and metagovernance. So you should be sure that you are prepared to invest your time and energy in understanding Index Coop proposals and making informed decisions about how you will vote.

To become a delegate:

1. Visit the Index Coop Discord server, and head over to the #delegates channel under the Governance Nest category. You can find a [spreadsheet](https://docs.google.com/spreadsheets/d/1ZKgxmLVH6585UPJhpjN3ZRCjxWHP9zCNbENUF4XzlcI/edit#gid=0) pinned to the chat, input the required details, including your discord name, your ethereum wallet address that you will use for voting, and your voting history. Voting history can be found by adding your voting address at the end of this link (<https://app.boardroom.info/voter/0x…>.).
2. Communicate your intention to become a delegate. Delegates are expected to make a formal introduction on the #delegates channel on Discord; as well as on the Index Coop forum. You can also use Twitter to announce your decision to become a delegate, but this step is not required.
3. Once you have become a delegate, you are expected to make a concerted effort to vote as often as you can. You should also take the time to understand what is being proposed and what effect it has on the Index Coop. It is also important to communicate how you will be voting on a proposal. This can be done by leaving a comment on the related forum post. A description of why you have made this decision is also helpful.
4. In the event your address is compromised you should communicate it via the #delegates channel, the delegates spreadsheet and in the forum so that users can un-delegate from your address.

Happy Voting!


# Data & Analytics

access key data for Index Coop products

Third parties can access important data and analytics for Index Coop products through several methods:

1. [Public API Library](#public-api-library)
2. [Analytics SDK](#analytics-sdk)
3. [Dune](#dune)

Please notify us in [Discord](https://discord.com/channels/762061559744299010/1029053563814563980) if any of these resources are not available or functional!

### Public API Library

Key data points for all Index Coop products are included in the tables below and are consumable via the relevant endpoints. These endpoints use a combination of direct on-chain data as well as CoinGecko data.

**Aggregate APIs** return the following data points for each product: symbol, address, name, decimals, total supply, market price, NAV price, market cap, 24h change, 24h volume

<table><thead><tr><th width="185">Product</th><th>URL</th></tr></thead><tbody><tr><td>DPI</td><td><a href="https://api.indexcoop.com/dpi/analytics">https://api.indexcoop.com/dpi/analytics</a></td></tr><tr><td>MVI</td><td><a href="https://api.indexcoop.com/mvi/analytics">https://api.indexcoop.com/mvi/analytics</a></td></tr><tr><td>BED</td><td><a href="https://api.indexcoop.com/bed/analytics">https://api.indexcoop.com/bed/analytics</a></td></tr><tr><td>ic21</td><td><a href="https://api.indexcoop.com/ic21/analytics">https://api.indexcoop.com/ic21/analytics</a></td></tr><tr><td>dsETH</td><td><a href="https://api.indexcoop.com/dseth/analytics">https://api.indexcoop.com/dseth/analytics</a></td></tr><tr><td>icETH</td><td><a href="https://api.indexcoop.com/iceth/analytics">https://api.indexcoop.com/iceth/analytics</a></td></tr><tr><td>gtcETH</td><td><a href="https://api.indexcoop.com/gtceth/analytics">https://api.indexcoop.com/gtceth/analytics</a></td></tr><tr><td>ETH2x-FLI</td><td><a href="https://api.indexcoop.com/eth2xfli/analytics">https://api.indexcoop.com/eth2xfli/analytics</a></td></tr><tr><td>BTC2x-FLI</td><td><a href="https://api.indexcoop.com/btc2xfli/analytics">https://api.indexcoop.com/btc2xfli/analytics</a></td></tr><tr><td>ic21</td><td><a href="https://api.indexcoop.com/ic21/analytics">https://api.indexcoop.com/ic21/analytics</a></td></tr><tr><td>ETH3x-ARB</td><td><a href="https://api.indexcoop.com/data/tokens/0xA0A17b2a015c14BE846C5d309D076379cCDfa543?metrics=nav">https://api.indexcoop.com/data/tokens/0xA0A17b2a015c14BE846C5d309D076379cCDfa543?metrics=nav</a></td></tr><tr><td>BTC3x-ARB</td><td><a href="https://api.indexcoop.com/data/tokens/0x3bDd0d5c0C795b2Bf076F5C8F177c58e42beC0E6?metrics=nav">https://api.indexcoop.com/data/tokens/0x3bDd0d5c0C795b2Bf076F5C8F177c58e42beC0E6?metrics=nav</a></td></tr><tr><td>ETH3x-Base</td><td><a href="https://api.indexcoop.com/data/tokens/0x329f6656792c7d34D0fBB9762FA9A8F852272acb?metrics=nav">https://api.indexcoop.com/data/tokens/0x329f6656792c7d34D0fBB9762FA9A8F852272acb?metrics=nav</a></td></tr></tbody></table>

**Individual APIs** return discrete data points for each product:

<table><thead><tr><th width="143">Product</th><th width="164">Data Point</th><th>URL</th></tr></thead><tbody><tr><td>dsETH</td><td>APR</td><td><a href="https://api.indexcoop.com/dseth/apy">https://api.indexcoop.com/dseth/apy</a></td></tr><tr><td>dsETH</td><td>NAV</td><td><a href="https://api.indexcoop.com/dseth/nav">https://api.indexcoop.com/dseth/nav</a></td></tr><tr><td>dsETH</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/dseth/supply">https://api.indexcoop.com/dseth/supply</a></td></tr><tr><td>dsETH</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/dseth/marketcap">https://api.indexcoop.com/dseth/marketcap</a></td></tr><tr><td>dsETH</td><td>Volume</td><td><a href="https://api.indexcoop.com/dseth/volume">https://api.indexcoop.com/dseth/volume</a></td></tr><tr><td>icETH</td><td>APR</td><td><a href="https://api.indexcoop.com/iceth/apy">https://api.indexcoop.com/iceth/apy</a></td></tr><tr><td>icETH</td><td>NAV</td><td><a href="https://api.indexcoop.com/iceth/nav">https://api.indexcoop.com/iceth/nav</a></td></tr><tr><td>icETH</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/iceth/supply">https://api.indexcoop.com/iceth/supply</a></td></tr><tr><td>icETH</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/iceth/marketcap">https://api.indexcoop.com/iceth/marketcap</a></td></tr><tr><td>icETH</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/iceth/volume">https://api.indexcoop.com/iceth/volume</a></td></tr><tr><td>gtcETH</td><td>APR</td><td><a href="https://api.indexcoop.com/gtceth/apy">https://api.indexcoop.com/gtceth/apy</a></td></tr><tr><td>gtcETH</td><td>NAV</td><td><a href="https://api.indexcoop.com/gtceth/nav">https://api.indexcoop.com/gtceth/nav</a></td></tr><tr><td>gtcETH</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/gtceth/supply">https://api.indexcoop.com/gtceth/supply</a></td></tr><tr><td>gtcETH</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/gtceth/marketcap">https://api.indexcoop.com/gtceth/marketcap</a></td></tr><tr><td>gtcETH</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/gtceth/volume">https://api.indexcoop.com/gtceth/volume</a></td></tr><tr><td>ic21</td><td>NAV</td><td><a href="https://api.indexcoop.com/ic21/nav">https://api.indexcoop.com/ic21/nav</a></td></tr><tr><td>ic21</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/ic21/supply">https://api.indexcoop.com/ic21/supply</a></td></tr><tr><td>ic21</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/ic21/marketcap">https://api.indexcoop.com/ic21/marketcap</a></td></tr><tr><td>ic21</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/ic21/volume">https://api.indexcoop.com/ic21/volume</a></td></tr><tr><td>DPI</td><td>NAV</td><td><a href="https://api.indexcoop.com/dpi/nav">https://api.indexcoop.com/dpi/nav</a></td></tr><tr><td>DPI</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/dpi/supply">https://api.indexcoop.com/dpi/supply</a></td></tr><tr><td>DPI</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/dpi/marketcap">https://api.indexcoop.com/dpi/marketcap</a></td></tr><tr><td>DPI</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/dpi/volume">https://api.indexcoop.com/dpi/volume</a></td></tr><tr><td>MVI</td><td>NAV</td><td><a href="https://api.indexcoop.com/mvi/nav">https://api.indexcoop.com/mvi/nav</a></td></tr><tr><td>MVI</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/mvi/supply">https://api.indexcoop.com/mvi/supply</a></td></tr><tr><td>MVI</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/mvi/marketcap">https://api.indexcoop.com/mvi/marketcap</a></td></tr><tr><td>MVI</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/mvi/volume">https://api.indexcoop.com/mvi/volume</a></td></tr><tr><td>BED</td><td>NAV</td><td><a href="https://api.indexcoop.com/bed/nav">https://api.indexcoop.com/bed/nav</a></td></tr><tr><td>BED</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/bed/supply">https://api.indexcoop.com/bed/supply</a></td></tr><tr><td>BED</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/bed/marketcap">https://api.indexcoop.com/bed/marketcap</a></td></tr><tr><td>BED</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/bed/volume">https://api.indexcoop.com/bed/volume</a></td></tr><tr><td>ETH2x-FLI</td><td>NAV</td><td><a href="https://api.indexcoop.com/eth2xfli/nav">https://api.indexcoop.com/eth2xfli/nav</a></td></tr><tr><td>ETH2x-FLI</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/eth2xfli/supply">https://api.indexcoop.com/eth2xfli/supply</a></td></tr><tr><td>ETH2x-FLI</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/eth2x/marketcap">https://api.indexcoop.com/eth2xfli//marketcap</a></td></tr><tr><td>ETH2x-FLI</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/eth2xfli//volume">https://api.indexcoop.com/eth2xfli//volume</a></td></tr><tr><td>BTC2x-FLI</td><td>NAV</td><td><a href="https://api.indexcoop.com/btc2xfli/nav">https://api.indexcoop.com/btc2xfli/nav</a></td></tr><tr><td>BTC2x-FLI</td><td>Current Supply</td><td><a href="https://api.indexcoop.com/btc2xfli/supply">https://api.indexcoop.com/btc2xfli/supply</a></td></tr><tr><td>BTC2x-FLI</td><td>Market Cap</td><td><a href="https://api.indexcoop.com/btc2x/marketcap">https://api.indexcoop.com/btc2xfli/marketcap</a></td></tr><tr><td>BTC2x-FLI</td><td>24h Volume</td><td><a href="https://api.indexcoop.com/btc2xfli/volume">https://api.indexcoop.com/btc2xfli/volume</a></td></tr></tbody></table>

### Analytics SDK

Alternatively, users can take advantage of an SDK to generate the same data points. The relevant details and documentation can be found in the [IndexCoop / analytics-sdk](https://github.com/IndexCoop/analytics-sdk#readme) github repo.

### Dune

Product-specific Dune dashboards are provided for all Index Coop products, and users are free to fork any queries and create their own endpoints. The following table will take you to the most current dashboards for each product:

<table><thead><tr><th width="196">Product</th><th>Dune Dashboard</th></tr></thead><tbody><tr><td><a href="/index-coop-community-handbook/products/earn/interest-compounding-eth-index-iceth">icETH</a></td><td><a href="https://dune.com/index_coop/icETH">https://dune.com/index_coop/icETH</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/diversified-staked-eth-index-dseth">dsETH</a></td><td><a href="https://dune.com/index_coop/dseth">https://dune.com/index_coop/dseth</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/gitcoin-staked-eth-index-gtceth">gtcETH</a></td><td><a href="https://dune.com/indexcoop/gitcoin-staked-eth-index">https://dune.com/indexcoop/gitcoin-staked-eth-index</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/defi-pulse-index-dpi">DPI</a> *</td><td><a href="https://dune.com/index_coop/sector-products">https://dune.com/index_coop/sector-products</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/metaverse-index-mvi">MVI</a> *</td><td><a href="https://dune.com/index_coop/sector-products">https://dune.com/index_coop/sector-products</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/bankless-bed-index-bed">BED</a> *</td><td><a href="https://dune.com/index_coop/sector-products">https://dune.com/index_coop/sector-products</a></td></tr><tr><td><a href="/index-coop-community-handbook/products/legacy-products/index-coop-large-cap-index-ic21">ic21</a></td><td><a href="https://dune.com/index_coop/ic21">https://dune.com/index_coop/ic21</a></td></tr><tr><td><a href="broken://pages/-McQDVIUAUOZz5B39dGW">Leverage Suite</a></td><td><a href="https://dune.com/index_coop/leverage-products">https://dune.com/index_coop/leverage-products</a></td></tr></tbody></table>

&#x20;*\* select the appropriate product in the Index Coop Sector Token dropdown*

Additional dashboards can be found under Index Coop "Teams" in Dune. They can be found under the "[indexcoop](https://dune.com/indexcoop)" and "[Index Coop](https://dune.com/index_coop)" team pages.


# Multisigs

A list of all wallets pertaining to the Index Coop.

### Ethereum Mainnet

<table data-full-width="true"><thead><tr><th width="260.33333333333337">Name</th><th width="302">Purpose</th><th>Address</th></tr></thead><tbody><tr><td>Treasury Account</td><td>Long-term management of $INDEX tokens <em>not</em> allocated to contributors.</td><td><a href="https://etherscan.io/address/0x9467cfADC9DE245010dF95Ec6a585A506A8ad5FC">0x9467cfADC9DE245010dF95Ec6a585A506A8ad5FC</a></td></tr><tr><td>Ownership Account</td><td>Long-term management of $INDEX tokens allocated to contributors.</td><td><a href="https://etherscan.io/address/0x236815b32b50cc80F5C6348396b1A9B09Fd3E7f7">0x236815b32b50cc80F5C6348396b1A9B09Fd3E7f7</a></td></tr><tr><td>Investment Account</td><td>Long-term management of capital, predominantly stablecoins.</td><td><a href="https://etherscan.io/address/0x462A63D4405A6462b157341A78Fd1baBfD3F8065">0x462A63D4405A6462b157341A78Fd1baBfD3F8065</a></td></tr><tr><td>Operations Account</td><td>Management of day-to-day operations, such as contributor rewards and expense requests.</td><td><a href="https://etherscan.io/address/0xFafd604d1CC8b6B3B6CC859cF80Fd902972371C1">0xFafd604d1CC8b6B3B6CC859cF80Fd902972371C1</a></td></tr><tr><td>"Fast" Operations Account</td><td>Management of <strong>time-sensitive</strong> day-to-day operations, such as swaps.</td><td><a href="https://etherscan.io/address/0xbf14566a37D96d55485bD281f5E7c547883A54C8">0xbf14566a37D96d55485bD281f5E7c547883A54C8</a></td></tr><tr><td>Launch Support Account</td><td>Management of token launch enabling activities and partnerships</td><td><a href="https://etherscan.io/address/0x3a36b94689f303aAf9BFE761068Efb8F78912023">0x3a36b94689f303aAf9BFE761068Efb8F78912023</a></td></tr><tr><td>Engineering Account</td><td>Management of smart contract infrastructure, funded with ETH.</td><td><a href="https://etherscan.io/address/0x6904110f17feD2162a11B5FA66B188d801443Ea4">0x6904110f17feD2162a11B5FA66B188d801443Ea4</a></td></tr><tr><td>Protocol Controller</td><td>Management of Index Protocol</td><td>0x8eCDB83Ccb1ce979a75908Ae9a044C52fab9fE59</td></tr></tbody></table>

### Arbitrum One

<table data-full-width="true"><thead><tr><th>Name</th><th>Purpose</th><th>Address</th></tr></thead><tbody><tr><td>Operations</td><td>Management of day-to-day operations</td><td><a href="https://arbiscan.io/address/0xbd6b8eec7b940dbe196fe3bac7b51e63435c8ae9">0xBd6b8EEc7b940DBE196Fe3Bac7B51E63435c8Ae9</a></td></tr><tr><td>Protocol Controller</td><td>Management of Index Protocol</td><td><a href="https://arbiscan.io/address/0x19Fa8783f2B57F3eC6C9542926A06698e30eF7B4">0x19Fa8783f2B57F3eC6C9542926A06698e30eF7B4</a></td></tr><tr><td>Product Controller</td><td>Management of Index Coop Products</td><td><a href="https://arbiscan.io/address/0x40fB5267fd724A040B46ddce59F25e1229e61d32">0x40fB5267fd724A040B46ddce59F25e1229e61d32</a></td></tr></tbody></table>

The following Zapper wallet bundles provide convenient overviews of all the accounts listed above.

* [All Accounts, *including* $INDEX](https://zapper.xyz/bundle/0x9467cfadc9de245010df95ec6a585a506a8ad5fc,0x462a63d4405a6462b157341a78fd1babfd3f8065,0xfafd604d1cc8b6b3b6cc859cf80fd902972371c1,0x3a36b94689f303aaf9bfe761068efb8f78912023,0xbf14566a37d96d55485bd281f5e7c547883a54c8,0x236815b32b50cc80f5c6348396b1a9b09fd3e7f7,0x6904110f17fed2162a11b5fa66b188d801443ea4?label=IC%20-%20Inc.%20%24INDEX\&id=0xa4d04c856361bf244151fb7b4caa3bea23b4df55)
* [All Accounts, *excluding* $INDEX](https://zapper.xyz/bundle/0x462a63d4405a6462b157341a78fd1babfd3f8065,0xfafd604d1cc8b6b3b6cc859cf80fd902972371c1,0x3a36b94689f303aaf9bfe761068efb8f78912023,0xbf14566a37d96d55485bd281f5e7c547883a54c8,0x6904110f17fed2162a11b5fa66b188d801443ea4?label=IC%20-%20Ex.%20%24INDEX\&id=0x49920855656b196f91f5e6b78dfc9ea5c8be3fdc)


# Press Kit

These guidelines break down the visual identity of The Index Coop and hope to communicate the necessary information for all community members, partners, and stakeholders to consistently represent the brand across different regions and platforms.

{% file src="/files/TIqhCDbUmIxdicoQv97a" %}

All relevant Index Coop brand and product logos can be found either below or on our [Brand Resources](https://www.notion.so/index-coop/Index-Coop-Brand-Resources-16bfd8ba832046948bf747b4dc88f899) page on Notion.&#x20;

## Index Coop Logos

### Logo

![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FNctGsIaXSQNUBZhuPcEM%2FIndex%20Logo%20Black.png?alt=media\&token=9572c5f4-24c4-403f-9495-9b14dcd521a6)![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fx7jvVwrlkoKbyL4YYTnG%2FIndex%20Logo%20White.png?alt=media\&token=8a2b4d86-2610-4264-aa29-7a4cb4ba050d)

![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fzrl3buLLPTI0u7SnMxiH%2FIndex%20Logo%20Black.svg?alt=media\&token=c2d43dae-f4cf-499c-b71f-817d3eb2f43b)![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FIXP4nIGUxOIIbgYcOxBy%2FIndex%20Logo%20White.svg?alt=media\&token=d48ad49c-86fc-4858-a8e0-e4beb2058435)

![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FsMtEKYvfZmqsKaXYIBbe%2FIndex%20Icon%20Black.png?alt=media\&token=1ad04e9e-e9d3-4560-ab16-e59821659bfa)![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FuZPwNWlKgK3TPFD1qfyM%2FIndex%20Icon%20White.png?alt=media\&token=ca7c0672-625d-4f11-adeb-9749fa1d306f)

![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FYRx6tySaFSwy7wVy32lC%2FIndex%20Icon%20Black.svg?alt=media\&token=3e37cce6-e992-4f5f-a487-8905054ac87e)![](https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FyTGNAXRx4glBm53YnPXf%2FIndex%20Icon%20White.svg?alt=media\&token=4f6b6232-0f80-4f2d-ae42-6820132055e8)

<div><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FyatQqUCK4r8Ay9QlZHkH%2FIndex-Logo-Black-nontransparent.png?alt=media&amp;token=7341d2aa-38a4-49d0-8470-7dee707ed196" alt=""><figcaption></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FobX5WYOGok35eapbAUhM%2FIndex-Logo-White-nontransparent.png?alt=media&amp;token=764dcc69-94ef-4e19-b39b-970a5dc367b4" alt=""><figcaption></figcaption></figure></div>

### Index Product Logos

#### DPI

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fw8IPyFRE6t4iAf6u9AQr%2FDPI_token_logo.svg?alt=media&amp;token=c72b0ed3-d632-4c64-8711-d2a65bbe4e75" alt="" width="113"><figcaption><p>DPI.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FM6f5KIon5h66Am2Alvvl%2FDPI%20Logo.png?alt=media&amp;token=a8f479cc-70cb-42e3-83d5-eca2f243b923" alt="" width="188"><figcaption><p>DPI.png</p></figcaption></figure></div>

#### MVI

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FBqzQNT79wxYAsVgAAWrn%2FMVI_token_logo.svg?alt=media&amp;token=b51e314d-2ac8-4508-b527-3e5637e47f33" alt="" width="113"><figcaption><p>MVI.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FXNwo9fki57vMO4aPtZKv%2FMVI_token_logo.png?alt=media&amp;token=636e7f77-7634-41d0-bf32-1802bc056632" alt="" width="188"><figcaption><p>MVI.png</p></figcaption></figure></div>

#### ic21

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FcDSeXaSIKVBEDvDICai7%2FIC21_RoundedCorners_.svg?alt=media&amp;token=8ef5a8b9-96a5-4906-a542-9e59848ed26f" alt="" width="80"><figcaption></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F6o12iG7NlLfY1eZrm0N6%2FIC21_RoundedCorners_.png?alt=media&amp;token=4c85eaaa-30c2-4b6f-b2e3-8ffd801d9e47" alt="" width="188"><figcaption></figcaption></figure></div>

#### BED

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F25B6x4915pG9mgsYmDkA%2FBED_Logo_1.svg?alt=media&amp;token=636bdced-8e64-48a5-9201-98b3b84b9c3f" alt="" width="135"><figcaption><p>BED.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FUBJDAYlpcwtarJnOJX32%2FBED_Logo.png?alt=media&amp;token=f70d1bba-275f-49f9-af6c-9893a321aef3" alt="" width="135"><figcaption><p>BED.png</p></figcaption></figure></div>

##

## Yield Product Logos

#### hyETH

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FdhLNlcW3kzPAyIhp2EGo%2FhyETH%20Logo.svg?alt=media&amp;token=8061ee65-a879-4aa3-8235-4ed0126cee22" alt="" width="75"><figcaption><p>hyETH.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FWw7AY8A7bEHEp7tjVeu5%2FhyETH%20Logo.png?alt=media&amp;token=978622eb-7ee2-41d1-8d44-c65432d6e7c0" alt="" width="126"><figcaption><p>hyETH.png</p></figcaption></figure></div>

#### icETH

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FxvjjThY73dSXNBOgsy33%2FicETH-token-logo.svg?alt=media&amp;token=f0509ff8-20c6-403e-8c02-67627032702d" alt="" width="75"><figcaption><p>icETH.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FbWgawOiN4z3fxtXaaUMk%2FicETH-token-logo.png?alt=media&amp;token=5ed0c8e9-b25f-48c8-b86b-65925e28609e" alt="" width="188"><figcaption><p>icETH.png</p></figcaption></figure></div>

#### dsETH

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fitk8HqrGLwnmdSBPNeQ2%2FdsETH-logo.svg?alt=media&amp;token=ca8524a1-6d3f-4cdb-b365-89d38848196b" alt="" width="75"><figcaption><p>dsETH.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FZsxoiuwaQEII7wratDmS%2FdsETH-logo.png?alt=media&amp;token=ffa3ef93-b053-4eb3-9bfd-553acb7819ed" alt="" width="188"><figcaption><p>dsETH.png</p></figcaption></figure></div>

#### gtcETH

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F5IJKId3YwkcRM08ol6nL%2FgtcETH-token-logo.svg?alt=media&amp;token=54043cad-9ad1-49f6-acdd-f7a44b66c006" alt="" width="75"><figcaption><p>gtcETH.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F6TsFUX3lpOs0XpOYzjFf%2FgtcETH-logo2x.png?alt=media&amp;token=6e152797-6c55-4a31-bee2-8ed7483db52f" alt="" width="188"><figcaption><p>gtcETH.png</p></figcaption></figure></div>

###

### Leverage Product Logos

#### ETH2x

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FRnvq9wKtyUTzt90emyz6%2FETH2x-token-logo.svg?alt=media&amp;token=a98827b0-1f0f-4fe4-ae04-9e48938c0057" alt="" width="75"><figcaption><p>ETH2x.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FwfJogimgdj04B7Bm3GhO%2FETH2x-token-logo.png?alt=media&amp;token=b9969924-8ca4-4317-859b-5226c50ec482" alt="" width="125"><figcaption><p>ETH2x.png</p></figcaption></figure></div>

#### BTC2x

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FMIR68rj8izAvFGNTLI4Z%2FBTC2x-token-logo.svg?alt=media&amp;token=c171c76e-5aa8-4fec-87bf-48187df30cc5" alt="" width="75"><figcaption></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F8Q1EihSyIKt8GxFZEGyK%2FBTC2x-token-logo.png?alt=media&amp;token=93a3706b-0222-47e2-b5c8-b1abf29378b8" alt="" width="125"><figcaption></figcaption></figure></div>

#### FLI

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fl7jAqnBuKBBbslDFk4Y4%2FETH2x-FLI_token_logo.svg?alt=media&amp;token=fc019bc9-9fb4-419a-a25b-08be1ca95e8a" alt="" width="113"><figcaption><p>ETH2x-FLI.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FpZvFnkTmgk3jNntmIQZY%2FETH2x-FLI_token_logo.png?alt=media&amp;token=efadc543-c574-4040-9a17-73bedbbd2ad1" alt="" width="188"><figcaption><p>ETH2x-FLI.png</p></figcaption></figure></div>

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fe1SF9b1Y9J7hHyV3aeM3%2FBTC2x-FLI_token_logo.svg?alt=media&amp;token=df453671-119f-426e-b353-2fde2fb36cc0" alt="" width="113"><figcaption><p>BTC2x-FLI.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2FaBHI3g6KZvnIjRUsCxcK%2FBTC2x-FLI_token_logo.png?alt=media&amp;token=64de86fc-8bfe-4df3-b36b-d3af6d0b183c" alt="" width="188"><figcaption><p>BTC2x-FLI.png</p></figcaption></figure></div>

###

### Automated Strategy Logos

#### cdETI

<div align="left"><figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2Fp9RfM8pzEDvb2s1qUkw4%2FcdETI-logo.svg?alt=media&amp;token=66df07d2-b287-4b38-baea-c4cfee3d4b8a" alt="" width="113"><figcaption><p>cdETI.svg</p></figcaption></figure> <figure><img src="https://2404196717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJY-enmfAw5ra2s-8QX%2Fuploads%2F90hYqCS0LKpagAwt2csC%2FcdETI-logo.png?alt=media&amp;token=6168a2f4-5a80-4eb5-a7f8-f89f229895ca" alt="" width="188"><figcaption></figcaption></figure></div>


