Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.

ethereum/UniversalLoginSDK

 
 

Repository files navigation

Archival Notice

This repository is archived.

Ethereum Universal Login

Universal Login is a design pattern for storing funds and connecting to Ethereum applications, aiming to simplify new users on-boarding.

This repository is a monorepo including sdk, relayer, smart contracts and example. Each public sub-package is independently published to NPM.

Learn documentation.

Documentation

Documentation is available at universalloginsdk.readthedocs.io

Disclaimer

This is a work in progress. Expect breaking changes. The code has not been audited and therefore can not be considered secure.

Technical concepts

Technically Universal Login utilizes four major concepts:

  • Personal multi-sig wallet - a smart contract used to store personal funds. A user gets his wallet created in a bearly noticeable manner. The user then gets engaged incrementally to add authorization factors and recovery options.
  • Meta-transactions - that give user ability to interact with his wallet from multiple devices easily, without a need to store ether on each of those devices. Meta-transactions, also allow paying for execution with tokens.
  • ENS names - naming your wallet with easy-to-remember human-readable name
  • Universal login - ability to use the wallet as authorization layer to numerous web applications dapps

Structure

Packages maintained with this monorepo are listed below.

  • Contracts - all contracts used in this project
  • Relayer - node.js server application that allows interacting with blockchain without a wallet
  • SDK - a JS library, that helps to communicate with relayer
  • Example - example application written in React
  • OPS - scripts for development and deployment

Contributing

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct and contribution policy.

Before you issue pull request:

  • Make sure all tests and linters pass.
  • Make sure you have test coverage for any new features.

Running linting/tests

You can run lint via:

yarn lint

You can run tests:

yarn test

You can ran full clean:

yarn clean

And you can emulate full CI process by:

yarn clean
yarn
yarn ci

License

Universal Login SDK is released under the MIT License.

About

Archive of deprecated Universal Login SDK

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages

  • JavaScript 82.2%
  • Solidity 12.1%
  • Sass 5.3%
  • Other 0.4%