KardiaChain Docs
  • Introduction
  • Technology
    • Consensus
    • Kardia Virtual Machine (KVM)
    • Kardia Smart Contract Markup Language
    • Peer to Peer (P2P)
    • Onchain AI
    • NF3 Chip
  • For Users
    • KardiaChain Proposer Validator Selection Process
    • Staking
      • Validators
      • Delegators
      • Disciplines and Rewards
        • Disciplines
        • Rewards
    • Transaction Fee
    • Wallets
      • MetaMask Compatible
      • KardiaChain Mobile App Wallet
      • [Deprecated] KardiaChain Web Wallet
        • [Deprecated] KardiaChain Wallet Extension
  • For Developers
    • Tutorials
      • Platform
        • Running KardiaChain node
        • Private KardiaChain Network
        • KAI Integration for Exchanges
      • Smart contract development
        • Dev environment
          • Solidity
          • IDE and tools
            • Remix
            • Hardhat
            • Truffle
        • Contract verification
      • KRC20 Tokens
        • Deploying KRC20 Token
        • KRC20 token verification
      • KRC721 Tokens
        • Deploy KRC721 tokens
      • Building DApp
        • Frontend
        • Data indexing service
    • SDK
      • Web3
      • [Deprecated] KardiaChain JS SDK
      • [Deprecated] KardiaChain Golang SDK
    • RPC
      • JSON RPC API
    • KardiaID Service
      • KardiaID Service Design
      • KardiaID Service API
  • Archived Docs
    • Golang SDK
    • Network
    • KVM
    • System requirement
    • Deployment
      • Configuration
      • Local
      • Public testnet
      • Mainnet
    • KSML
    • Staking Overview
      • Delegation period
      • Consensus
      • Delegator
        • What is a delegator ?
        • Choose validator
        • Directive of delegator
        • Risk
      • Proposer selection procedure
      • Staking rewards and distributions
        • Block reward distributed
        • Fee distributed
      • Slashing and Jail
      • Rewards mechanism
      • Validator
        • What is a validator ?
        • The different states a validator
        • The responsibility of validator
        • The incentive run a validator
        • To become validator
    • KardiaChain Metamask (extension) Wallet
Powered by GitBook
On this page
  • Get request token
  • Refresh token
  • Get user data
  • Register
  • Introspec token
  • My wallet
  • Send transaction
  • Password Reset
  • Password Reset Confirm

Was this helpful?

  1. For Developers
  2. KardiaID Service

KardiaID Service API

These are APIs that are used for the KardiaID Service (KAIBase).

Get request token

User requests access-token using username and password to KardiaID Service, and KardiaID Service return access-token information

Method: POST

Endpoint: /oauth2/token/

Headers: None

Body:

Field

Type

Description

client_id

string

Client ID received from KardiaID Service

client_secret

string

Client secret received from KardiaID Service

grant_type

string

Credential grant type. For this phase, should be set to password

username

string

username

password

string

password

Sample response

{
	"access_token": "7ct9AUUCOnjdj577Iy2Ziu6pjWwLfl",
	"expires_in": 36000,
	"token_type": "Bearer",
	"scope": "read write",
	"refresh_token": "vUzXEA1WTvL7eAf9MAGfzFgXqyX6Gc"
}

Refresh token

User needs to refresh access-token and KardiaID Service return with new fresh access-token

Method: POST

Endpoint: /oauth2/token/

Headers: None

Body:

Field

Type

Description

client_id

string

Client ID received from KardiaID Service

client_secret

string

Client secret received from KardiaID Service

grant_type

string

Credential grant type. To refresh token, set this field to refresh_token

refresh_token

string

User’s refresh token received from API Get request token

Sample response

{
	"access_token": "Eo4GmFh45V3Yk6AcChVrJtOU08AfpQ",
	"expires_in": 36000,
	"token_type": "Bearer",
	"scope": "read write",
	"refresh_token": "tcJLrF0alvLejLdoh9cCLSVAvlDg3a"
}

Get user data

Retrieving user’s information

Method: GET

Endpoint: /user/me/

Headers:

Field

Type

Description

Authorization

String (basic authentication)

Value should be Bearer <TOKEN>

Body: None

Sample response

{
	"username": "your_username",
	"email": "your_email@gmail.com",
	"first_name": "",
	"last_name": "",
	"date_joined": "2020-09-28T06:00:23.745789Z",
	"last_login": "2020-09-28T06:00:37.622188Z",
	"wallet": {
		"balance": 0.0,
		"wallet_address": "0xc7849145419ee7d0f600Ae95A1C630FFB5287AFB"
	}
}

Register

User enters information during the registration process

Method: POST

Endpoint: /user/register/

Headers: None

Body:

Field

Type

Description

username

string

username

email

string

User’s email

password

string

User’s password

first_name

string

User’s first name

last_name

string

User’s last name

Sample response

{
	"success":  [
		"Registration successful"
	]
}

Introspec token

Checks the validity of the access token, gets back user information and expiration date.

Method: GET

Endpoint: /oauth2/introspec/

Headers: None

Param:

Field

Type

Description

token

string

Access token to intro-spec

Sample response

{
	"active":  true,
	"scope":  "read write",
	"exp":  1601476131,
	"client_id":  "lJmS5wt6L0m9cU9Fd2zo37VOWg7dTf0YAiDWbCSS",
	"username":  "admin"
}

My wallet

Return mainnet wallet address.

Method: GET

Endpoint: /user/my-wallet

Headers:

Field

Type

Description

Authorization

String (basic authentication)

Value should be Bearer <TOKEN>

Body: None

Response:

Field

Type

Description

Wallet_address

Address string

Wallet address on mainnet

Balance

Balance in string

Wallet balance in small unit HYDRO (KAI * 10^18)

Balance_display

KAI balance in float point

KAI balance for easier display

Nonce

Account nonce in integer

Account nonce to send transactions

Sample response

{
  "success": 
  [{
    “wallet_address”: "0xA158A517C587fF706B0c639388B1722b78538FDE", 
    “balance”: "720308601624999676960",
    “balance_display”: 720.3086016249997,
    “Nonce”: 11
  }]
}

Send transaction

Send transaction to Kardia Mainnet, the endpoint requests Trusted Client Authentication. Transaction is signed with a user private key on KardiaID Service and pushed to Kardia mainnet.

Raw_tx contains fields of Kardia mainnet transactions, in JSON format.

Method: POST

Endpoint: /user/send-transaction

Headers:

Field

Type

Description

Authorization

String (basic authentication)

Value should be Bearer <TOKEN>

Sample request:

raw_tx = {
 "to": "0x772b965f2466A23370dB463d4E4fb25d84f1d72F",
 "value": 100000000000,
 "gas": 29000,
 "gasPrice": 1000000,
 "nonce": 12
}

Response:

Response contains the transaction hash if success or error message.

Sample response:

{
  "success": ["0xd5cf583b8d0fa47d8b320b14f63caf759f0cd1b6c3a297e0db837b9435f8a550"]
}

Password Reset

KardiaID Service sends an email password reset to user which contains password reset token.

Method: POST

Endpoint: /user/resetpassword/

Body

Field

Type

Description

email

string

User email

Password Reset Confirm

Reset user password to new provided password and emailed token.

Method: POST

Endpoint: /user/resetpassword/confirm/

Body:

Field

String

Description

password

string

new password

token

string

provided token from email

PreviousKardiaID Service DesignNextArchived Docs

Last updated 3 years ago

Was this helpful?