# Integration Registry

The Index Protocol **Integration Registry** ([Etherscan](https://etherscan.io/address/0xb9083dee5e8273e54b9db4c31ba9d4ab7c6b28d3)) holds state relating to [Modules](https://docs.indexcoop.com/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 |
