rLogin - where web3 meets SSI

rLogin is a tool that allows the developers to connect their users with both blockchain functionalities and self-sovereign identity (SSI) models seamlessly, giving the user the power of data privacy and portability.

Quick start! Jump to rLogin docs to install the front end tool

You may also want to see

Quick start!

  • A) Install rLogin
      npm i
  • B) Create rLogin DOM element, configure networks and wallet providers
    import RLogin from '@rsksmart/rlogin'
    import WalletConnectProvider from '@walletconnect/web3-provider'
    export const rLogin = new RLogin({
      cachedProvider: false,
      providerOptions: {
        walletconnect: {
          package: WalletConnectProvider,
          options: {
            rpc: {
              1: 'https://mainnet.infura.io/v3/8043bb2cf99347b1bfadfb233c5325c0',
              30: 'https://public-node.rsk.co',
              31: 'https://public-node.testnet.rsk.co'
      supportedChains: [1, 30, 31]

    Sample: https://github.com/rsksmart/rif-identity-manager/blob/main/src/rLogin.ts

  • C) Show the pop-up to the user
    const handleLogin = () => {
          .then((rLoginResponse: any) => {
            const provider = rLoginResponse.provider;
            const dataVault = rLoginResponse.dataVault;
            const disconnect = rLoginResponse.disconnect;
            // save the response to be used later, here we are using React context
          .catch((err: string) => console.log(err))
  • D) Request RPC methods
    export const getAccounts = (provider: any) => provider.request({ method: 'eth_accounts' })

After integrating rLogin you achieve:

  • a back-end authenticating users by their wallet addressed - their Decentralized Identifiers
  • a registration model capable of requesting users for data stored in its user-centric cloud storage, the Data Vault
  • a front-end capable of interacting with any wallet that the user chooses, with a pre-designed user experience for registration and login
  • compatibility with a unified platform where the user can control their identity and information, the RIF Identity Manager


State of the art

We identify there are two types of decentralized applications: applications with a back-end and applications without a back-end. Applications without a backend interact directly with the blockchain, and probably with some public service (eg: RNS). Backend applications need a type of authentication that confirms the users are in control of their wallet (thus, their private keys) at the time of use (eg: Money on Chain). We call this the web 3.0.

There are web 2.0 applications, where confidence in the authenticity of users relies on services provided by third parties, such as Google Authentication. These applications require that the user log in to their account in a third party service. This third party service shares the user’s private information, giving the application the necessary information to authenticate the user. The information is in control of the third-party, which can use it arbitrarily to gain future access.

Today’s decentralized apps have no way of requiring private user information in a unified way. Nor is there any platform that allows an application to obtain reliable proof that a user was authenticated by a third party service without having to communicate with it.


Design & Architecture

The rLogin design consists of 4 core modules:

  • A back-end authentication library
  • A cloud storage service where users can store their credentials
  • A standard interface for Verifiable Credentials enabling data portability
  • A client library combining authentication against back-end using user’s wallet and store credentials

Read more



layout: rsk title: rLogin Libraries description: ‘multiple libraries that enable seamless integration to rLogin protocols’ tags: rlogin, libraries, architecture, rif, identity, vault, marketplace, auth, rif-data-vault, rns, ui —

The implementation of the architecture defined above consists of multiple libraries that enable seamless integration to rLogin protocols:


dApps with no back-end

use rLogin modal to operate with user's compatible wallets

dApps requesting user's specific info

use rLogin + DID Auth + RIF Data Vault to request specific Verifiable Credentials to the user

rLogin DApp Guide

Build a DApp with rLogin