Overview
LazorKit React SDK — passkey smart wallets for web apps.
Drop-in React hook + provider for LazorKit smart wallets on Solana. Users authenticate with
a device passkey (Face ID, Touch ID, Windows Hello, security key) via the native
navigator.credentials API — no popups, no extensions, no seed phrase.
Package
@lazorkit/wallet on npm. Requires
React 18+ and a browser that supports WebAuthn.
Why this SDK
- Passkey auth — synced via iCloud Keychain / Google Password Manager for cross-device continuity.
- Gasless by default — Kora paymaster sponsors every mutation. Users never need SOL.
- Session keys — a single tap mints a scoped Ed25519 signer; subsequent txs are prompt-free.
- On-chain spending limits — optional lifetime caps, per-tx caps, recurring windows, program allow/block-lists.
- Ed25519 authorities — delegate admin / spender roles to companion keys.
- Deferred execution — one tap authorises multi-instruction payloads too big for a single tx.
How it fits together
┌─────────────┐ navigator. ┌──────────┐
│ your app │◀─credentials──▶│ passkey │
│ (React) │ (WebAuthn) │ (device) │
└──────┬──────┘ └──────────┘
│
▼ build tx / finalize
┌─────────────┐ relay via ┌─────────┐
│ SDK │─── paymaster ─▶│ Solana │
└─────────────┘ └─────────┘The SDK talks to the passkey directly through the browser — no redirect flow, no portal window. Once signed, transactions are relayed by the Kora paymaster.
Explore
Getting Started
Install, mount the provider, send your first transaction.
LazorkitProvider
Provider props and configuration.
useWallet hook
Complete API — connect, sign, sessions, authorities.
Types
TypeScript interfaces, SpendingLimits, constants.
Session Keys
Skip the passkey prompt with scoped Ed25519 keys.
Troubleshooting
Common issues: polyfills, SSR, WebAuthn errors, 0xbd0.