> For the complete documentation index, see [llms.txt](https://symmdocs.gitbook.io/frontend-sdk-technical-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://symmdocs.gitbook.io/frontend-sdk-technical-docs/frontend-sdk/state-management/chains.md).

# Chains

#### Actions

* **`setChains`**: Action to set the entire chains state, including chain details, contract ABIs, and other related settings.

#### Hooks

* Custom hooks for accessing various pieces of chain-related information from the state:
  * **`useCollateralAddress`**: Fetches collateral addresses.
  * **`useCollateralSymbol`**: Fetches collateral symbols.
  * **`useCollateralDecimal`**: Fetches collateral decimals.
  * **`useDiamondAddress`**: Fetches diamond contract addresses.
  * **`useMultiAccountAddress`**: Fetches multi-account addresses.
  * **`useTpSlWalletAddress`**: Fetches TP/SL wallet addresses.
  * **`useTpSlAvailable`**: Checks if TP/SL is available.
  * **`useAllMultiAccountAddresses`**: Fetches all multi-account addresses.
  * **`useSignatureStoreAddress`**: Fetches signature store addresses.
  * **`usePartyBWhitelistAddress`**: Fetches Party B whitelist addresses.
  * **`useMultiCallAddress`**: Fetches multicall contract addresses.
  * **`useUSDCAddress`**: Fetches USDC addresses.
  * **`useV3Ids`**: Fetches V3 chain IDs.
  * **`useFallbackChainId`**: Fetches fallback chain ID.
  * **`useHedgerAddress`**: Fetches hedger addresses.
  * **`useAppName`**: Fetches the application name.
  * **`useOrderHistorySubgraphAddress`**: Fetches order history subgraph addresses.
  * **`useAnalyticsSubgraphAddress`**: Fetches analytics subgraph addresses.
  * **`useFundingRateSubgraphAddress`**: Fetches funding rate subgraph addresses.
  * **`useMuonData`**: Fetches Muon data.
  * **`useWagmiConfig`**: Fetches WAGMI configuration.
  * **`useSetSdkConfig`**: Dispatches the setChains action to update the chains state.

#### Utility Functions

* **`compatibleWithLegacyStructure`**: Filters and restructures chains data based on chain IDs and a parameter name.
* **`getValuesByName`**: Retrieves specific values from an input object based on a name.

#### Reducer

* Defines the ChainsState and handles actions to update the state:
  * **State Structure**: Includes information about chains, V3 chain IDs, fallback chain ID, contract ABIs, hedgers, application name, and Muon data.
  * **Reducer Logic**: Responds to `setChains` action to update the state with provided chains information.

#### Reducer Details

* **Chains Information**: Stores details for each chain, including addresses for collateral, diamond contract, multicall contract, etc.
* **V3 Chain IDs**: An array of V3 chain IDs.
* **Fallback Chain ID**: The default chain ID to use if no other chain is selected or available.
* **Contract ABIs**: Storage for contract ABIs used across the application.
* **Hedgers**: Information about hedger contracts across chains.
* **Application Name and Muon Data**: Stores the application name and Muon-specific data like URLs.
