SIWW
  • Sign-in with Wallet (SIWW)
  • Specifications
    • Abstract
    • Motivation
    • Open source libraries
    • Security considerations
  • Use Cases
    • NodeJS - Backend implementation
      • 1. Setup passport-wallet
      • 2. Connect to SIWW
      • 3. Manage your authentication token
      • 4. Add authentication routes
      • 5. Code the views
      • 6. Full sample app
      • 7. Debugging and Q&A
    • ReactJS - connect to backend
      • 1. Add a login route
      • 2. Redirect the route to your backend
    • JS - Native calls to SIWW libs
      • 1. Initialize SIWW client lib
      • 2. Connect to a Wallet
      • 3. Create a message
      • 4. Send a message
      • 5. React JS App
    • Authenticating as an end-user
      • 1. Have a wallet available
      • 2. Connecting and signing
Powered by GitBook
On this page
  1. Specifications

Open source libraries

PreviousMotivationNextSecurity considerations

Last updated 2 years ago

Most of the code has been released as open source. Since there are several implementations, a quick overview of the architecture is helpful. See the presentation below, and then each module.

To implement an oAuth2 authentication from your backend app into SIWW, you can make use of the relevant passport strategy.

passport-wallet: a simple passport extension to deal with authenticating a user based on information retrieved from a wallet

A full NodeJS sample implementation, making use of the above passport-wallet strategy, is provided as an example.

NodeJS sample app: a complete sample app to demo the connection to SIWW and the complete implementation of an oAuth2 authentication.

A wallet connect library has been provided too. It has a generic implementation, and a specific extension for managing Cardano-based wallet plugins. This library could later evolve to support other wallets on other blockchains.

SIWW wallet connect library: this wallet connection JS library comes with a generic implementation, and a first specific extension to support Cardano wallet browser plugins.

The full wallet connection and authentication/authorization UI/UX is open-sourced too. It is developed as a React App, which is making use of the SIWW wallet connect client library, and is integrating into the SIWW backend.

Authentication React App: connects with the SIWW backend to provide the full oAuth2 authentication.

npm: @incubiq/passport-walletnpm
sign_in_with_wallet/backend_sample at main · incubiq/sign_in_with_walletGitHub
npm: @incubiq/siwwnpm
sign_in_with_wallet/react at main · incubiq/sign_in_with_walletGitHub
Logo
Logo
Logo
Logo