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 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:

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.

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

Contract

Description

Link

ERC20 Token contract that allows privileged modules to make modifications to its positions and invoke function calls; deployed on a per-product basis

Factory contract that is enabled by the controller to create and register new SetTokens

contract that registers protocol contracts such as products, modules, factories, price oracles, and other resources

contract that holds state relating to modules and the integrations they are connected with

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

BaseManagerV2

Manager contract that contains permissions and administrative functionality for a SetToken; deployed on a per-product basis

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

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

Module

Description

Link

enables users to issue and redeem SetTokens that contain default and external positions, including–but not limited to–debt positions

enables SetTokens to perform atomic trades using DEXs or DEX aggregators; integration mappings are stored on the IntegrationRegistry contract

accrues streaming fees for managers; streaming fees are denominated as percent per year and realized as inflation rewarded to the manager

enables manager to absorb tokens sent to the SetToken into the token's positions

NotionalTradeModule

enables trading, issuance, and redemption of Notional fCash positions; compatible with ERC20-wrapped fCash assets

Adapters

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

Adapter

Description

Link

0x API Adapter

Exchange Adapter for 0x API that returns data for swaps

Curve stETH Exchange Adapter

Exchange Adapter for Curve specialized for stETH/ETH exchange contracts

Synthetix Exchange Adapter

Exchange Adapter for Synthetix that returns data for swaps

Uniswap v2 Exchange Adapter v2

Exchange Adapter for Uniswap v2 that returns data for swaps

Uniswap v3 Exchange Adapter v2

Exchange Adapter for Uniswap v3 that returns data for swaps

Fee Split Extension

Smart Contract Extension that allows for splitting and setting streaming, mint, and redeem fees; deployed on a per-product basis

StakeWise Reinvestment Extension

Smart Contract Extension that enables reinvestment of rETH2 rewards within dsETH

* 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

Contract

Description

Link

0x Flash Mint

Contract that swaps an input token for proportional components of an index and issues said index token in an atomic fashion

Compound Flash Mint

Contract that converts an input token into proportional cToken components of an index and issues said index token in an atomic fashion

Notional Flash Mint

Contract that converts an input token into proportional wrapped fCash components of an index and issues said index token in an atomic fashion

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:

Additional information about contracts and capabilities can be found in the official Set Protocol v2 Documentation and in the Set Protocol v2 GitHub repository. 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.

Last updated