Developers

Three calls. One identity. Zero password resets.

The SDK runs in the browser. Your server gets an accept or deny with calibrated confidence. Your session layer stays yours.

0 ms

Median verify latency (lab)

< 0 ms

p95 at the edge

99.95%

Availability bar we design against

login.ts
// 1. Begin a session
const session = await gp.start({ user: "ada@stackcorp.com" });

// 2. Run a short challenge in the browser
const signature = await gp.capture({ session });

// 3. Verify on your server
const { ok, confidence, reason } = await gp.verify(signature);

if (ok && confidence > 0.92) grantAccess();
// request
POST /v1/verify
Content-Type: application/json

{
  "session": "sess_…",
  "signature": "sig_…"
}
// response
{
  "ok": true,
  "confidence": 0.961,
  "decision": "accept",
  "reason": "match",
  "vector_id": "v_2J4Q…",
  "elapsed_ms": 184
}

Stack

JS / TS SDKBrowser-native
RESTJSON + signed nonces
WebhooksDecisions + audit
Server runtimesNode, Deno, Bun, Edge

First integration in one sitting. Same story as the SDK, spelled out in the architecture doc.

Build something this week. If you get stuck, we answer email from the founders.