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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.indexcoop.com/index-coop-community-handbook/protocol/index-protocol/core-contracts/integration-registry.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
