Skip to main content
The customer-facing half of nazarae-1: the decision console, policy tooling, demo and benchmark suites, and the evidence base. The model itself is served by nsr-server. nazarae-1 is a decision authority, not a text generator. Every answer is approved, denied, or refused with cited rules, a replayable derivation, and a SHA-256 policy pin — or a refusal that names the exact missing_facts.

Onboarding

Onboarding is card-optional: a three-step wizard covering org creation, payment, and a one-time key reveal. Signup routes through hosted WorkOS AuthKit.
The API key is revealed once, at the end of the wizard. There is no way to retrieve it afterward — store it before leaving the page.
New orgs get an activation checklist on the dashboard, and the quickstart curl is designed to return a grounded approval on the first call rather than a refusal, so the first experience demonstrates the system working.

Free trial

FREE_TIER_DECISIONS (default 100) lets an org make N billable decisions before the billing gate applies. The gate reads the org’s cumulative billable count and allows while used < N. Setting it to 0 disables the trial, requiring a card up front. On subscribe, the usage watermark is advanced to the current total, so trial decisions are never metered.
Non-billable decisions never advance free-tier usage. If the stats endpoint is briefly unavailable the trial fails open, so a new user isn’t blocked by a transient outage — while a subscribed org’s status check still fails closed to 503.

Billing

$0.05 USD per billable decision, billed monthly in arrears, via Stripe Elements. Usage is reported by an hourly job that pulls each org’s cumulative billable count from /v1/decisions/stats and pushes the delta as a meter event. Checkpoints live in customer metadata, making it crash-safe.
The reporter never double-bills. If the cumulative total ever shrinks — a stats anomaly or a retention trim — it reports nothing and holds the checkpoint rather than rolling it down. A genuine permanent shrink under-bills until the count re-crosses the held checkpoint. This is a deliberate tradeoff: never double-bill beats never under-bill.
A unified billing summary shows the trial meter and subscribed plan usage in one place, with a visible free-trial deduction.

Environment

One-time setup per Stripe mode

  1. STRIPE_SECRET_KEY=sk_… npm run billing:bootstrap — creates the meter, product, and price. Idempotent.
  2. In the Stripe dashboard, add a webhook for customer.subscription.*, invoice.paid, and invoice.payment_failed, and put the signing secret in STRIPE_WEBHOOK_SECRET.
  3. Add the environment variables to the BFF deployment.

Console

Four surfaces, each doing something the API alone makes awkward.

Playground

Sends a decision and shows the whole verdict envelope — the proof, the derivation, which org evidence was used, the policy pin, and the GSS grounding — rather than just the verdict. A refusal is not a dead end here: it names the missing_facts, and one click asserts them and re-runs, with the session transcript visible so you can see what changed the answer. It opens with a primer on how to read a proof, because the output shape is unfamiliar to anyone arriving from chat-style LLMs.

Import policy

Drag in a PDF, DOCX, TXT, MD or CSV. Rules are mined in the browser, each carrying provenance back to the passage it came from, then linted, uploaded and smoke-proved before they are live.
Mining runs client-side, so the source document is not uploaded — only the rules you accept are. That matters when the policy you are importing is a contract or an internal SOP you would rather not hand to a service.

Dashboard, Decisions and Usage

A health-verified connection, live analytics over recent decisions, and the verified-decision curl quickstart. This is where the calibration curve and the refusal roadmap surface once outcomes are flowing.

API keys

Create org-scoped keys with their scopes and an optional rate limit, against /api/v1/auth/keys. The secret is revealed once — the console offers to adopt it as its own credential in one click at that moment, which is the only time it can. Revocation is inline and immediate.

Proving it works

The console ships its own evidence tooling rather than asking you to trust it.
policy:doctor is the one to run after seeding an org by any route other than the miner. It finds rules derivable from the org’s persistent facts alone, with no case facts supplied. Those rules never authorize anything on their own — the grounding gate holds — but they attach to cited_rules on every decision, which makes top-rules analytics meaningless and buries the rules that actually decided the case. Add --strict to fail a pipeline on any.

Running locally

NSR_RATE_LIMIT matters — the default of 100 req/min cannot absorb the review suite’s burst traffic. The :admin scope enables console API-key management.

For agents

A machine-readable index is served at /llms.txt.
Last modified on August 29, 2026