Developer Hub

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/auth
Quickstart Guide
app/api/auth/route.ts
1import { SolidusAuth } from '@solidus-network/auth';
2
3export 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.

1

Install Dependencies

Add the Solidus SDK and auth primitives to your project.

2

Issue a Challenge

On the server, mint a one-time challenge for the DID that wants to log in.

3

Verify the Presentation

Verify the W3C Verifiable Presentation the wallet signs in response to the challenge.

4

Client Login Flow

Fetch a challenge, sign it with the user’s wallet, then post the presentation back.

bash
npm install @solidus-network/sdk @solidus-network/auth

Supported Frameworks

Official SDKs and integration guides for the most popular modern stacks. Don’t see yours? The protocol is open and language-agnostic.

Frontend
Next.js
Frontend
React
Frontend
Vue
Frontend
Svelte
Backend
Node.js
Backend
Express
Backend
Fastify
Backend
Deno
Backend
Python
Backend
Go
Backend
Ruby
Backend
PHP

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.

Rate limit: 1000 req / minute
Ed25519 signature supported
Full API ReferenceComing Soon
POST
/v1/auth/verify

Verify a zero-knowledge proof credential payload from a client.

POST
/v1/auth/challenge

Generate a cryptographic challenge for the user to sign.

GET
/v1/users/:did

Retrieve public profile information for a decentralized identifier.

PATCH
/v1/users/:did

Update application-specific metadata for a user.

POST
/v1/credentials/issue

Issue a new verifiable credential to a user's wallet.

POST
/v1/credentials/revoke

Revoke an active credential using its unique identifier.

GET
/v1/sessions

List active authenticated sessions for a user.

DELETE
/v1/sessions/:id

Invalidate a specific session token.