> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.openfort.io/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

# Quickstart

**AI skill:** AI Skill for [@openfort/openfort-js](https://www.npmjs.com/package/@openfort/openfort-js). Pre-built prompt with the full setup reference. The full skill file is available on this page.

::::steps
## Install the Openfort SDK

Install the latest version of the [Openfort JS SDK](https://www.npmjs.com/package/@openfort/openfort-js) using your package manager of choice:

:::note
**Prerequisites**

To integrate Openfort, your project must have:

* **Node v20** (Active LTS version) or higher
* [TypeScript version 5](https://github.com/microsoft/TypeScript/releases/tag/v5.0.2) or higher
:::

:::code-group
```sh [npm]
npm install @openfort/openfort-js@latest
```

```sh [yarn]
yarn add @openfort/openfort-js@latest
```

```sh [pnpm]
pnpm add @openfort/openfort-js@latest
```
:::

## Set your auth providers

Navigate to the **auth providers** page on the [Openfort dashboard](https://dashboard.openfort.io) by selecting your project and then clicking Auth providers Methods in the side bar in the [users page](https://dashboard.openfort.io/users). Select the account types you'd like users to be able to login with. For more information on how to enable social logins, check out the [dashboard docs](https://www.openfort.io/docs/configuration/social-login).

## Get your [API keys](https://www.openfort.io/docs/configuration/api-keys)

In the [API keys](https://dashboard.openfort.io/api-keys) section, you'll find:

* **Publishable Key**: Safe to expose in client-side environment
* **Secret Key**: Must be kept secure and used only server-side

To generate non-custodial wallets:

1. Scroll to the Shield section and click **Create Shield keys**
2. **Store the encryption share** safely when it appears (you'll only see it once)
3. You'll receive:
   * **Shield Publishable Key**: Safe for client-side use
   * **Shield Secret Key**: Keep secure, server-side only

## Import Openfort into your app

Import and configure Openfort using the publishable keys from the Dashboard.

The Openfort SDK should be instantiated only once.

```ts openfortConfig.ts
import { Openfort } from "@openfort/openfort-js";

const openfort = new Openfort({
  baseConfiguration: {
    publishableKey: "YOUR_OPENFORT_PUBLISHABLE_KEY",
  },
  shieldConfiguration: {
    shieldPublishableKey: "YOUR_SHIELD_PUBLISHABLE_KEY",
  },
  debug: false, // Optional: enable verbose logging for development
});

export default openfort;
```

## You're good to go!

Once you've configured your app, you can now use `openfort` throughout to access the Openfort SDK.

Check out our [starter repo](https://github.com/openfort-xyz/openfort-js/tree/main/examples/apps/auth-sample) to see what a simple end-to-end integration looks like, or read on to learn how you can use Openfort to:

* [Log your users in](https://www.openfort.io/docs/products/embedded-wallet/javascript/auth).
* [Request signatures](https://www.openfort.io/docs/products/embedded-wallet/javascript/smart-wallet).
::::
