# IFdcInflationConfigurations

> Interface for managing FDC inflation configuration.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

Source: https://dev.flare.network/fdc/reference/IFdcInflationConfigurations

Interface for managing Flare Data Connector (FDC) inflation configuration.

Sourced from `IFdcInflationConfigurations.sol` on [GitHub](https://github.com/flare-foundation/flare-smart-contracts-v2/blob/main/contracts/userInterfaces/IFdcInflationConfigurations.sol).

## Overview[​](#overview "Direct link to Overview")

The IFdcInflationConfigurations interface allows access to the inflation distribution settings for different attestation types and sources within the Flare Data Connector system. These configurations determine how inflation rewards are allocated to validators based on the attestation requests they process.

## Functions[​](#functions "Direct link to Functions")

### getFdcConfiguration[​](#getfdcconfiguration "Direct link to getFdcConfiguration")

Returns a single FDC configuration at the specified index.

```
function getFdcConfiguration(    uint256 _index) external view returns (    struct IFdcInflationConfigurations.FdcConfiguration);
```

**Parameters**

-   `_index`: The index of the FDC configuration

**Returns**

-   `FdcConfiguration`: The configuration struct at the specified index

### getFdcConfigurations[​](#getfdcconfigurations "Direct link to getFdcConfigurations")

Returns the complete array of all FDC configurations.

```
function getFdcConfigurations() external view returns (    struct IFdcInflationConfigurations.FdcConfiguration[]);
```

**Returns**

-   `FdcConfiguration[]`: Array of all configured FDC configurations

## Structures[​](#structures "Direct link to Structures")

### FdcConfiguration[​](#fdcconfiguration "Direct link to FdcConfiguration")

Configuration structure for FDC inflation settings per attestation type and source.

```
struct FdcConfiguration {  bytes32 attestationType;  bytes32 source;  uint24 inflationShare;  uint8 minRequestsThreshold;  uint224 mode;}
```

**Fields**

-   `attestationType`: Identifier for the attestation type (e.g., AddressValidity, BalanceDecreasingTransaction)
-   `source`: The data source identifier (e.g., BTC, DOGE, XRP)
-   `inflationShare`: Percentage share of the total inflation allocated to this configuration (basis points)
-   `minRequestsThreshold`: Minimum number of requests required for this configuration to receive inflation rewards
-   `mode`: Additional configuration flags and settings

## Usage Example[​](#usage-example "Direct link to Usage Example")

InflationMonitor.sol

```
// SPDX-License-Identifier: MITpragma solidity ^0.8.25;import {ContractRegistry} from "@flarenetwork/flare-periphery-contracts/coston2/ContractRegistry.sol";import {IFdcHub} from "@flarenetwork/flare-periphery-contracts/coston2/IFdcHub.sol";import {IFdcInflationConfigurations} from "@flarenetwork/flare-periphery-contracts/coston2/IFdcInflationConfigurations.sol";contract InflationMonitor {    function getInflationShare(        bytes32 attestationType,        bytes32 source    ) external view returns (uint24) {        // Fetch the FdcHub from the registry to access other FDC contracts        IFdcHub fdcHub = ContractRegistry.getFdcHub();        // Get the inflation configurations contract        IFdcInflationConfigurations inflationConfigs = fdcHub            .fdcInflationConfigurations();        // Retrieve the entire array of configurations        IFdcInflationConfigurations.FdcConfiguration[]            memory configs = inflationConfigs.getFdcConfigurations();        // Loop through the array to find the matching configuration        for (uint i = 0; i < configs.length; i++) {            if (                configs[i].attestationType == attestationType &&                configs[i].source == source            ) {                return configs[i].inflationShare;            }        }        // Return 0 if no matching configuration is found        return 0;    }}
```

[Open example in Remix](https://remix.ethereum.org/#url=https://github.com/flare-foundation/developer-hub/blob/main/examples/developer-hub-solidity/InflationMonitor.sol&version=builtin&evmVersion=cancun&optimize=true&runs=200)
