> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gains.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# IGNSDiamondLoupe

*Based on EIP-2535: Diamonds ([https://eips.ethereum.org/EIPS/eip-2535](https://eips.ethereum.org/EIPS/eip-2535)) Follows diamond-3 implementation ([https://github.com/mudgen/diamond-3-hardhat/](https://github.com/mudgen/diamond-3-hardhat/)) One of the diamond standard interfaces, used to inspect the diamond like a magnifying glass.*

## Facet

These functions are expected to be called frequently by tools.

```solidity theme={null}
struct Facet {
  address facetAddress;
  bytes4[] functionSelectors;
}
```

## facets

```solidity theme={null}
function facets() external view returns (struct IGNSDiamondLoupe.Facet[] facets_)
```

Gets all facet addresses and their four byte function selectors.

### Return Values

| Name     | Type                                                                                                     | Description |
| -------- | -------------------------------------------------------------------------------------------------------- | ----------- |
| facets\_ | [IGNSDiamondLoupe.Facet\[\]](/developer/technical-reference/contracts/interfaces/ignsdiamondloupe#facet) | Facet       |

## facetFunctionSelectors

```solidity theme={null}
function facetFunctionSelectors(address _facet) external view returns (bytes4[] facetFunctionSelectors_)
```

Gets all the function selectors supported by a specific facet.

### Parameters

| Name    | Type    | Description        |
| ------- | ------- | ------------------ |
| \_facet | address | The facet address. |

### Return Values

| Name                     | Type      | Description |
| ------------------------ | --------- | ----------- |
| facetFunctionSelectors\_ | bytes4\[] |             |

## facetAddresses

```solidity theme={null}
function facetAddresses() external view returns (address[] facetAddresses_)
```

Get all the facet addresses used by a diamond.

### Return Values

| Name             | Type       | Description |
| ---------------- | ---------- | ----------- |
| facetAddresses\_ | address\[] |             |

## facetAddress

```solidity theme={null}
function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_)
```

Gets the facet that supports the given selector.

*If facet is not found return address(0).*

### Parameters

| Name               | Type   | Description            |
| ------------------ | ------ | ---------------------- |
| \_functionSelector | bytes4 | The function selector. |

### Return Values

| Name           | Type    | Description        |
| -------------- | ------- | ------------------ |
| facetAddress\_ | address | The facet address. |
