> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nippy.la/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> B2B gamification engine for financial and benefits apps

## What it is

Nippy is a B2B gamification platform with 750K+ active users. The same engine that runs in production — roulettes, points, challenges — is now available for any bank or fintech to integrate into their own app.

**Design principle:** one engine, many shells. Your bank integrates the SDK, Nippy handles the full engine: rules, probabilities, inventory, prize delivery, webhooks.

You own your UX. We handle the rest.

## Use cases

<CardGroup cols={3}>
  <Card title="Transactional loyalty" icon="credit-card">
    Reward purchases, payments, or any business event. Configure each purchase over \$500 to trigger a spin automatically.
  </Card>

  <Card title="Gamified onboarding" icon="rocket">
    Turn onboarding steps (open account, first deposit, activate card) into events that unlock mechanics.
  </Card>

  <Card title="Active retention" icon="repeat">
    Configurable cooldowns and spin limits to distribute engagement over time without burning your prize budget.
  </Card>
</CardGroup>

## Architecture

```
Your app (bank/fintech)
       │
       │  npm install @nippy/sdk
       ▼
   NippyClient
   ┌─────────────────────────────────┐
   │  track()   spin()               │
   │  getState()  claim()            │
   └──────────────┬──────────────────┘
                  │  HTTPS
                  ▼
      ms.nippy.la/v1/public/...
   ┌─────────────────────────────────┐
   │  Nippy Engine                   │
   │  • Rule evaluation              │
   │  • Probabilities and draw       │
   │  • Inventory management         │
   │  • Prize reservations           │
   └──────────────┬──────────────────┘
                  │  Signed webhooks
                  ▼
      Your webhook endpoint
```

### Two activation modes

| Mode                        | When to use                                                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Automatic via `track()`** | The user triggers an event (purchase, login, etc.) and the engine evaluates whether a spin is due based on campaign rules |
| **Direct via `spin()`**     | Your app decides when to spin — useful for flows where the user explicitly presses "spin"                                 |

## What the SDK does not do

* Does not render the animation (you control the UI; the SDK returns the `seed` and `targetAngle` for you to animate)
* Does not store the result — save it in your database via webhook
* Does not manage user identity — you pass the `userId` you use in your system

## Requirements

* Node.js 18 or higher
* A `npk_live_*` API key (provided by the Nippy team)
* TypeScript 4.5+ (recommended; works in plain JavaScript too)

<Card title="Get started in 5 steps" icon="rocket" href="/en/sdk/quickstart">
  Install the SDK, create your first campaign, and receive your first spin in under 30 minutes.
</Card>
