This is a public repository for Identity Connect, that will contain docs, examples and source code for the SDKs.
For SDK specific docs, please refer to the following links:
Separately, see dashboard staging here
This monorepo uses turborepo
.
node.js
yarn install
from the root directoryUnder the /examples
folder you can find an example wallet and an example dapp, to use as reference
for adopting the IC SDK in your application.
eslint-config
: eslint
configurationstsconfig
: tsconfig.json
s used throughout the monorepoIn Web2, platforms like Google and Steam help connect users and their identities to their applications. Web3 traditionally has avoided identity management services and empowers users to own their identity via decentralized identity platforms such as self-custodial wallets and other identity management platforms. As a user interacts with an application on one device, their identity may be managed on another. This inherently creates a challenge for enabling seamless identity integration within an application. To address this, we created ****Identity Connect**, to be used as a platform, and protocol for coordinating across identity services and applications.
Identity Connect has the following properties:
The main difference between Identity Connect and Aptos Wallet Adapter is that IC allows cross-platform transaction signing (i.e. play a game on desktop app, but sign on mobile app), while wallet adapter requires same environment to enable signing. However, IC is now also integrated with Wallet Adapter, which helps to circumvent this issue. In other words, you can access IC (and it's associated advantages through Wallet Adapter.
Identity Connect is a stateful service allowing asynchronous communication between dApps (desktop, mobile, browser) and wallets (custody, mobile, chrome extensions). Having a permanent stateful server as the relay between dApp and wallet allows Identity Connect to avoid any pitfalls of dropping requests and allows us to extend this to not only self-custody wallets but even identity brokering (’login with IC’), MPC, and custody services in the future.
Identity Connect V1 allows two ways to create a pairing between a dApp and a Wallet:
The user flow for connecting and sending transactions from a dApp will look like this:
%% Flowchart
graph TD
Dapp1[Dapp] <-->|Encrypted| IC(IC)
Dapp2[Dapp] <-->|Encrypted| IC(IC)
IC <--> |Encrypted|User{User}
User{User} <--> Wallet1[Wallet]
User{User} <--> Wallet2[Wallet]
Wallet1[Wallet] <--> Account1[Account]
Wallet1[Wallet] <--> Account2[Account]
Wallet2[Wallet] <--> Account1[Account]
To read more about technical design, go to Technical Design