# Getting Started

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

* `@veilnyx-sdk/account`: For handling and using the shielded account of a user.
* `@veilnyx-sdk/babyjubjub`: Primitives for all the elliptic curve cryptography operations on the BabyJubJub curve.
* `@veilnyx-sdk/transaction`: For creation and handling of different kinds of transactions in the protocol.
* `@veilnyx-sdk/zk-prover`: For facilitating the generation of zkSNARK proof given transaction details.
* `@veilnyx-sdk/services`: Multiple services utilized in the protocol, like address resolver, Merkle tree builder, events fetcher, etc.
* `@veilnyx-sdk/utils`: Common utilities used across the different packages.
* `@veilnyx-sdk/shared-types`: TypeScript types shared across the packages.
* `@veilnyx-sdk/core`: The core that exposes the APIs for private transactions.
* `@veilnyx-sdk/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 `@veilnyx-sdk/core` In your project using your package manager,

```bash
# pnpm
pnpm add @veilnyx-sdk/core

# yarn
yarn add @veilnyx-sdk/core

# npm
npm i @veilnyx-sdk/core
```

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

```typescript
import { CoreOptions, Core } from '@veilnyx-sdk/core';

const opts: CoreOptions = { ... }

const veilnyx = 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!
