# Clients

The Andromeda.js library enables users to interact with ADOs across different blockchains where Andromeda is deployed. However, each chain has its own set of unique features and requirements, making it necessary to create custom clients to enable seamless interaction with ADOs across all supported chains.

Currently, we have the following clients:

* [**ChainClient**](/andromeda.js/classes/clients/chainclient.md): A generic interface for interacting with any Cosmos chain.
* [**BaseChainClient**](/andromeda.js/classes/clients/basechainclient.md): A base class that extends the other clients.
* [**CosmClient:**](/andromeda.js/classes/clients/cosmclient.md) A client to interact with the cosmos hub chain.
* [**InjectiveClient:**](/andromeda.js/classes/clients/injectiveclient.md) A client to interact with the Injective chain.
* [**TerraClient:**](/andromeda.js/classes/clients/terraclient.md) A client to interact with the Terra chain.
* [**AndromedaClient:**](/andromeda.js/classes/clients/andromedaclient.md) A client to interact with the Andromeda chain.
* [ArchwayClient](/andromeda.js/classes/clients/archwayclient.md): A client to interact with the Archway chain.

&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.andromedaprotocol.io/andromeda.js/classes/clients.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
