BringID Widget is a privacy-focused identity verification application built on the Semaphore protocol. It allows users to prove their identity without revealing personal information by leveraging zero-knowledge proofs and blockchain-based identity groups.
This widget is not meant to be used standalone. It is accessed exclusively through the BringIDModal component provided by the bringid npm package. The modal embeds the widget in an iframe and handles all communication between the host application and the verification flow.
- Framework: Next.js 15 (App Router, Turbopack)
- Language: TypeScript
- UI: React 19, Styled Components
- State Management: Redux Toolkit, React Redux
- Blockchain: Ethers.js, Semaphore Protocol
- Analytics: Plausible (via next-plausible)
Copy the example env file and fill in the values:
cp .env.example .env.local| Variable | Description |
|---|---|
NEXT_PUBLIC_ZUPLO_API_KEY |
API key for the Zuplo API gateway |
NEXT_PUBLIC_TASK_PENDING_TIME |
Duration (ms) for task pending state |
NEXT_PUBLIC_IS_STAGING |
Set to true to enable staging configuration |
- Node.js 18+
- yarn
# Install dependencies
yarn install
# Start development server (with Turbopack)
yarn devThe app will be available at http://localhost:3000.
| Command | Description |
|---|---|
yarn dev |
Start dev server with Turbopack |
yarn build |
Create production build |
yarn start |
Start production server |
yarn lint |
Run ESLint |
yarn clean |
Remove .next build cache |
AGPL-3.0