# Getting Started

The SDK is a monorepo of multiple packages that are dependencies to the core. These packages are:

* `@zkfi-tech/account`: For handling and using the shielded account of a user.
* `@zkfi-tech/babyjubjub`: Primitives for all the elliptic curve cryptography operations on the BabyJubJub curve.
* `@zkfi-tech/transaction`: For creation and handling of different kinds of transactions in the protocol.
* `@zkfi-tech/zk-prover`: For facilitating the generation of zkSNARK proof given transaction details.
* `@zkfi-tech/services`: Multiple services utilized in the protocol like address resolver, Merkle tree builder, events fetcher, etc.
* `@zkfi-tech/utils`: Common utilities used across the different packages.
* `@zkfi-tech/shared-types`: TypeScript types shared across the packages.
* `@zkfi-tech/core`: The core that exposes the APIs for private transactions.
* `@zkfi-tech/react`(***Coming Soon)***: React components and hooks for easy usage in React apps.&#x20;

However, you don't need to install all of the packages. Just install `@zkfi-tech/core` in your project using your package manager,

```bash
# pnpm
pnpm add @zkfi-tech/core

# yarn
yarn add @zkfi-tech/core

# npm
npm i @zkfi-tech/core
```

Now you can simply import and use the SDK in your project,

```typescript
import { CoreOptions, Core } from '@zkfi-tech/core';

const opts: CoreOptions = { ... }

const zkfi = new Core(opts);
```

Before we move further into usage, let's clear a couple of concepts in the next sections so you can use it effectively!
