Wallet architecture

Options when signing up and auth-ing users

We have both client-side and server-side integrations available for onboarding users.

It is recommended to review our API reference that can be found here.

We have the specific endpoints and workflow listed below the diagram.


Client-side integration and experience:

Diagram for client-side integration and experience

Diagram for client-side integration and experience


The following endpoints can be used:

  • Guest user signup - this signs up a user as a guest, who has a wallet but hasn't given any details to be able to re-auth back in if they lose their device or session ID.
  • Full user account sign up - this signs up a user as a "full user", who has provided their email so can re-auth. Essentially, they can keep their wallet and its contents.
  • Guest user -> Full User - gives the guest user the ability to submit their email and "keep" their wallet, to re-auth/login whenever they want.
  • Send confirmation email - required to get the code to verify their email and become a full user with a claimed wallet.
  • Log in (code) & Log in (password) - does what it says on the tin.

Server-side integration and experience:

No fancy diagrams here - it's really simple.


  • Create (gamer) user - you can give a username, an email, both, or neither.
    • Username, no email = guest user,
    • No username, no email = guest user with random username,
    • No username, with email = full user that has to enter the pin they get emailed to verify, with a random username,
    • Username with email = full user that has to enter the pin they get emailed to verify, with their chosen username.
  • Sign in gamer - gives you the user token to perform functions for the user,
  • Create sign up link for user - generates a link for a user that you can then provide in whatever way you want, so the user can then enter their email to upgrade to a full user and auth into their wallet/account.

πŸ“˜

Note: Wallet creation

A wallet is created whenever a Nefta User ID (NUID) is created.

This happens when:

  • A guest account is created,
  • A full account is created via entering an email,
  • A full account is created via connecting a custodial wallet.