Prove more. Reveal less.
Thurin is a privacy-preserving identity verification protocol. Users verify their identity once using a mobile driver's license (mDL), then receive a soulbound token (SBT) that proves they're a unique human—without revealing any personal information.
- User verifies - Connect wallet, share mDL via Apple/Google Wallet
- ZK proof generated - Proves validity without revealing PII
- SBT minted - On-chain proof of unique human status
- dApps check - One line of code to verify users
import { ThurinSBT } from '@thurinlabs/sdk';
import { createPublicClient, http } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({ chain: base, transport: http() });
const thurin = new ThurinSBT(client);
// Check if user is verified
const isVerified = await thurin.isValid(userAddress);import { ThurinSBT } from "@thurinlabs/contracts/interfaces/ThurinSBT.sol";
contract MyDapp {
function doThing() external {
require(ThurinSBT.isValid(msg.sender), "Not verified");
// User is a verified unique human
}
}