Add NFT Authentication
to Any Website in Minutes
QselBase is a drop-in backend that replaces passwords and JWTs with compressed NFTs on Solana. Works with any framework. Free tier included.
What QselBase Gives You
cNFT Session Auth
Every login mints a compressed NFT on Solana. Verifiable, revocable, tamper-proof. No JWTs to steal.
CRUD Data Engine
Full CRUD API backed by MongoDB. Insert, select, update, delete — with access control rules per collection.
Partner Management
Register your site, get API keys, manage users. Partner Linking NFTs create on-chain bonds with your users.
Drop-in SDK
npm install and go. Works with Next.js, React, Vue, Svelte, and plain HTML. Handles QR codes, deep links, and polling.
Zero Password Liability
No passwords stored means no passwords to breach. Session tokens live on Solana, not in your database.
Mobile-First Login
QR scan for desktop, deep link for mobile-to-mobile. Automatic device detection and flow adaptation.
Quick Start
Three steps to passwordless auth on your site.
Install the SDK
npm install @qselbase/sdk axiosConfigure Environment
# .env.local NEXT_PUBLIC_QSELBASE_URL=https://your-qselbase-instance NEXT_PUBLIC_QSELBASE_API_KEY=qb_pk_your_api_key NEXT_PUBLIC_QSELBASE_PARTNER_ID=your-partner-id
Add Login Flow
// Create session → show QR → wait for approval const session = await qb.auth.createSession(); // Display session.qrCodeDataUrl as an <img> await qb.auth.waitForApproval(session.sessionId); // ✅ Authenticated! cNFT minted on Solana
SDK Reference
Full example showing authentication and data operations.
import { QselBase } from '@qselbase/sdk';
const qb = new QselBase({
projectId: 'your-partner-id',
apiKey: 'qb_pk_...',
baseUrl: 'https://your-qselbase-url',
});
// ── Authentication ──────────────────────────────
// Create a session (returns QR code data URL + deep link)
const session = await qb.auth.createSession({
eventType: 'login',
});
// Display session.qrCodeDataUrl as <img> on your login page
// User scans with QSEL Authenticator
// Wait for approval (polls automatically)
await qb.auth.waitForApproval(session.sessionId);
// ✅ User authenticated! Session stored in localStorage
const { data: { session: current } } = qb.auth.getSession();
console.log('Wallet:', current.wallet);
console.log('cNFT:', current.cNftMint);
// ── Verify session (server-side) ────────────────
const result = await qb.auth.verify();
// result.valid === true
// result.onChain === true (verified on Solana)
// ── CRUD Data Engine ────────────────────────────
const { data } = await qb
.from('users')
.select('*')
.eq('active', true);
await qb.from('posts').insert({
title: 'Hello World',
author: current.wallet,
});Auth Methods
- qb.auth.createSession(options)
- qb.auth.waitForApproval(sessionId)
- qb.auth.verify()
- qb.auth.getSession()
- qb.auth.signOut()
- qb.auth.refreshSession()
- qb.auth.getUser()
- qb.auth.updateProfile(data)
- qb.auth.linkEmail(email)
- qb.auth.onAuthStateChange(cb)
Data Methods
- qb.from(collection).select(fields)
- qb.from(collection).insert(data)
- qb.from(collection).update(data)
- qb.from(collection).delete()
- .eq(field, value)
- .neq(field, value)
- .gt(field, value)
- .lt(field, value)
- .order(field, dir)
- .limit(count)
Simple Pricing
Start free. Scale when you're ready. No surprises.
Free
Perfect for testing and hobby projects
- ✓500 monthly active users
- ✓10 collections • 100 MB storage
- ✓cNFT session tokens
- ✓QR code + deep link flows
- ✓SDK access
- ✓Community support
Starter
For small apps getting traction
- ✓5,000 monthly active users
- ✓25 collections • 1 GB storage
- ✓Everything in Free
- ✓3 webhooks • 5 custom roles
- ✓Email verification
- ✓Profile schemas • GDPR export
Pro
For growing apps and businesses
- ✓25,000 monthly active users
- ✓50 collections • 5 GB storage
- ✓Everything in Starter
- ✓10 webhooks • 20 custom roles
- ✓Analytics dashboard
- ✓Phone verification • File storage
Business
For serious production workloads
- ✓100,000 monthly active users
- ✓100 collections • 20 GB storage
- ✓Everything in Pro
- ✓25 webhooks • 50 custom roles
- ✓Realtime subscriptions
- ✓Priority support
Scale
For high-traffic applications
- ✓500,000 monthly active users
- ✓Unlimited collections • 100 GB
- ✓Everything in Business
- ✓100 webhooks • 200 custom roles
- ✓Dedicated support
Enterprise
For large-scale deployments
- ✓Unlimited users & collections
- ✓Custom storage & rate limits
- ✓Dedicated Merkle trees
- ✓SLA guarantee • SSO
- ✓White-label options
- ✓Custom integrations
All paid plans include a 14-day free trial. No credit card required to start. cNFT session tokens on Solana Devnet (Mainnet on Business+).
Start Building Today
Get your API key, install the SDK, and have NFT authentication running on your site in under 10 minutes.