blockin

Contributors Forks Stargazers Issues MIT License


Logo

Blockin

A multi-chain sign-in standard for Web 3.0!
Explore the docs »

View Demo · Report Bug · Request Feature

About The Project

Blockin is a universal, multi-chain sign-in interface for Web 3.0 that supports micro-authorizations!

This README focuses mainly on this codebase. The Blockin Docs and the Blockin Demo provide much more documentation on what Blockin is, how it works, and how to use it.

Scope of the Library

This library supports creating digital authorization assets, such as NFTs, on any blockchain that supports them, as well as generating and verifying sign-in requests in the form of a challenge / response.

Note that the Blockin library does not handle signing the challenges and will never ask for your private key. Challenge signatures should be implemented separately. It only uses public data and cryptographic signatures to verify.

Usage

For using the Blockin library on either a backend or frontend codebase, all you will have to do is run

npm install blockin

Then, you can import via

import { ... } from 'blockin';'

Visit the Blockin Docs for documentation on how to use this library.

An example frontend and backend using Blockin can be found at Blockin Sample Integration Site.

  • The pages folder shows how to use it in the frontend. The api folder shows how to use it via a backend API.

Current Supported Chains

These are the chains that are natively supported by this library.

  • Algorand (AlgoDriver) via the blockin-algo-driver NPM package (Source Code).
    • Uses Purestake API and algosdk npm library

To add support for a new blockchain, please visit the README in the ChainDrivers folder.

We are currently working on adding implementations for more blockchains and also making it more convenient to import/export these templates.

Example Sites Using Blockin

Contributing to the Library

To develop and contribute to this library directly, all you should need to do is npm install.

The library has a few separate parts to it:

  • Smart Contracts: These live in the smart_contracts folder. This is where example smart contracts for the creation of assets and other use case examples can be found.
  • Blockin Library Functions: These live in the src folder (excluding the src/ui folder). This is for all the asset creation and verification functions.
    • If contributing to this part of the library, it is important that you become familiar with the ChainDriver interface and how it used. More information can be found at Blockin Docs.
  • UI Components: These importable UI components can be found in the src/ui folder. This, in theory, should be decoupled from the core library and able to eventually become its own library in the future.
    • View the README in src/ui for more information.

Everything is built using npm run build which creates a build folder in the dist directory. The build command first rolls up the UI components, and then it builds everything else.

Documentation

For more in-depth documentation, visit the Blockin Docs or the Blockin Paper.

Generated using TypeDoc