npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tkey-singularity

v1.2.1

Published

[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) ![npm](https:

Downloads

11

Readme

tKey

lerna code style: prettier npm

tKey is the underlying SDK used to implement Web3Auth Plug n Play. This package can also be used to self host Web3Auth in your own system. tKey stands for Threshold Key, which refers to the management keys & shares generated using threshold cryptography.

The tKey SDK

The tKey SDK manages private keys by generating shares of it using Shamir Secret Sharing. For example, for a 2 out of 3 (2/3) setup, we give the user three shares: ShareA, ShareB, and ShareC.

  • ShareA is stored on the user’s device: Implementation is device and system specific. For example, on mobile devices, the share could be stored in device storage secured via biometrics.
  • ShareB is managed and split across Web3Auth's Auth Network, accessed by an OAuth login provider that a user owns.
  • ShareC is a recovery share: An extra share to be kept by the user, possibly kept on a separate device, downloaded or based on user input with enough entropy (eg. password, security questions, hardware device etc.).

Similar to existing 2FA systems, a user needs to prove ownership of at least 2 out of 3 (2/3) shares, in order to retrieve his private key.

For more information, check out the technical overview. Before integrating you can also check out the example for tKey.

To use the SDK in your application, please refer to our SDK Reference in Web3Auth Documentation

Features

  • Typescript compatible. Includes Type definitions
  • Fully composable API
  • Module support (Include only those modules which you require)
  • Audited

Packages

| Packages | @latest Version | Size | Description | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | | 🐉 tKey Standard Package | | @tkey/default | npm version | minzip | Bundles Core and Modules into one importable package | | 🏠 Core | | @tkey/core | npm version | minzip | Core functionalities for creating a tkey | | 🐕‍🦺 Service Provider | | @tkey-singularity/service-provider-torus | npm version | minzip | @service-provider-base with DirectAuth functionality | | 🗳 Storage Layer | | @tkey-singularity/storage-layer-torus | npm version | minzip | get/set metadata for various shares | | 🔌 Modules | | @tkey/chrome-storage | npm version | minzip | Add/remove a share from chrome extension storage | | @tkey/web-storage | npm version | minzip | Add/remove a share from local and file storage | | @tkey/security-questions | npm version | minzip | Add/remove a security question and password as a share for tkey | | @tkey/share-transfer | npm version | minzip | Transfer share from another device | | @tkey/seed-phrase | npm version | minzip | Store and use seedphrases on metadata | | @tkey/private-keys | npm version | minzip | Store extra private keys on tKey metadata | | @tkey/share-serialization | npm version | minzip | Import/export a share from tKey | | 🐉 Low-Level | | @tkey/common-types | npm version | minzip | Shared TypeScript Types |

Building the SDK Locally

Requirements

  • This package requires a peer dependency of @babel/runtime
  • Node 14+

Installation

npm run bootstrap
npm run pack:lerna

Bundling

Each sub package is distributed in 4 formats

  • esm build dist/<MODULE_NAME>.esm.js in es6 format
  • commonjs build dist/<MODULE_NAME>.cjs.js in es5 format
  • commonjs build dist/<MODULE_NAME>-bundled.cjs.js in es5 format with problematic packages bundled (benfits non-webpack users)
  • umd build dist/<MODULE_NAME>.umd.min.js in es5 format without polyfilling corejs minified

By default, the appropriate format is used for your specified usecase You can use a different format (if you know what you're doing) by referencing the correct file

The cjs build is not polyfilled with core-js. It is upto the user to polyfill based on the browserlist they target

Directly in Browser

CDN's serve the non-core-js polyfilled version by default. You can use a different

jsdeliver

<script src="https://cdn.jsdelivr.net/npm/<MODULE_NAME>"></script>

unpkg

<script src="https://unpkg.com/<MODULE_NAME>"></script>

Tips for NUXT

This is a plugin that works only on the client side. So please register it as a ssr-free plugin.