Index Protocol
Last updated
Last updated
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
* 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
interface with external protocols and used by modules to gather and validate transaction parameters
* source code linked for contracts that may have many different instances on-chain
built on top of and/or used in conjunction with protocol contracts
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.
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.
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
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
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
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