Index Coop Resource Center
  • Welcome to The Index Coop.
  • Products
    • Trade
      • Index Coop Leverage Suite
      • Leverage Token Parameters
      • Leverage Token Keepers
      • Trading Interface Guide
      • Ripcord Guide
    • Earn
      • High Yield ETH Index (hyETH)
      • Interest Compounding ETH Index (icETH)
    • Asset Management
      • Product Development Process
      • Product Revenue Tokens (PRTs)
    • Legacy Products
      • How to Redeem Legacy Products
      • DeFi Pulse Index (DPI)
      • Bankless BED Index (BED)
      • Metaverse Index (MVI)
      • Diversified Staked ETH Index (dsETH)
      • Index Coop CoinDesk ETH Trend Index (cdETI)
      • Index Coop Large Cap Index (ic21)
      • ETH 2x Flexible Leverage Index (ETH2x-FLI)
      • BTC 2x Flexible Leverage Index (BTC2x-FLI)
      • Flexible Leverage Index- Polygon (FLI-Ps)
        • ETH 2x Flexible Leverage Index (ETH2x-FLI-P)
        • Inverse ETH Flexible Leverage Index (iETH-FLI-P)
        • BTC 2x Flexible Leverage Index (BTC2x-FLI-P)
        • Inverse BTC Flexible Leverage Index (iBTC-FLI-P)
        • MATIC 2x Flexible Leverage Index (MATIC2x-FLI-P)
        • Inverse MATIC Flexible Leverage Index (iMATIC-FLI-P)
      • Market Neutral Yield ETH (MNYe)
      • Bankless DeFi Innovation Index (GMI)
      • Data Economy Index (DATA)
      • Legacy Contract Addresses
      • Gitcoin Staked ETH Index (gtcETH)
  • Protocol
    • Index Protocol
      • Core Contracts
        • Set Token
        • Set Token Creator
        • Controller
        • Integration Registry
        • Price Oracle
        • Set Valuer
      • Modules
        • Basic Issuance Module
        • Debt Issuance Module v2
        • NAV Issuance Module
        • Trade Module
        • Streaming Fee Module
        • Wrap Module
        • Airdrop Module
        • Claim Module
        • Governance Module
        • Compound Leverage Module
        • Aave v2 Leverage Module
        • Aave v3 Leverage Module
        • Auction Rebalance Module
    • Set Protocol v2
    • Security and Audits
    • Contract Verification
    • Programmatic Redemptions
  • Resources
    • Governance
      • $INDEX - Governance Token
      • Index Improvement Proposals (IIP) Overview
        • IIP Step-by-Step
        • Governance Representatives
        • IIP Template
        • Product (DG) Template
      • Meta-Governance
      • Delegation
    • Data & Analytics
    • Multisigs
    • Press Kit
Powered by GitBook
On this page
  • Select Methods
  • delegate()
  • propose()
  • vote()
  • register()
  • revoke()
  • initialize()
  1. Protocol
  2. Index Protocol
  3. Modules

Governance Module

PreviousClaim ModuleNextCompound Leverage Module

Last updated 1 year ago

The GovernanceModule enables participating in the governance of component tokens held in the . 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

SetToken