# evm

## Description

The `getKeys` function takes a mnemonic as input and returns a private key and an address associated with that mnemonic.

## Parameters

| Parameter  | Type   | Description                                       |
| ---------- | ------ | ------------------------------------------------- |
| `mnemonic` | string | A string of 12, 15, 18, 21, or 24 words mnemonic. |

## Response

| Field               | Type   | Description                                                                           |
| ------------------- | ------ | ------------------------------------------------------------------------------------- |
| `code`              | number | Indicates whether the function executed successfully (1) or encountered an error (0). |
| `result`            | object | Contains the private key and address associated with the input mnemonic.              |
| `result.privateKey` | string | The private key associated with the input mnemonic.                                   |
| `result.address`    | string | The address associated with the input 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 `getKeys` request using the NO.AI SDK:

{% code overflow="wrap" %}

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

// Create a new instance of the Wallet class
const wallet = new Wallet();
// test mnemonic for BTC mainnet (use the createWallet function to get one)
const testMnemonic = 'advice annual assault stool arrest bid spike cluster absurd impact shell jacket';

const main = async () => {
  // get the keys for the evm network
  const response = await wallet.getKeys('evm', testMnemonic);
  // log the response
  console.log(response);
};

main();
```

{% endcode %}

### Response

```
{
        code: 1,
        result: {
          privateKey: '0x52c0b43c7fec3dd1f7fce983e29b8cafdd8fab0704e98a86da03a89a5892cdf2',
          address: '0xdf24152cB2ae36C51FAbbc404Dc10623e56bFeE0'
        }
}
```

## Use Cases

* **Cryptocurrency Wallet:** This function can be used by cryptocurrency wallets to generate a private key and address for a user's account using a mnemonic that is easy to remember and write down.
* **Testing:** It can also be used by blockchain developers to quickly generate private keys and addresses for testing and development purposes.
