# sol

## Description

The `getKeys` function generates a private key and a corresponding public address using a given mnemonic phrase. The function returns the private key and public address as a result object.

## Parameters

| Parameter  | Type   | Description                                    |
| ---------- | ------ | ---------------------------------------------- |
| `mnemonic` | string | A 12-24 word mnemonic phrase for key creation. |

## Response

| Field    | Type   | Description                                                          |
| -------- | ------ | -------------------------------------------------------------------- |
| `code`   | number | A status code indicating whether the function was successful or not. |
| `result` | object | An object containing the private key and public address.             |
| `error`  | string | A string describing the error that occurred, if applicable.          |

## 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 = 'divorce poverty spend fire symbol market good skull rebel surge giggle album';

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

main();
```

{% endcode %}

### Response

{% code overflow="wrap" %}

```sh
{
        code: 1,
        result: {
          privateKey: '61hqSActTebg2cgmRyoeBdSHxq348HQhzs4EqGA9SRTCCChnNB4fKFoFLaLrTfLNxEyTJzVfbgrz7nqD6PN6X8ag',
          address: 'Byz7G9nWucTkErWFR5QzLSAre9TdBak3nB6GUbRjgNzg'
        }
}
```

{% endcode %}

## Use Cases

* **Crypto Wallet:** Crypto wallets can use this function to generate private keys and corresponding public addresses for their users.
* **Testing:** Blockchain developers can use this function to generate private keys and addresses for testing and development purposes.

###
