What Is Self Key (KEY)?

What Is Self Key (KEY)? Complete Guide Review About Self Key.

What Is Self Key (KEY)?

The Self Key Foundation whitepaper was published on September 11th, 2017. The whitepaper outlines the vision of Key Foundation to help develop a decentralized identity ecosystem.  Later in January 2018, a public token sale took place in which the ‘Public Sale Max Cap’ was reached in 11 minutes, raising $22M.

The Self Foundation whitepaper was published on September 11th, 2017. The whitepaper outlines the vision of SelfKey Foundation to help develop a decentralized identity ecosystem. Later in January 2018, a public token sale took place in which the ‘Public Sale Max Cap’ was reached in 11 minutes, raising $22M.

Self Key are currently entering a phase of rapid growth and development, comprising a globally distributed, remote-based workforce. Your mission is to build digital-identity systems that fundamentally change how the world views, approaches, manages and processes identity-based transactions—through verified claims.

Self Key Storage Key Points

Coin BasicInformation
Coin NameSelf Key
Short NameKEY
Circulating Supply5.12B KEY
Total Supply5,999,999,954
Source CodeClick Here To View Source Code
ExplorersClick Here To View Explorers
Twitter PageClick Here To Visit Twitter Group
WhitepaperClick Here To View
Official Project WebsiteClick Here To Visit Project Website

Chrome browser plugin

The Self Key ecosystem is broken down into three main parts. First is the Key Identity Wallet, a desktop Ethereum wallet on Mac OS, Windows, and Linux. Second is the Key Extension, a Chrome browser plugin that allows a user to authenticate with websites using their Decentralized Identifier (DID). Third is the Self Marketplace, where users can register for financial products and services with one click. To enable the Self Extension as an authentication method for your website, a JavaScript library needs to be installed. This displays a “Login With Self” button on your website for users to click. Clicking this button starts the login workflow.

How To Integrate A New Exchange

Integration with crypto exchanges that use KYC-Chain for compliance is far more seamless because there is a default integration built in with Self Key. The configuration for them will usually look like this to the right. Not currently available. Will update API Documentation when tools are ready for non-clients. The purpose here is to prove the user has ownership over a Decentralized Identifier (DID) presented for authentication. To do this, we use a “Challenge-Response” protocol to cryptographically prove ownership via private key.

Challenge-Response Protocol

The wallet creates a signature of the nonce signed with its private key. The wallet replies to your website with the challenge JWT token, signature value and DID authentication key identifier. Your website resolves the DID document and extracts the authentication public key. Than verifies that signature corresponds to the public key and nonce inside the JWT challenge token. The Self Key Identity Wallet uses the “Wallet JWT Token” to perform other requests to your website.

How To Verify Wallet Token On Other Servers

This allows our API to reside in several different services, not necessary to have all endpoints in one place. For this to work, you must initialize your JWT verification logic with a shared secret key between the servers. A better approach would be to use RS256 algorithm, and have your private key be accessible only to the server that hosts the challenge/response endpoint. Afterwards, any other server that needs to verify it can use the public key.

API Reference

The init method should be called when you want to display the LWS button (the most common use case is to do it on page load). The init method can be applied for to setup multiple buttons on the page, an array of container elements or a query selector should be provided for that. The init method can be called only once. If you need to change your setup, you need to call lws.teardown() first, then you can call it again. This method is useful when you want to change the config provided to init. You would call tear down and then init with new config.


For API requests, the Self Key Identity Wallet will send an ‘Origin’ header indicating who initialized the request. For your browser plugin Self Extension, it will rely on the Key Identity Wallet to determine which side initialized the request, and the Origin header will be set to this value. This is done through a cryptographic challenge-response protocol as detailed below.