> For the complete documentation index, see [llms.txt](https://docs.mindnetwork.xyz/minddocs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mindnetwork.xyz/minddocs/deverloper-guide/hub-tutorial/sdk-for-hub-framework.md).

# SDK For Hub Framework

## Mind Network SDK For Hub Framework

The Mind Network SDK is a powerful TypeScript library designed to streamline interactions with the Mind Network Hub Framework contracts. It provides essential tools to work with core functionalities such as the FHE Key Registry and Member Pool.

{% hint style="info" %}
Github link: [Mind Network SDK for Hub Framework](https://github.com/mind-network/mind-sdk-hubs-ts?tab=readme-ov-file)
{% endhint %}

***

## Installation

Install the SDK using npm or yarn:

```
npm install mind-hubs-sdk
```

***

## Usage

#### 1. Initialize the SDK

Before using the SDK, initialize it with the required configuration:

```typescript
import { CoreContextManager } from 'mind-hubs-sdk'

CoreContextManager.initialize({
    fheKeyRegistryAddress: '0xFheKeyRegistryAddress', // Address of the FHE Key Registry contract
    memberPoolAddress: '0xMemberPoolAddress',         // Address of the Member Pool contract
    rpc: 'https://rpc.endpoint',                      // RPC URL for the Mind network
    chainID: 228                                      // Chain ID of the Mind network
})
```

#### 2. Fetch an FHE Key Set

Use `fetchFheKeySet` to retrieve a key set by its `keyId`:

```typescript
import { fetchFheKeySet } from 'mind-hubs-sdk'

const keyId = BigInt(12345) // Replace with your desired keyId
const keySet = await fetchFheKeySet(keyId)

console.log('FHE Key Set:', keySet)
```

#### 3. Get Voting Reward

Use `getVotingReward` to retrieve the voting reward for a specific wallet:

```typescript
import { getVotingReward } from 'mind-hubs-sdk'

const coldWalletAddress = '0xColdWalletAddress' // Replace with your wallet address
const reward = await getVotingReward(coldWalletAddress)

console.log('Voting Reward:', reward)
```

***

## Configuration Options

| Option                  | Type   | Description                              |
| ----------------------- | ------ | ---------------------------------------- |
| `fheKeyRegistryAddress` | string | Address of the FHE Key Registry contract |
| `memberPoolAddress`     | string | Address of the Member Pool contract      |
| `rpc`                   | string | RPC endpoint for the Mind network        |
| `chainID`               | number | Chain ID of the Mind network             |

***

## API Reference

#### `initialize(config: CoreConfig): void`

Initializes the SDK with the given configuration.

* **`config`**: An object containing the following properties:
  * `fheKeyRegistryAddress` (string, required)
  * `memberPoolAddress` (string, required)
  * `rpc` (string, required)
  * `chainID` (number, required)

#### `fetchFheKeySet(keyId: bigint): Promise<any>`

Fetches the FHE key set associated with the given `keyId`.

* **`keyId`**: The unique identifier of the key set (type `bigint`).

#### `getVotingReward(coldWalletAddress: string): Promise<bigint>`

Fetches the voting reward for the given cold wallet address.

* **`coldWalletAddress`**: The wallet address (type `string`).

***

## License

The Mind Network SDK is distributed under the MIT License.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.mindnetwork.xyz/minddocs/deverloper-guide/hub-tutorial/sdk-for-hub-framework.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
