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

# Haptics

> Play a vibration through the phone with haptics() — the physical half of a moment your UI already shows.

Your app runs on a phone in someone's hand, and the hand is a display too.
`haptics()` plays one vibration through the phone's engine — the wheel stops,
the pick lands, the win pays, and the moment registers physically as well as
on screen.

```ts theme={null}
import { bankroll } from "@joinbankroll/sdk";

await bankroll.haptics();                    // the host default — a heavy impact
await bankroll.haptics({ type: "success" }); // a completed action
```

## The types

| `type`                          | What it is for                                           |
| ------------------------------- | -------------------------------------------------------- |
| `light` / `medium` / `heavy`    | Impacts, in rising weight — ticks, landings, collisions. |
| `success` / `warning` / `error` | Outcome notifications — an action completed, or didn't.  |
| `selection`                     | The finest tick — a value changing under the finger.     |

An omitted or unknown `type` plays the host default, a heavy impact — a value
from a newer SDK degrades on an older host rather than erroring.

## It never rejects

Haptics is decoration, so unlike every other capability this call **never
rejects**: in a plain browser, under a Bankroll host too old to carry it, or on
any bridge failure, it resolves having done nothing. Call it freely at the
moments that deserve weight, and gate nothing on it.

It is also fire-and-forget on the host side — the call resolves as soon as the
host accepts it, not when the vibration ends, so it never holds your frame or
your game loop.

## Nothing to declare

Haptics moves no money and reads no data, so it rides the connection your app
already has: no manifest claim, no consent line, and no re-consent for users
who connected before it existed. Any connected app may call it.

Requires a Bankroll host at client version 4 or later. The SDK feature-detects
the method, so there is no version number for you to check.
