# sol

## Description

The `chainBalances` function is an asynchronous function used to retrieve the balances of various cryptocurrencies on different blockchain networks based on a provided mnemonic phrase.

## Parameters

| Parameter  | Data Type | Description                                                     |
| ---------- | --------- | --------------------------------------------------------------- |
| `mnemonic` | string    | A mnemonic phrase used for generating the wallet's private key. |
| `env`      | string    | A string indicating the blockchain network environment.         |
| `ecc`      | any       | An elliptic curve cryptography library or object.               |

## Response

| Field      | Data Type | Description                                                                                                 |
| ---------- | --------- | ----------------------------------------------------------------------------------------------------------- |
| `code`     | number    | Indicates the status code. 1 for success, 0 for error.                                                      |
| `balances` | object    | Contains the balances of various cryptocurrencies on different blockchain networks.                         |
| `error`    | any       | (Optional) Contains the error object if an error occurred during the process.                               |
| `message`  | string    | (Optional) Provides additional information about the error, typically indicating an inappropriate mnemonic. |

## Example Request and Response

### Prerequisites

Before making requests with NO.AI SDK, you must have it installed.

You can install NO.AI SDK using either **`npm`** or **`yarn`**. Use the following commands to install NO.AI SDK:

```sh
npm install @nest25/wallet-lib
OR
yarn add @nest25/wallet-lib
```

### Request

Here is an example of how to make a `getBalanceByMnemonic`request using the NO.AI SDK:

```javascript
const { Wallet } = require('@nest25/wallet-lib');

const wallet = new Wallet('');

async function main() {
    const response = await wallet.chainBalances("choice kidney aerobic derive chat recall ranch siege enemy certain hand dry");
    console.log( "response --> ",JSON.stringify(response));
}

main();

```

### Response

{% code overflow="wrap" %}

```sh
   response -->  {"code":1,"balances":{"AVA":{"balance":0,"balanceInUSD":"0"},"BNB":{"balance":0,"balanceInUSD":"0"},"ETH":{"balance":0,"balanceInUSD":"0"},"KLAY":{"balance":0,"balanceInUSD":"0"},"MATIC":{"balance":0,"balanceInUSD":"0"},"VLRY":{"balance":0,"balanceInUSD":"0"},"AUR":{"balance":0,"balanceInUSD":"0"},"GLMR":{"balance":0,"balanceInUSD":"0"},"GNO":{"balance":0,"balanceInUSD":"0"},"OP":{"balance":0,"balanceInUSD":"0"},"ARB":{"balance":0,"balanceInUSD":"0"},"CELO":{"balance":0,"balanceInUSD":"0"},"SOL":{"balance":0,"balanceInUSD":"0"}}}
```

{% endcode %}

## Use Cases

* **Retrieving chain balances:** By invoking this function with a mnemonic and environment, you can retrieve the balances of various cryptocurrencies on different blockchain networks.
* **Error handling:** The function performs various checks and validations throughout the process, returning an error object with an appropriate error message if any issues arise.
* **Balances conversion:** The function converts the raw balance values received from the external API to the corresponding currency balance and balance in USD for easier interpretation.
