Manav.id
SDK

Three lines of JavaScript. Demo key works on localhost.

Drop the SDK into any web app that gates a high-risk action behind verified human consent. The demo mode accepts mnav_test_demo so you can ship the integration without provisioning a key first.

Offline-verifiable WebAuthn-backed Ed25519 Apache 2.0

1 · Install

<script src="sdk/manav-sdk.js"></script>

2 · Initialize

const manav = Manav.init({
  apiKey:  'mnav_test_demo',   // demo mode; works on localhost
  orgSlug: 'acme'
});

3 · Require a fresh signature

const { proofSlug, proofUrl, status } = await manav.sign({
  actionType:        'approve_wire_transfer',
  actionTitle:       'Approve $42,000 vendor wire',
  externalReference: 'wire_9281',
});

// proofSlug:  'mnav_proof_a83f9c2b...'
// proofUrl:   'https://manav.id/proof/?slug=...'
// status:     'verified' | 'declined' | 'expired'

4 · Verify a receipt offline

Any party that fetches Manav's published Ed25519 key once can verify any receipt independently, no callback to Manav required. A Manav outage does not break verification.

import { verifyReceipt } from '@manav/verify';

const jwks = await fetch('https://manav.id/.well-known/manav-keys');
const result = await verifyReceipt(receipt, jwks);
// { ok: true, actor: 'pk_acme_4f81...', action: 'approve_wire_transfer' }

5 · Issue a delegation to an AI agent

For autonomous agents that act on a user's behalf across many actions, the human issues one scoped delegation; the agent then signs each action under that delegation. The chain verifies to the originating human passkey.

const delegation = await manav.delegate({
  delegateKey:    agentPublicKey,
  scope: {
    actions:     ['approve_wire_transfer'],
    constraints: { amount: { currency: 'USD', max: 50000 } }
  },
  notAfter:       '2026-05-23T23:59:59Z',
  maxChainDepth:  1
});

// Pass `delegation` to your agent. Each agent action emits
// a receipt traceable to the authorizing human.

Provisioning a production key

The demo key is rate-limited and clearly marked as test traffic on the proof page. For production deployment:

Tell us your shape

Email [email protected] with your org name, expected receipt volume, and the application domains you'll integrate from.

We provision

You receive a scoped API key, your org's per-context signing key in HSM custody, and a dashboard URL.

You go live

Same SDK. The only change is the apiKey in Manav.init(). Standard SLA is 99.95% on issuance.