The deterministic layer under your score.
Your models say how risky. Manav adds the primitive that says yes or no: when your score crosses the threshold, the user signs from an enrolled device — passkey + liveness — and your customer gets a receipt instead of a probability. We’re the step-up you trigger, not the score you compete with.
The receipt below was signed and checked in this tab, with zero network calls.
Cryptographic fields
the real cost of every $1 of fraud at US financial institutions — mostly investigation labor.
of financial institutions still run fraud operations mostly or entirely by hand.
of digital account-creation attempts flagged as suspected fraud; $3.3B lender exposure.
A score in the gray zone becomes a manual review: minutes of analyst time, a false-positive cost your customers eat, and a decision nobody can later prove. The risk platforms themselves point at the answer — Sardine: phishing-resistant passkeys make an AiTM attack fail at step two
. The score tells you when to demand proof. The receipt is the proof — and it closes the review in 30 seconds instead of a queue.
Three integration points. Your brand, our receipt.
// Before the consequential action, from your backend: const receipt = await manav.sign({ action: 'account.stepup', payload: { caseId, riskScore }, subject: user.principal, assurance: 'passkey+liveness', }); if (receipt.ceremony === 'completed') proceed(receipt.id); // Anyone verifies the receipt offline against our published JWKS — forever.
Run the ceremony yourself. Then try to fake it.
A controlled sandbox of the exact flow above — your system asks, the enrolled human signs on their own device, a receipt is issued, and you attack it. Real Ed25519, in this tab, nothing sent anywhere.
A 30-minute integration conversation.
Bring the flow in your product where this belongs. We’ll run the ceremony on it and hand you a receipt you can verify yourself before the call ends — and a straight answer on what an embed looks like commercially.