Space Authentication
During the Lamina1 Betanet, we demonstrated how Space authentication might work on the Lamina1 Hub with two demo Spaces: Space Lasers, browser-based arcade game created in Unity and hosted on WebGL, and Nyric, a locally-run, downloadable experience built in Unreal Engine. This process will work similarly for Spaces and experiences launching in Mainnet.
Authentication happened via the Space’s details page, where a user was able to preview a description about the storyworld/experience, review important installation instructions and technical requirements, and link out to external applications/experiences via dedicated Download and Play links.
NOTE: Lamina1 Spaces will get a major refresh on the Lamina1 Hub in the lead-up to our first featured Spaces launching on Mainnet in Q1 2024. For more information, see What’s Next For Spaces & Experiences on Lamina1 in the section below.
Once a user selected ‘Play’ they were prompted to sign into that Space’s application/experience directly by signing a short message for the server to verify. Clicking on the plus sign next to ‘Details’ on the sign-in modal provided more information about what signing in via their Lamina Hub account entailed.
As described above, signing this message authenticates a user and gives the Space the ability to add new items to their LAMINA1 Hub account. Once confirmed, a Session Token was sent into the Unity/Unreal experience running the Space’s experience/application that automatically granted a user access to the game for a period of 24 hours. Initiating this process essentially “abstracts” a user’s Lamina1 Hub account, allowing the Space to gain crucial information about the users and the items they have in their inventory without exposing their Hub Account’s private keys to the experience’s developer.
For browser-based experiences, that’s all a user needs to sign in using their Lamina1 Hub account and wallet. For downloadable experiences, users have to take an additional step by generating a unique LAMINA1 Hub authentication code and pasting it into the external app itself.
This extra authentication code step ensured that a user’s Lamina1 Hub account was connected into the experience before they entered it so that they could create/receive items in the game itself. On Lamina1, authentication codes only last five minutes, and cannot be shared amont different users. Users must sign in using their unique authentication code, via the account they created on the Lamina1 Hub.
NOTE: These authentication flows are just the first and simplest way in which you, as a developer, can integrate the Lamina1 Hub. We are conducting research now on how to further extend and simplify this onboarding process for future Spaces –– but for now, we think it’s a pretty streamlined solution to a fairly complicated Web3 permissions and authentication problem.