Clerk is saving Web3 developers from the greatest evils of the Web2 platform: cookies, multifactor authentication, and profile enrichment
There's a near ubiquitous challenge around securing sessions. It's a two-part problem:
With Clerk, all the work of signing a transaction and verifying the signature is abstracted away, and wrapped in a <SignInWithMetamaskButton/> component.
Built-in session management is the foundation of every authentication product at Clerk. We use stateless JWTs that enable authentication in under 1 millisecond, and revocation in under 1 minute. We follow all the best practices so you can focus on building your application.
Sign in with Metamask uses the same abstraction as our other authentication factors like passwords or magic links. Because of this, Clerk's multifactor authentication works with Metamask users out-of-the-box.
Users simply need to navigate to their user profile and opt-in to multifactor authentication. There's no extra work for the developer beyond mounting a <UserProfile /> component, or redirecting to the Clerk-hosted component.
Because there are no standard protocols for retrieving data like email addresses and phone numbers on-chain, Clerk enables developers to easily collect and verify this data off-chain.
We provide simple helpers for collecting and verifying phone numbers, email addresses, and even OAuth accounts. We accept structured data like names and profile photos, as well as provide a generic metadata field for bespoke profile enrichment.
In the future, we look forward to enriching profiles in a more decentralized manner.
This guide will get you started with a new Next.js application with Metamask authentication.