What is NFID?

NFID is a wallet protocol to self-custody personal data. Onboarding of both mainstream and crypto native users is streamlined to under 30 seconds by providing experiences they're most comfortable with. With support for social logins, web native platforms, wallets, and other key management methods, NFID results in a standard cryptographic identity provider specific to the user and application.

What does NFID do?

With NFID integrated in your application, the friction between you and your users is minimal.

Seamless registration to your app

Your users can sign up through a flow of their choice:

  • Mainstream Social Account Login & Passwordless flows: Users can register via Google for fastest onboarding, or the biometric unlock on their devices.
  • Web3 Wallet Support: Users are empowered to use their existing wallet as a private key store authenticating them to their NFID.

Simple payments to your app

Your users can share their data and pay for your products:

Familiar sybil resistance

Your users can prove they have a mobile phone number they haven't used to create an account with your application before:

  • Verified: Users verify with a code generated by AWS, and additionally by a fraud and bot detection API to ensure non-VOIP, non-scam numbers.
  • Unique: The same phone number cannot exist in more than one NFID, guaranteeing only unique new users pass.
  • Private: Phone numbers are sent hashed to preserve the privacy of your users while still giving you a unique string to index on.

Authentication and Trust

NFID uses social logins, device-based FIDO biometrics, and other key management stores to provide a secure and easy-to-deploy wallet authentication process that can be used for any app, in any channel.

Here's how it works:

  • User performs an action that requires authentication (such as login).
  • User executes an authentication process with NFID, which may also include registering to NFID.
  • Upon successful authentication, you receive an identity delegate, which preserves the user's privacy and provides nothing but a principal identifier to index the user on.
  • If needed, you request more information from the user whenever you need (e.g. proof of a unique phone number, wallet addresses). You may request this information as gated entry to some portion of your app.

Online playground

To experiment with the registration flows for NFID, check out our integration in Kinic, OpenChat, or DSCVR

Edit this page on GitHub Updated at Wed, Mar 8, 2023