Skip to content

Linking Guide

A link will authorize a remote client to access the service. This is done by generating a requestId and waiting for a device to attest a Passkey.

A link event can only be acknowledged by the service when the remote client has successfully authenticated. The linking processs is backed by a Deep Link and a QR Code. The SignalClient is responsible for generating the deep link and presenting to another client.

The remote client will handle the Deep Link by submitting a Passkey with the Liquid Extension to the origin service. Once the service has validated the linking request, the client will be able to communicate with the service and establish a peer-to-peer connection.

Who is this for?

  • dApps/Wallets that want to integrate deeply into Liquid Auth.

Liquid uses a custom deep link to handle linking between devices.

The format is as follows:

liquid://<ORIGIN>/?requestId=<UUID_OF_REQUEST>

This link will be used to generate a QR code for the user to scan with their device.

Origin

The origin is the server that will handle the linking request.

Request ID

The request ID is a UUID generated by a client to identify the linking request.

QR Code

We recommend displaying the deep link as a QR code for the user to scan with their device. Try it out by downloading the demo Android application and scanning the QRCode below.

Loading

Diagram

This diagram illustrates the linking process between a website and a wallet.

Offer ClientServerAnswer ClientOffer ClientServerAnswer ClientSubscribe to 'wss:link'Display QR Connect Request IDScan QR CodeGet Challenge/OptionsRegister/AuthenticateValidate SignaturesHTTPOnly SessionOk Response + HTTPOnly SessionEmit to `wss:link` client