# evm

## Description

The `estimateFee` function is used to estimate the fee required to perform a certain event on a specified blockchain network. The function calculates the gas price and the total fee required for a transfer event on the specified blockchain network.

## Parameters

| Parameter    | Data Type | Description                                                                                       |
| ------------ | --------- | ------------------------------------------------------------------------------------------------- |
| `event`      | string    | The event for which the fee needs to be estimated. Currently, only "transfer" event is supported. |
| `blockchain` | string    | The name of the blockchain network for which the fee needs to be estimated.                       |
| `env`        | string    | The environment of the blockchain network.                                                        |

## Response

| Field    | Data Type | Description                                                                      |
| -------- | --------- | -------------------------------------------------------------------------------- |
| `code`   | number    | The status code of the response. 1 indicates success, while 0 indicates failure. |
| `result` | string    | The estimated fee for the specified event on the specified blockchain network.   |
| `error`  | string    | The error message in case of any errors during the execution of the function.    |

## 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 `estimateFee` request using the NO.AI SDK:

```javascript
// import Nest SDK
import { Wallet } from 'nest25/wallet-lib';

// Create a new instance of the Wallet class
const wallet = new Wallet();

const main = async () => {
  // estimate the fee for a transfer
  const response = await wallet.estimateFee('eth', 'transfer');
  // print the response
  console.log(response);
};

main();
```

{% code overflow="wrap" %}

```javascript
```

{% endcode %}

### Response

{% code overflow="wrap" %}

```sh
   { code: 1, result: '0.0017211828095280001' }
```

{% endcode %}

## Use Cases

* **Crypto Wallets:** Crypto wallets can use this function to estimate the fee required for a transfer event on a specified blockchain network before initiating the transaction.
* **Developers:** DApp developers can use this function to provide users with an estimated fee for their transactions on the specified blockchain network.

<br>
