The fastest way to build Passkey-native Solana apps.
Built for the LazorKit Bounty, LazorSwift demonstrates a premium, high-conversion onboarding flow using biometric authentication and gasless transactions. It abstracts away seed phrases, private keys, and gas fees, delivering a Web2-like experience on Web3 rails.

- Hardware-Bound Passkeys: Securely login with FaceID, TouchID, or Windows Hello.
- Non-Custodial: Keys never leave the user's Secure Enclave.
- No Seed Phrases: Eliminates the comprehensive risk of phishing and loss.
- Sponsored Transactions: integrated Paymaster automatically sponsors SOL fees.
- Batch Transfers: Send to multiple recipients in a single, atomic transaction.
- USDC Support: Native support for SPL tokens and "Pay with Token" flows.
- Embeddable Widget: A "Pay with Lazor" component ready for any React app.
- Real-time QR: Dynamic QR code generation for instant wallet sharing.
- Unified Config: Centralized environment management for easy switching between Devnet/Mainnet.
generic-pnp-monitor-2026-01-06-140842_uqyH3hDh.mp4
LazorSwift leverages Account Abstraction to decouple the signer (Passkey) from the account (Smart Wallet).
sequenceDiagram
participant User
participant App as LazorSwift UI
participant Lazor as LazorKit SDK
participant PM as Paymaster
participant Solana as Solana Devnet
User->>App: Click "Connect Wallet"
App->>Lazor: Request Passkey Auth
Lazor->>User: Biomtric Prompt (FaceID/TouchID)
User-->>Lazor: Biometric Signature
Lazor->>App: Return Smart Wallet Address (PDA)
Note over App, Solana: Gasless Transaction Flow
User->>App: Click "Send SOL"
App->>Lazor: Build Transaction Instruction
Lazor->>PM: Request Sponsorship
PM-->>Lazor: Signed Transaction (Payer)
Lazor->>Solana: Send Atomic Transaction
Solana-->>App: Confirmation Signature
App->>User: Show Success Toast
- Framework: Next.js 15 (App Router, Turbopack)
- Styling: Tailwind CSS 4 + Radix UI
- Icons: Lucide React
- Blockchain: Solana (Devnet)
- SDK: @lazorkit/wallet
- Notification: Sonner
git clone https://github.com/0xsupremedev/lazor-swift.git
cd lazor-swift
npm installnpm install @lazorkit/wallet @solana/web3.jsCreate a .env.local file (optional, defaults work for Devnet):
# Solana RPC URL (defaults to Devnet)
NEXT_PUBLIC_RPC_URL=https://api.devnet.solana.com
# LazorKit Portal (for passkey authentication)
NEXT_PUBLIC_LAZOR_PORTAL_URL=https://portal.lazor.shnpm run devOpen http://localhost:3000 in your browser.
- Connect your wallet using a local Passkey (FaceID/TouchID/Windows Hello)
- Use the Session Info card to grab some Devnet SOL from the airdrop
- Try the Batch Transfer to send to multiple addresses at once
- Scan the QR Code to receive funds from mobile wallets
Step-by-step guides for integrating LazorKit:
| Tutorial | Description |
|---|---|
| Product Flow | End-to-end technical & user journey |
| Passkey Login | How to add passkey-based wallet authentication |
| Gasless Transactions | How to send SOL/tokens without gas fees |
| Session Persistence | How to handle multi-device sync and reloads |
| Component | Description |
|---|---|
<ConnectWallet /> |
Handles Passkey registration and login state. |
<SessionInfo /> |
Dashboard showing SOL/USDC balances and Airdrop button. |
<BatchTransfer /> |
Form for executing multi-recipient atomic transactions. |
<RequestPayment /> |
Generates a live QR code for the user's Smart Account. |
<PaymentWidget /> |
Embeddable checkout card with clipboard utilities. |
<ActivityFeed /> |
Live stream of recent Smart Account transactions. |
MIT © 0xsupremedev