# Funding Fee

The `fundingFee` contract provides logic for calculating and settling funding fees, as well as querying the funding rate and pending (pre-settlement) funding fees.

## basePool

Funding rates are calculated using `basePool`. If for a given market the `basePool` is not set (ie. set to `0x000...`), funding fees will not be applied in this market.&#x20;

The `basePool` address can be queried using [config](https://docs.nekodex.org/nekodex-playground/docs-for-devs/contracts/config "mention").

## Contract

<pre class="language-solidity" data-overflow="wrap"><code class="lang-solidity"><strong>/// #notice Check the settlement event to see amount of funding paid/received. This information may also be available from The Graph.
</strong>event FundingFeeSettled(uint256 marketId, address trader, int256 fundingFee);

function getCurrentFundingRate(uint256 marketId) public view returns (int256)

/// @notice Amount of pending fees from the trader's perspective.
/// @return When settled, margin will decrease if fee is positive, increase if fee is negative.
function getPendingFee(
    uint256 marketId,
    address trader
) 

returns (
    int256 pendingFee
)

/// @notice Query latest funding rate. Historical funding rates should be queried from The Graph or similiar provider.
function getCurrentFundingRate(
    uint256 marketId
)

returns (
    int256 fundingRate
)
</code></pre>
