Zero to Auth in 5 minutes.
Integrate decentralized, privacy-preserving authentication into any application. No vendor lock-in, no passwords to store.
npm install @solidus-network/auth1import { SolidusAuth } from '@solidus-network/auth';23export const POST = SolidusAuth({4 providers: [5 CredentialProvider({6 requirements: ['age >= 18', 'verified-human'],7 network: 'mainnet'8 })9 ],10 callbacks: {11 onSuccess: (session) => {12 // No PII touches your servers.13 provisionAccount(session.did);14 }15 }16});
Quickstart
Get up and running with a verifiable, zero-knowledge authentication flow in just four steps. We'll use Next.js for this example.
Install Dependencies
Add the Solidus SDK and auth primitives to your project.
Issue a Challenge
On the server, mint a one-time challenge for the DID that wants to log in.
Verify the Presentation
Verify the W3C Verifiable Presentation the wallet signs in response to the challenge.
Client Login Flow
Fetch a challenge, sign it with the user’s wallet, then post the presentation back.
npm install @solidus-network/sdk @solidus-network/auth
Works with your stack
The SDK is a TypeScript package on npm, so it runs anywhere JavaScript does. The protocol itself is open and language-agnostic — SDKs for other languages are on the roadmap, not shipped.
REST API
Build custom integrations using our fully documented, highly available REST API. All endpoints require standard Bearer token authentication using your project's secret key.
/v1/auth/verifyVerify a zero-knowledge proof credential payload from a client.
/v1/auth/challengeGenerate a cryptographic challenge for the user to sign.
/v1/users/:didRetrieve public profile information for a decentralized identifier.
/v1/users/:didUpdate application-specific metadata for a user.
/v1/credentials/issueIssue a new verifiable credential to a user's wallet.
/v1/credentials/revokeRevoke an active credential using its unique identifier.
/v1/sessionsList active authenticated sessions for a user.
/v1/sessions/:idInvalidate a specific session token.