# Use Allora

The `Use Allora` tool, part of AgentiPy, allows users to interact with the Allora Network, a decentralized AI network. It enables fetching AI-generated price predictions for crypto assets (BTC, ETH) and retrieving information about inference topics. This tool uses the `allora-sdk` and requires an Allora API key to be configured in the `SolanaAgentKit`.

## Functionality

This tool is implemented in the `AlloraManager` class.

### Key Methods:

* `__init__(self, agent: SolanaAgentKit, base_api_url: Optional[str] = "https://api.upshot.xyz/v2", chain: ChainSlug = ChainSlug.TESTNET)`:
  * Initializes the `AlloraAPIClient` from the `allora-sdk` using the `allora_api_key` from the `agent` and specifies the target `chain` (Testnet or Mainnet).
* `get_price_prediction(self, asset: PriceInferenceToken, timeframe: PriceInferenceTimeframe, signature_format: SignatureFormat = SignatureFormat.ETHEREUM_SEPOLIA)`:
  * Fetches a future price prediction for a given `asset` (e.g., `PriceInferenceToken.BTC`) and `timeframe` (e.g., `PriceInferenceTimeframe.FIVE_MIN`).
  * Returns a dictionary with `price_prediction`, `confidence_interval`, and `status`.
* `get_all_topics(self)`:
  * Fetches all available inference topics from the Allora Network.
  * Returns a dictionary containing a list of `AlloraTopic` objects.
* `get_inference_by_topic_id(self, topic_id: int)`:
  * Fetches inference data (prediction and confidence) for a specific `topic_id`.
  * Returns a dictionary with `inference_data` and `confidence_interval`.

##

**Note:** This tool requires an API key from Allora. The `SolanaAgentKit` is used to pass this API key (`agent.allora_api_key`) to the `AlloraManager`. Ensure the API key is correctly set in your environment or agent configuration.

## Source Code

You can find the source code for this tool on GitHub: <https://github.com/niceberginc/agentipy/blob/main/agentipy/tools/use_allora.py>
