Alternative Authentication

Alternative Authentication

Table of Contents

High-level Specification

Functionality

Details

Functionality

Details

FIO App Account Types

Alternative Account

  • Alternative Account should only contain

    • FIO Public Key

    • Account Type

      • Primary

      • Alternative

  • Alternative Account

  • FIO Public Key in Account Conflict Resolution

    • The same FIO Public Key could exist in Primary account and Alternative account and those would be considered separate accounts

      • Example:

        • User A creates Primary Account using email and password

        • User A imports seed phrase ABC

        • User A connects to FIO App using Metamask which has seed phrase ABC installed

        • User A has 2 different accounts:

          • Primary Account

            • Key generated by EDGE

            • Key imported using seed phrase ABC (Account index 0)

          • Alternative Account

            • Key imported using seed phrase ABC (Account index 0)

    • However, when user has an Alternative Account, they can access the same Account using different methods

      • Example:

        • User A connects to FIO App using Metamask which has seed phrase ABC installed

        • In a different browser User A connects to FIO App using Opera which has seed phrase ABC installed

        • Only a single account exists and is simultaneously accessed from Metamask and Opera

  • Multiple Wallets

Sign-in

  • The Sign-in and Account creation process is transparent to the user

  • Process

    • User signs a nonce using FIO Public Key for index 0

    • FIO App fetch FIO Public Key for index 0

    • Create Account - if FIO Public Key is not associated to an account, create account

    • Log user in

Sign Transaction

  • Transaction signing occurs in specific wallet

  • Transaction json should be shown

Metamask SNAP

Overview

Metamask Snap is an extension of Metamask browser plug-in, which allows for new functionality, e.g. ability to sign transactions on a non-EVM chain.

The FIO Snap allows Metamask users to gain access to the FIO App and execute transactions without having to create an account, which requires email and password.

Sign-in Flow

We've encountered an issue exporting this macro. Please try exporting again later.

Sign Transaction Flow

We've encountered an issue exporting this macro. Please try exporting again later.

Functionality

Visual

Functionality

Visual

Functionality

Authenticate

 

  • Set-up SNAP

    • Install FIO SNAP

    • Grant SNAP Permissions

  • Sign-in

    • Have user sign nonce with FIO Private Key

      • SNAP Message

        • Title: Sign-in to FIO App

        • Description:
          Please approve this nonce signature to sign-in to the FIO App. Nonce signature proves that you are the owner of the associated FIO Public Key.
          ------------------------------------
          Random nonce: XXX

  • If user rejects any of these steps display error message

Sign Transaction

 

 

  • Trigger transaction sign in Metamask

  • SNAP Message

    • Title: Sign FIO Transaction

    • Description:
      Please approve the following transaction.
      Transaction name: trnsfiopubky
      ------------------------------------
      FIO Chain: FIO Mainnet
      ------------------------------------
      Transaction details:
      tpid: dashboard@fiouat
      max_fee: 1500000000000
      amount: 100000000000000
      payee_public_key: FIO68bYHgYTqc17jz9MuprzvUY9D7Ud9UmLzruiNiFGkaHMZNUDv5

Decrypt Content

  • When decrypting content of FIO Request or FIO Data, trigger decrypt content transaction in Metamask. If

  • SNAP Message

    • Title: Decrypt FIO Data

    • Description:
      Please approve the decryption of FIO Data. For your security and privacy, FIO Data is always encrypted and has to be decrypted before viewing.

Sign out

FIO_Dashboard - 2023 Revised - MetaMask - Dashboard-20240216-194149.png

 

  • Replace Sign out with Disconnect button with icon