Skip to content

Connect

Establishing a secure connection between a Client (Dapp) and a server-based Wallet Provider.

Overview

Custodians, Institutional Wallets, and similar are "remote" wallet providers. Unlike client-side (consumer) wallets, they exist in a secured remote environment where transactions are signed and processed.

Characteristics common of remote wallets included:

  • Accessible over HTTP / REST APIs.
  • Transaction initiation, validation, authorization, signing, and broadcasting each as a distinct step.
  • Multiple 1st and 3rd party clients (console app, mobile approval devices, 3rd party services).
  • Multiple users and separation of roles (initiators, quorum approvers, custody cold signers, automated co-signers, etc).
  • Asynchronous communication, with potentially long-running pre-sign transaction lifecycle.
Connect is designed for this scenario.

There are 2 main phases:

  1. Auth - access grant negotiation, for a Client to receive delegated access to a wallet.
  2. Transaction - initiate & monitor transactions, using the granted access.

How it Works

  1. Provider exposes standardized Auth endpoints ("Auth Server").
  2. Provider exposes standardized Transaction endpoints.
  3. Client uses Provider's APIs to request access, receive temporary access rights.
  4. Client uses Provider's APIs to initiate transactions and monitor the status.

Narval provides

  • A Client SDK to abstract the client-side integration.
  • An API Gateway to facilitate service discovery, normalization, and first-line security for providers.
  • Providers can use Gatekeeper to enforce fine-grained DeFi whitelisting rules with ease.