{
  "$schema": "https://trymellonauth.com/docs/index.json",
  "version": "1",
  "description": "TryMellon documentation index. Machine-readable manifest for AI agents, tooling, and integrations. Start with the entry path for a guided integration walkthrough.",
  "entry": "https://trymellonauth.com/docs/getting-started",
  "sdk": {
    "npm": "@trymellon/js",
    "repository": "https://github.com/ResakaGit/trymellon-js",
    "install": "npm install @trymellon/js"
  },
  "api": {
    "base": "https://api.trymellonauth.com",
    "healthCheck": "https://api.trymellonauth.com/health",
    "status": "https://status.trymellonauth.com"
  },
  "categories": [
    "Getting Started",
    "Guides",
    "Reference",
    "Migration",
    "Web3",
    "Dashboard",
    "Backend integration",
    "Integrations",
    "Webhooks",
    "SDK",
    "Overview"
  ],
  "count": 47,
  "docs": [
    {
      "slug": "getting-started",
      "path": "/docs/getting-started",
      "url": "https://trymellonauth.com/docs/getting-started",
      "title": "Getting Started",
      "description": "Get started with TryMellon passwordless authentication and the JavaScript SDK.",
      "category": "Getting Started",
      "order": 1
    },
    {
      "slug": "installation",
      "path": "/docs/installation",
      "url": "https://trymellonauth.com/docs/installation",
      "title": "Installation",
      "description": "Install and configure the TryMellon JavaScript SDK.",
      "category": "Getting Started",
      "order": 2
    },
    {
      "slug": "sandbox-mode",
      "path": "/docs/sandbox-mode",
      "url": "https://trymellonauth.com/docs/sandbox-mode",
      "title": "Sandbox Mode",
      "description": "Test the SDK locally without credentials, API calls, or WebAuthn prompts.",
      "category": "Getting Started",
      "order": 2.5
    },
    {
      "slug": "register-authenticate",
      "path": "/docs/register-authenticate",
      "url": "https://trymellonauth.com/docs/register-authenticate",
      "title": "Register & Authenticate",
      "description": "Register passkeys and authenticate users with the SDK.",
      "category": "Guides",
      "order": 3
    },
    {
      "slug": "cross-device",
      "path": "/docs/cross-device",
      "url": "https://trymellonauth.com/docs/cross-device",
      "title": "Cross-Device Authentication",
      "description": "Allow users to log in on desktop by scanning a QR code with their mobile device.",
      "category": "Guides",
      "order": 4
    },
    {
      "slug": "qr-default-integration",
      "path": "/docs/qr-default-integration",
      "url": "https://trymellonauth.com/docs/qr-default-integration",
      "title": "QR Default Domain — Integration Guide",
      "description": "Use the TryMellon bridge domain to ship cross-device QR login without deploying your own mobile-auth page.",
      "category": "Guides",
      "order": 5
    },
    {
      "slug": "events-errors",
      "path": "/docs/events-errors",
      "url": "https://trymellonauth.com/docs/events-errors",
      "title": "Events & Error handling",
      "description": "SDK events and error handling with Result and error codes.",
      "category": "Guides",
      "order": 6
    },
    {
      "slug": "action-signing",
      "path": "/docs/action-signing",
      "url": "https://trymellonauth.com/docs/action-signing",
      "title": "Action Signing",
      "description": "Use passkeys to sign high-risk user actions — cryptographic proof of explicit intent with anti-replay guarantees.",
      "category": "Guides",
      "order": 7
    },
    {
      "slug": "fallback-email",
      "path": "/docs/fallback-email",
      "url": "https://trymellonauth.com/docs/fallback-email",
      "title": "Fallback by email",
      "description": "Use email OTP when WebAuthn is not available.",
      "category": "Guides",
      "order": 7
    },
    {
      "slug": "backend-validation",
      "path": "/docs/backend-validation",
      "url": "https://trymellonauth.com/docs/backend-validation",
      "title": "Backend validation",
      "description": "Validate the session token on your backend and create your own session.",
      "category": "Guides",
      "order": 8
    },
    {
      "slug": "session-validation",
      "path": "/docs/session-validation",
      "url": "https://trymellonauth.com/docs/session-validation",
      "title": "Session validation (client-side)",
      "description": "Validate session and check WebAuthn support from the SDK.",
      "category": "Guides",
      "order": 9
    },
    {
      "slug": "web-components",
      "path": "/docs/web-components",
      "url": "https://trymellonauth.com/docs/web-components",
      "title": "Web Components",
      "description": "Drop-in auth UI with trymellon-auth and trymellon-auth-modal — usage, anonymous flow, and dashboard configuration.",
      "category": "Guides",
      "order": 9.5
    },
    {
      "slug": "security",
      "path": "/docs/security",
      "url": "https://trymellonauth.com/docs/security",
      "title": "Security",
      "description": "WebAuthn security model, infrastructure, compliance status, CSP, SRI, and best practices.",
      "category": "Reference",
      "order": 10
    },
    {
      "slug": "api-reference",
      "path": "/docs/api-reference",
      "url": "https://trymellonauth.com/docs/api-reference",
      "title": "API Reference",
      "description": "Condensed reference for the public SDK API and types.",
      "category": "Reference",
      "order": 11
    },
    {
      "slug": "entity-enrollment",
      "path": "/docs/entity-enrollment",
      "url": "https://trymellonauth.com/docs/entity-enrollment",
      "title": "Entity Enrollment (Keys & Padlock)",
      "description": "Register devices or entities with passkeys using single-use tickets. Configure TTL and limits per app in the dashboard.",
      "category": "Guides",
      "order": 12
    },
    {
      "slug": "account-recovery",
      "path": "/docs/account-recovery",
      "url": "https://trymellonauth.com/docs/account-recovery",
      "title": "Account Recovery",
      "description": "Recover access when a passkey is lost or a device is unavailable.",
      "category": "Reference",
      "order": 13
    },
    {
      "slug": "b2b-recovery",
      "path": "/docs/b2b-recovery",
      "url": "https://trymellonauth.com/docs/b2b-recovery",
      "title": "B2B account recovery",
      "description": "Recover users without giving TryMellon their PII. You issue a one-time enrollment link over your own channel; users register a new passkey, their old credentials are revoked.",
      "category": "Reference",
      "order": 13.3
    },
    {
      "slug": "qr-default-release-notes",
      "path": "/docs/qr-default-release-notes",
      "url": "https://trymellonauth.com/docs/qr-default-release-notes",
      "title": "QR Default — Release Notes",
      "description": "Release history of the QR default domain feature, from internal demo to GA.",
      "category": "Reference",
      "order": 14
    },
    {
      "slug": "troubleshooting",
      "path": "/docs/troubleshooting",
      "url": "https://trymellonauth.com/docs/troubleshooting",
      "title": "Troubleshooting",
      "description": "Solutions for common errors when integrating TryMellon.",
      "category": "Reference",
      "order": 15
    },
    {
      "slug": "faq",
      "path": "/docs/faq",
      "url": "https://trymellonauth.com/docs/faq",
      "title": "FAQ",
      "description": "Frequently asked questions about TryMellon and passkeys.",
      "category": "Reference",
      "order": 16
    },
    {
      "slug": "ai-agents",
      "path": "/docs/ai-agents",
      "url": "https://trymellonauth.com/docs/ai-agents",
      "title": "AI Agents",
      "description": "Programmatic onboarding for AI agents via the API.",
      "category": "Reference",
      "order": 17
    },
    {
      "slug": "support-contact",
      "path": "/docs/support-contact",
      "url": "https://trymellonauth.com/docs/support-contact",
      "title": "Support & contact",
      "description": "How to get help and contact TryMellon. Sales inquiries by email only.",
      "category": "Reference",
      "order": 18
    },
    {
      "slug": "mobile-testing",
      "path": "/docs/mobile-testing",
      "url": "https://trymellonauth.com/docs/mobile-testing",
      "title": "Mobile Testing",
      "description": "How to test passkeys on mobile devices during development.",
      "category": "Guides",
      "order": 19
    },
    {
      "slug": "admin-api",
      "path": "/docs/admin-api",
      "url": "https://trymellonauth.com/docs/admin-api",
      "title": "Admin REST API",
      "description": "Server-to-server endpoints for managing users, credentials, audit logs, and usage. Requires an OAuth2 bearer token.",
      "category": "Reference",
      "order": 20
    },
    {
      "slug": "framework-examples",
      "path": "/docs/framework-examples",
      "url": "https://trymellonauth.com/docs/framework-examples",
      "title": "Framework examples",
      "description": "React, Vue, Angular, Svelte, Next.js, and Web Components integration examples.",
      "category": "Reference",
      "order": 21
    },
    {
      "slug": "migrate-from-auth0",
      "path": "/docs/migrate-from-auth0",
      "url": "https://trymellonauth.com/docs/migrate-from-auth0",
      "title": "Migrate from Auth0",
      "description": "Step-by-step guide to replace Auth0 with TryMellon passkey-first authentication.",
      "category": "Migration",
      "order": 22
    },
    {
      "slug": "webhooks-audit-privacy",
      "path": "/docs/webhooks-audit-privacy",
      "url": "https://trymellonauth.com/docs/webhooks-audit-privacy",
      "title": "Webhooks, audit logs & data privacy",
      "description": "Event-driven webhooks per app, tenant-scoped audit logs, and GDPR user data report and deletion.",
      "category": "Reference",
      "order": 23
    },
    {
      "slug": "browser-support",
      "path": "/docs/browser-support",
      "url": "https://trymellonauth.com/docs/browser-support",
      "title": "Browser Support",
      "description": "WebAuthn browser compatibility matrix for TryMellon.",
      "category": "Reference",
      "order": 24
    },
    {
      "slug": "attestation",
      "path": "/docs/attestation",
      "url": "https://trymellonauth.com/docs/attestation",
      "title": "Attestation policies",
      "description": "Enforce which authenticators can register — by AAGUID, certification level, or software/hardware class. Built for regulated industries where \"any passkey\" is not acceptable.",
      "category": "Reference",
      "order": 25
    },
    {
      "slug": "session-binding",
      "path": "/docs/session-binding",
      "url": "https://trymellonauth.com/docs/session-binding",
      "title": "Session binding (DBSC)",
      "description": "Bind session tokens to a device-generated key. Stolen tokens stop working the moment they leave the original device — the fix for session-stealing malware that 2FA cannot catch.",
      "category": "Reference",
      "order": 26
    },
    {
      "slug": "invitations",
      "path": "/docs/invitations",
      "url": "https://trymellonauth.com/docs/invitations",
      "title": "Team invitations",
      "description": "Invite, revoke, and resend tenant invitations. Role-based access for admins, developers, and viewers — with a public acceptance flow that needs no prior account.",
      "category": "Reference",
      "order": 27
    },
    {
      "slug": "anonymous-signup",
      "path": "/docs/anonymous-signup",
      "url": "https://trymellonauth.com/docs/anonymous-signup",
      "title": "Anonymous Signup",
      "description": "Create users without requiring an external ID. Link email or wallet later.",
      "category": "Web3",
      "order": 35
    },
    {
      "slug": "siwe-login",
      "path": "/docs/siwe-login",
      "url": "https://trymellonauth.com/docs/siwe-login",
      "title": "SIWE Login (EIP-4361)",
      "description": "Sign-In with Ethereum — use wallet signatures as identity proof for passwordless auth.",
      "category": "Web3",
      "order": 36
    },
    {
      "slug": "identity-linking",
      "path": "/docs/identity-linking",
      "url": "https://trymellonauth.com/docs/identity-linking",
      "title": "Identity linking",
      "description": "Link email addresses and wallet addresses to a user after sign-up. Works with anonymous accounts, SIWE, and traditional flows — one user, many identifiers.",
      "category": "Web3",
      "order": 37
    },
    {
      "slug": "dashboard/api-key-rotation",
      "path": "/docs/dashboard/api-key-rotation",
      "url": "https://trymellonauth.com/docs/dashboard/api-key-rotation",
      "title": "API key rotation",
      "description": "Rotate an application's client_secret with a grace period for zero-downtime deploys.",
      "category": "Dashboard",
      "order": 200
    },
    {
      "slug": "dashboard/applications-management",
      "path": "/docs/dashboard/applications-management",
      "url": "https://trymellonauth.com/docs/dashboard/applications-management",
      "title": "Applications management",
      "description": "Create and configure tryMellon applications — origins, webhook URL, lifecycle.",
      "category": "Dashboard",
      "order": 201
    },
    {
      "slug": "backend-integration/verify-jwt-offline",
      "path": "/docs/backend-integration/verify-jwt-offline",
      "url": "https://trymellonauth.com/docs/backend-integration/verify-jwt-offline",
      "title": "Verify JWT offline (zero round-trip)",
      "description": "Validate tryMellon session tokens locally with JWKS — no API call per request.",
      "category": "Backend integration",
      "order": 210
    },
    {
      "slug": "backend-integration/jwks-and-kid",
      "path": "/docs/backend-integration/jwks-and-kid",
      "url": "https://trymellonauth.com/docs/backend-integration/jwks-and-kid",
      "title": "JWKS & key rotation",
      "description": "How tryMellon publishes signing keys and how to handle rotation in your validator.",
      "category": "Backend integration",
      "order": 211
    },
    {
      "slug": "backend-integration/reading-custom-claims",
      "path": "/docs/backend-integration/reading-custom-claims",
      "url": "https://trymellonauth.com/docs/backend-integration/reading-custom-claims",
      "title": "Reading custom claims (backend)",
      "description": "Decode and read tryMellon custom claims from session JWTs in Node, Go, and Python.",
      "category": "Backend integration",
      "order": 212
    },
    {
      "slug": "integrations/openid-connect",
      "path": "/docs/integrations/openid-connect",
      "url": "https://trymellonauth.com/docs/integrations/openid-connect",
      "title": "OpenID Connect integration",
      "description": "tryMellon as an OIDC provider — discovery, JWT validation, framework examples.",
      "category": "Integrations",
      "order": 220
    },
    {
      "slug": "integrations/token-introspection",
      "path": "/docs/integrations/token-introspection",
      "url": "https://trymellonauth.com/docs/integrations/token-introspection",
      "title": "Token introspection (RFC 7662)",
      "description": "Live revocation check for tryMellon session tokens via the OAuth introspection endpoint.",
      "category": "Integrations",
      "order": 221
    },
    {
      "slug": "webhooks/events",
      "path": "/docs/webhooks/events",
      "url": "https://trymellonauth.com/docs/webhooks/events",
      "title": "Webhook event catalog",
      "description": "All webhook events emitted by tryMellon, with payload shapes and emission triggers.",
      "category": "Webhooks",
      "order": 230
    },
    {
      "slug": "webhooks/handling-revocation",
      "path": "/docs/webhooks/handling-revocation",
      "url": "https://trymellonauth.com/docs/webhooks/handling-revocation",
      "title": "Handling session revocation",
      "description": "Pattern for invalidating local session caches when tryMellon revokes a session.",
      "category": "Webhooks",
      "order": 231
    },
    {
      "slug": "webhooks/signature-verification",
      "path": "/docs/webhooks/signature-verification",
      "url": "https://trymellonauth.com/docs/webhooks/signature-verification",
      "title": "Webhook signature verification",
      "description": "Verify the HMAC-SHA256 signature on incoming tryMellon webhooks.",
      "category": "Webhooks",
      "order": 232
    },
    {
      "slug": "sdk/custom-claims",
      "path": "/docs/sdk/custom-claims",
      "url": "https://trymellonauth.com/docs/sdk/custom-claims",
      "title": "Custom claims (SDK)",
      "description": "Inject application-defined claims into the session JWT.",
      "category": "SDK",
      "order": 240
    },
    {
      "slug": "data-locality",
      "path": "/docs/data-locality",
      "url": "https://trymellonauth.com/docs/data-locality",
      "title": "Data locality and residency",
      "description": "How TryMellon stores user data, where it lives, how to export it, and how to request deletion — for compliance teams evaluating PSD2, LGPD, and GDPR.",
      "category": "Reference",
      "order": 250
    },
    {
      "slug": "overview",
      "path": "/docs/overview",
      "url": "https://trymellonauth.com/docs/overview",
      "title": "Overview",
      "description": "TryMellon documentation hierarchy — getting started, backend integration, webhooks, dashboard, advanced.",
      "category": "Overview",
      "order": 999
    }
  ]
}