# THORChain

The packages listed here are to support interaction with the THORChain protocol:&#x20;

1. **xchain-thorchain-amm**:
   * Functions in this module include adding liquidity to pools, swapping assets, calculating prices, providing liquidity, and opening loans.
2. **xchain-thorchain-query**:
   * This module offers querying capabilities for various data related to the THORChain protocol.
   * It provides APIs or functions to retrieve information such as transaction details, pool information, asset balances, and more.
   * Querying modules are essential for accessing on-chain data for analysis, monitoring, or integration with external applications.
3. **xchain-midgard**:
   * Midgard is THORChain's middleware layer, providing a set of APIs to interact with the THORChain protocol.
   * This module likely provides utilities and functions for interacting with the Midgard API, allowing developers to fetch data from THORChain.
   * Functions may include fetching pool data, asset information, transaction details, and more.
4. **xchain-thornode**:
   * The Thornode module is likely responsible for interacting directly with THORChain nodes.
   * It provides functionalities to communicate with THORChain nodes for tasks such as submitting transactions, querying node information, managing validator nodes, and participating in consensus.
5. **xchain-midgard-query**:
   * Similar to the xchain-thorchain-query module, this module likely provides querying capabilities specifically tailored to the Midgard API.
   * It offers functions or utilities to retrieve data from Midgard's APIs, including pool information, liquidity metrics, transaction details, and more.
