KardiaID Service Design
KAIBase Design

Summary

The KardiaID Service serves as an interface between user applications and KardiaChain Mainnet. It provides authorization service using secure access-token to interact with KardiaChain Mainnet.

OAuth authorization service

KardiaID Service implements authorization protocol similar to OAuth2, providing client applications with secure delegated access. Users use the client app to login to KardiaID Service with username & password and obtain access-token. Client app then uses access-token to interact with Kardia blockchain.
Usage Flow

Kardia blockchain gateway

Automatically creates new KardiaChain wallet
KardiaID Service generates new Kardia Mainnet wallet for new users during the OAuth2 registration.
Wallet private keys are kept on KardiaID Service, the client uses only access-token to interact with the Kardia blockchain through KardiaID Service API.
Transaction sign & send
Blockchain nodes accept only fully-signed & encoded transactions.
Client applications can just create simple transaction data in JSON and send it to KardiaID Service API.
KardiaID Service signs the transaction with the user's private key and forward to Kardia Mainnet.
Life of a Transaction

Advanced wallet service

KardiaID Service can optionally provide advanced management for the user wallet.
Seed coin deposit
New blockchain wallet has zero coin balance, is unable to pay network fees and thus cannot send any transactions until receiving at least a small amount from another wallet. This is a common problem for users created inside client applications.
As the gateway, KardiaID Service can provide seed coin deposit service for new users. Application developers can arrange through KardiaID Service to give every new user a small KAI amount, thus allowing each user to interact with the blockchain without delay.
Example from KAI Membership phone app:
  1. 1.
    A user registers a new account on the KAI Membership phone app.
  2. 2.
    The user Mainnet wallet is generated during registration.
  3. 3.
    KardiaID Service automatically sends the user wallet seed fund of 0.01 KAI.
  4. 4.
    The user wants to play a game that utilizes Smart Contract on the KardiaChain Mainnet.
  5. 5.
    As the condition is met, the user account can now interact with Smart Contract by sending transactions with enough network fees.
  6. 6.
    The user can instantly play the game without any delay.
Last modified 5mo ago