A multi-chain sign-in standard for Web 3.0!
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
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.
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.
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.
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.
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
.
- 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
- 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.
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.
For more in-depth documentation, visit the Blockin Docs
or the Blockin Paper
.