Core CLI

Commands

help

Displays a summary of all available CLI commands of Klayr Core.

Klayr blockchain application platform

VERSION
  klayr-core/4.1.4 darwin-arm64 node-v18.20.2

USAGE
  $ klayr-core [COMMAND]

TOPICS
  block          Commands relating to Klayr Core blocks.
  blockchain     Commands relating to Klayr Core blockchain data.
  config         Commands relating to Klayr Core node configuration.
  endpoint       Invokes the provided endpoint.
  generator      Disable block generation for given validator address.
  genesis-block  Creates genesis block file.
  keys           Return keys corresponding to the given passphrase.
  system         Commands relating to Klayr Core node.
  passphrase     Commands relating to Klayr Core passphrases.
  sdk            Commands relating to Klayr SDK development.
  transaction    Commands relating to Klayr Core transactions.

COMMANDS
  autocomplete  Display autocomplete installation instructions
  console       Klayr interactive REPL session to run commands.
  hash-onion    Create hash onions to be used by the forger.
  help          Display help for klayr-core.
  start         Start Blockchain Node.
  version

autocomplete

Displays autocomplete installation instructions.

USAGE
  $ klayr-core autocomplete [SHELL]

ARGUMENTS
  SHELL  shell type

OPTIONS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

EXAMPLES
  $ klayr-core autocomplete
  $ klayr-core autocomplete bash
  $ klayr-core autocomplete zsh
  $ klayr-core autocomplete --refresh-cache
Example
klayr-core autocomplete
Response
Building the autocomplete cache... done

Setup Instructions for KLAYR-CORE CLI Autocomplete ---

1) Add the autocomplete env var to your zsh profile and source it
$ printf "eval $(klayr-core autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc

NOTE: After sourcing, you can run `$ compaudit -D` to ensure no permissions conflicts are present

2) Test it out, e.g.:
$ klayr-core <TAB>                 # Command completion
$ klayr-core command --<TAB>       # Flag completion

Enjoy!

console

Provides an interactive Javascript REPL session to run KLAYR commands.

USAGE
  $ klayr-core console

OPTIONS
  --api-ipc=api-ipc  Enable api-client with IPC communication.
  --api-ws=api-ws    Enable api-client with Websocket communication.

EXAMPLES
  console
  console --api-ws=ws://localhost:8080
  console --api-ipc=/path/to/server
Example
klayr-core console
Response
Entering Klayr REPL: type `Ctrl+C` or `.exit` to exit
klayr-core >

hash-onion

Creates hash onions to be used by a generator.

USAGE
  $ klayr-core hash-onion

OPTIONS
  -c, --count=count        [default: 1000000] Total number of hashes to produce
  -d, --distance=distance  [default: 1000] Distance between each hash
  -o, --output=output      Output file path
  --pretty                 Prints JSON in pretty format rather than condensed.

EXAMPLES
  hash-onion --count=1000000 --distance=2000 --pretty
  hash-onion --count=1000000 --distance=2000 --output ~/my_onion.json
Example
klayr-core hash-onion --count=10 --distance=2 --pretty
Response
{
  "count": 10,
  "distance": 2,
  "hashes": [
    "e27512a5720052cd61308bef373e9312",
    "3cef453ee632c86651e54ce79614c05e",
    "7ceaefaa0c13111ca93e811a78b26c4e",
    "625b905e51992a1b5a018bca8e37cf4a",
    "6652faaab3427351a8a6c4ac26a19968",
    "eafe02868d94dcedbcf8630776311454"
  ]
}

start

Starts the blockchain node.

USAGE
  $ klayr-core start

OPTIONS
  -c, --config=config                                  File path to a custom config. Environment variable
                                                       "KLAYR_CONFIG_FILE" can also be used.

  -d, --data-path=data-path                            Directory path to specify where node data is stored. Environment
                                                       variable "KLAYR_DATA_PATH" can also be used.

  -l, --log=trace|debug|info|warn|error|fatal          Log level. Environment variable "KLAYR_LOG_LEVEL" can also be
                                                       used.

  -n, --network=network                                [default: mainnet] Default network config to use. Environment
                                                       variable "KLAYR_NETWORK" can also be used.

  -p, --port=port                                      Open port for the peer to peer incoming connections. Environment
                                                       variable "KLAYR_PORT" can also be used.

  -u, --genesis-block-url=genesis-block-url            The URL to download the genesis block. Environment variable
                                                       "KLAYR_GENESIS_BLOCK_URL" can also be used. Kindly ensure that the
                                                       provided URL downloads the genesis block 'blob' in the tarball
                                                       format.

  --api-host=api-host                                  Host to be used for api-client. Environment variable
                                                       "KLAYR_API_HOST" can also be used.

  --api-http                                           Enable HTTP communication for api-client. Environment variable
                                                       "KLAYR_API_HTTP" can also be used.

  --api-ipc                                            Enable IPC communication. This will load plugins as a child
                                                       process and communicate over IPC. Environment variable
                                                       "KLAYR_API_IPC" can also be used.

  --api-port=api-port                                  Port to be used for api-client. Environment variable
                                                       "KLAYR_API_PORT" can also be used.

  --api-ws                                             Enable websocket communication for api-client. Environment
                                                       variable "KLAYR_API_WS" can also be used.

  --dashboard-plugin-port=dashboard-plugin-port        Port to be used for Dashboard Plugin. Environment variable
                                                       "KLAYR_DASHBOARD_PLUGIN_PORT" can also be used.

  --enable-chain-connector-plugin                      Enable Chain Connector Plugin. Environment variable
                                                       "KLAYR_ENABLE_CHAIN_CONNECTOR_PLUGIN" can also be used.

  --enable-dashboard-plugin                            Enable Dashboard Plugin. Environment variable
                                                       "KLAYR_ENABLE_DASHBOARD_PLUGIN" can also be used.

  --enable-faucet-plugin                               Enable Faucet Plugin. Environment variable
                                                       "KLAYR_ENABLE_FAUCET_PLUGIN" can also be used.

  --enable-forger-plugin                               Enable Forger Plugin. Environment variable
                                                       "KLAYR_ENABLE_FORGER_PLUGIN" can also be used.

  --enable-monitor-plugin                              Enable Monitor Plugin. Environment variable
                                                       "KLAYR_ENABLE_MONITOR_PLUGIN" can also be used.

  --enable-report-misbehavior-plugin                   Enable ReportMisbehavior Plugin. Environment variable
                                                       "KLAYR_ENABLE_REPORT_MISBEHAVIOR_PLUGIN" can also be used.

  --faucet-plugin-port=faucet-plugin-port              Port to be used for Faucet Plugin. Environment variable
                                                       "KLAYR_FAUCET_PLUGIN_PORT" can also be used.

  --monitor-plugin-port=monitor-plugin-port            Port to be used for Monitor Plugin. Environment variable
                                                       "KLAYR_MONITOR_PLUGIN_PORT" can also be used.

  --monitor-plugin-whitelist=monitor-plugin-whitelist  List of IPs in comma separated value to allow the connection.
                                                       Environment variable "KLAYR_MONITOR_PLUGIN_WHITELIST" can also be
                                                       used.

  --overwrite-config                                   Overwrite network configs if they exist already

  --overwrite-genesis-block                            Download and overwrite existing genesis block. Environment
                                                       variable "KLAYR_GENESIS_BLOCK_OVERWRITE" can also be used.

  --seed-peers=seed-peers                              Seed peers to initially connect to in format of comma separated
                                                       "ip:port". IP can be DNS name or IPV4 format. Environment
                                                       variable "KLAYR_SEED_PEERS" can also be used.

EXAMPLES
  start
  start --network devnet --data-path /path/to/data-dir --log debug
  start --network devnet --api-ws
  start --network devnet --api-ws --api-port 8888
  start --network devnet --port 9000
  start --network devnet --port 9002 --seed-peers 127.0.0.1:9001,127.0.0.1:9000
  start --network testnet --overwrite-config
  start --network testnet --config ~/my_custom_config.json
Example
klayr-core start --network devnet --api-ws
Response
Starting Klayr klayr-core at /Users/XYZ/.klayr/klayr-core
Starting the app at /Users/XYZ/.klayr/klayr-core
If you experience any type of error, please open an issue on Klayr GitHub: https://github.com/KlayrHQ/klayr-sdk/issues
Contribution guidelines can be found at Klayr-sdk: https://github.com/KlayrHQ/klayr-sdk/blob/development/docs/CONTRIBUTING.md
...

Topics

block

Commands relating to Klayr Core blocks.

USAGE
  $ klayr-core block

COMMANDS
  block:get  Get block information for a given id or height.

block:get

Gets block information for a given id or height.

USAGE
  $ klayr-core block:get INPUT

ARGUMENTS
  INPUT  Height in number or block id in hex format.

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  block:get e082e79d01016632c451c9df9276e486cb7f460dc793ff5b10d8f71eecec28b4
  block:get 2
Example
klayr-core block:get 2 --pretty
Response
{
  "header": {
    "version": 2,
    "timestamp": 1680868980,
    "height": 2,
    "previousBlockID": "9e442947fda74955dea2e6a490b1158a78655bd5fb6875cd945bdc02841523fd",
    "stateRoot": "2211e781083d5def0da750cf96f75abd3b27d68e944ba01728ddfb4fb18fa5d2",
    "assetRoot": "8fb5ed936653eba7fb8e05fa7ad87a75e10347ca544574326dd11d159bcd015d",
    "eventRoot": "15caa254f64d161c61daede6f2fec75451381a1268b83997ebe86887c81ca2c8",
    "transactionRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "validatorsHash": "8438b6d8c70e18c79a9215f53b6c4677e2f4bab793479a35c03d8f514f3389b3",
    "aggregateCommit": {
      "height": 0,
      "aggregationBits": "",
      "certificateSignature": ""
    },
    "generatorAddress": "klyet9bd2coqrbbojp2fnj744atmuk6ys6yumu384",
    "maxHeightPrevoted": 0,
    "maxHeightGenerated": 0,
    "impliesMaxPrevotes": true,
    "signature": "dd76712757a43d1324e2f3e40adea505f8a48a30760301d379321ff483fb2ff136f83877b6a4c12bfd23dd374461be1bc8212ccb07ba3fc4dbbb6f58babc6004",
    "id": "f74a3057308ef04fbececeda16b2cb65226f076bb8d2bf026e3982b860758b6d"
  },
  "transactions": [],
  "assets": [
    {
      "module": "random",
      "data": {
        "seedReveal": "efb5d9ada0e8e85cb4f97efa61a1e5ee"
      }
    }
  ]
}

blockchain

Commands relating to Klayr Core blockchain data.

USAGE
  $ klayr-core blockchain

COMMANDS
  blockchain:download  Download snapshot from <URL>.
  blockchain:export    Export to <FILE>.
  blockchain:hash      Generate SHA256 hash from <PATH>.
  blockchain:import    Import from <FILE>.
  blockchain:reset     Reset the blockchain data.

blockchain:download

Download the snapshot from the given <URL>.

USAGE
  $ klayr-core blockchain:download

OPTIONS
  -n, --network=network  [default: mainnet] Default network config to use. Environment variable "KLAYR_NETWORK" can also
                         be used.

  -o, --output=output    Directory path to specify where snapshot is downloaded. By default outputs the files to current
                         working directory.

  -u, --url=url          The url to the snapshot.

EXAMPLES
  download
  download --network betanet
  download --url https://snapshots.klayr.xyz/mainnet/blockchain.db.tar.gz --output ./downloads
Example
klayr-core blockchain:download
Response
Downloading snapshot from https://snapshots.klayr.xyz/mainnet/blockchain.db.tar.gz to /Users/XYZ
Downloaded to path: /Users/XYZ

blockchain:export

Exports the blockchain’s data to a file.

USAGE
  $ klayr-core blockchain:export

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -o, --output=output        The output directory. Default will set to current working directory.

EXAMPLES
  blockchain:export
  blockchain:export --data-path ./data --output ./my/path/
Example
klayr-core blockchain:export
Response
Exporting blockchain:
   /Users/XYZ/.klayr/klayr-core/data
Export completed:
   /Users/XYZ/blockchain.tar.gz

blockchain:hash

Generates SHA256 hash from the blockchain's data.

USAGE
  $ klayr-core blockchain:hash

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

EXAMPLES
  blockchain:hash
  blockchain:hash --data-path ./data
Example
klayr-core blockchain:hash
Response
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

blockchain:import

Imports the blockchain’s data from a file.

USAGE
  $ klayr-core blockchain:import FILEPATH

ARGUMENTS
  FILEPATH  Path to the gzipped blockchain data.

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -f, --force                Delete and overwrite existing blockchain data

EXAMPLES
  blockchain:import ./path/to/blockchain.tar.gz
  blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/
  blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/ --force
Example
klayr-core blockchain:import /Users/XYZ/blockchain.tar.gz --force
Response
Importing blockchain from /Users/XYZ/blockchain.tar.gz
Import completed.
   /Users/XYZ/.klayr/klayr-core

blockchain:reset

Resets the blockchain’s data.

USAGE
  $ klayr-core blockchain:reset

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -y, --yes                  Skip confirmation prompt.

EXAMPLES
  blockchain:reset
  blockchain:reset --data-path ./klayr
  blockchain:reset --yes
Example
klayr-core blockchain:reset
Response
? Are you sure you want to reset the db? yes
Blockchain data has been reset.

config

Commands relating to the configuration of the blockchain client.

USAGE
 $ klayr-core config

COMMANDS
  config:create  Creates network configuration file.
  config:show    Show application config.

config:create

Creates a configuration file for the blockchain application.

USAGE
  $ klayr-core config:create

OPTIONS
  -i, --chain-id=chain-id  (required) ChainID in hex format. For example, Klayr mainnet mainchain is 00000000
  -l, --label=label        [default: beta-sdk-app] App Label

  -o, --output=output      [default: /Users/sameer/Documents/Klayr/github/klayr-core] Directory where the config file is
                           saved

EXAMPLES
  config:create --output mydir
  config:create --output mydir --label beta-sdk-app
  config:create --output mydir --label beta-sdk-app --community-identifier sdk
Example
klayr-core config:create --chain-id 04000000

config:show

Shows the application’s config.

USAGE
  $ klayr-core config:show

OPTIONS
  -c, --config=config        File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can also be used.

  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  config:show
  config:show --pretty
  config:show --config ./custom-config.json --data-path ./data
Example
klayr-core config:show --pretty
Response
{
  "system": {
    "dataPath": "/Users/XYZ/.klayr/klayr-core",
    "logLevel": "info",
    "keepEventsForHeights": -1
  },
  "rpc": {
    "modes": [
      "ipc",
      "ws",
      "http"
    ],
    "port": 7887,
    "host": "0.0.0.0"
  },
  "genesis": {
    "block": {
      "fromFile": "./config/genesis_block.blob"
    },
    "blockTime": 7,
    "chainID": "04000000",
    "maxTransactionsSize": 15360
  },
  "generator": {
    "keys": {
      "fromFile": "./config/dev-validators.json"
    }
  },
  "network": {
    "version": "1.0",
    "seedPeers": [],
    "port": 7667
  },
  "transactionPool": {
    "maxTransactions": 4096,
    "maxTransactionsPerAccount": 64,
    "transactionExpiryTime": 10800000,
    "minEntranceFeePriority": "0",
    "minReplacementFeeDifference": "10"
  },
  "modules": {
    "dynamicReward": {
      "tokenID": "0400000000000000",
      "offset": 360,
      "distance": 1000,
      "brackets": [
        "500000000",
        "400000000",
        "300000000",
        "200000000",
        "100000000"
      ]
    },
    "fee": {
      "feeTokenID": "0400000000000000"
    },
    "pos": {
      "useInvalidBKLYey": false
    },
    "token": {
      "feeTokenID": "0400000000000000"
    }
  },
  "plugins": {
  }
}

endpoint

Commands relating to invoking and listing the endpoints.

USAGE
  $ klayr-core endpoint

COMMANDS
  endpoint:invoke  Invokes the provided endpoint.
  endpoint:list    Lists registered endpoints.

endpoint:invoke

Invokes the provided endpoint.

USAGE
  $ klayr-core endpoint:invoke ENDPOINT [PARAMS]

ARGUMENTS
  ENDPOINT  Endpoint to invoke
  PARAMS    Endpoint parameters (Optional)

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -f, --file=file            Input file.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  endpoint:invoke {endpoint} {parameters}
  endpoint:invoke --data-path --file
  endpoint:invoke generator_getAllKeys
  endpoint:invoke consensus_getBFTParameters '{"height": 2}' -d ~/.klayr/pos-mainchain --pretty
  endpoint:invoke consensus_getBFTParameters -f ./input.json
Example
klayr-core endpoint:invoke system_getNodeInfo --pretty
Response
{
  "version": "4.1.4",
  "networkVersion": "1.0",
  "chainID": "04000000",
  "lastBlockID": "dd207c37a76c453e4b718f2bf238b84186f6e673679915b197ce1fdf94d3c180",
  "height": 49,
  "finalizedHeight": 0,
  "syncing": false,
  "unconfirmedTransactions": 0,
  "genesisHeight": 0,
  "genesis": {
    "block": {
      "fromFile": "./config/genesis_block.blob"
    },
    "blockTime": 7,
    "maxTransactionsSize": 15360,
    "chainID": "04000000"
  },
  "network": {
    "version": "1.0",
    "port": 7667,
    "seedPeers": []
  }
}

endpoint:list

Returns the list of all the module endpoints

USAGE
  $ klayr-core endpoint:list [ENDPOINT]

ARGUMENTS
  ENDPOINT  Endpoint name (Optional)

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -i, --info                 Prints additional info; Request and Response objects.

  -m, --module=module        Parent module.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  endpoint:list
  endpoint:list {endpoint} -m {module}
  endpoint:list {endpoint} -m {module} -i
  endpoint:list -m validator
  endopint:list getBalance
  endpoint:list get -m token
  endpoint:list getBalances -m token -i --pretty
  endpoint:list getBalances -m token -d ~/.klayr/pos-mainchain
Example
klayr-core endpoint:list --pretty
Response
[
  "auth_getAuthAccount",
  "auth_isValidNonce",
  "auth_isValidSignature",
  "auth_getMultiSigRegMsgSchema",
  "auth_sortMultisignatureGroup",
  "auth_getMultiSigRegMsgTag",
  "dynamicReward_getDefaultRewardAtHeight",
  "dynamicReward_getAnnualInflation",
  "dynamicReward_getRewardTokenID",
  "fee_getMinFeePerByte",
  "fee_getFeeTokenID",
  "interoperability_getChainAccount",
  "interoperability_getAllChainAccounts",
  "interoperability_getChannel",
  "interoperability_getOwnChainAccount",
  "interoperability_getTerminatedStateAccount",
  "interoperability_getTerminatedOutboxAccount",
  "interoperability_getRegistrationFee",
  "interoperability_getMinimumMessageFee",
  "interoperability_getChainValidators",
  "interoperability_isChainIDAvailable",
  "interoperability_isChainNameAvailable",
  "legacy_getLegacyAccount",
  "pos_getAllValidators",
  "pos_getValidator",
  "pos_getStaker",
  "pos_getConstants",
  "pos_getPoSTokenID",
  "pos_getClaimableRewards",
  "pos_getLockedReward",
  "pos_getLockedStakedAmount",
  "pos_getValidatorsByStake",
  "pos_getPendingUnlocks",
  "pos_getRegistrationFee",
  "random_isSeedRevealValid",
  "random_setHashOnion",
  "random_getHashOnionSeeds",
  "random_hasHashOnion",
  "random_getHashOnionUsage",
  "token_getBalance",
  "token_getBalances",
  "token_getTotalSupply",
  "token_getSupportedTokens",
  "token_isSupported",
  "token_getEscrowedAmounts",
  "token_getInitializationFees",
  "token_hasUserAccount",
  "token_hasEscrowAccount",
  "validators_validateBKLYey",
  "validators_getValidator"
]

generator

Commands relating to the block generation and generator-info of a blockchain.

USAGE
  $ klayr-core generator

COMMANDS
  generator:disable  Disable block generation for given validator address.
  generator:enable   Enable block generation for given validator address.
  generator:export   Export to <FILE>.
  generator:import   Import from <FILE>.
  generator:status   Get forging information for the locally running node.

generator:disable

Disables block generation for a given generator’s address.

USAGE
  $ klayr-core generator:disable ADDRESS

ARGUMENTS
  ADDRESS  Address of an account in a klayr32 format.

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -w, --password=password    Specifies a source for your secret password. Command will prompt you for input if this
                             option is not set.
                             Examples:
                             - --password=pass:password123 (should only be used where security is not important)

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz
  generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data
  generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data --password your_password
Example
$ klayr-core generator:disable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
Response
? Enter password to decrypt the encrypted passphrase:  ********

Disabled block generation for klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3

generator:enable

Enables block generation for a given generator's address.

USAGE
  $ klayr-core generator:enable ADDRESS

ARGUMENTS
  ADDRESS  Address of an account in a klayr32 format.

OPTIONS
  -d, --data-path=data-path                    Directory path to specify where node data is stored. Environment variable
                                               "KLAYR_DATA_PATH" can also be used.

  -w, --password=password                      Specifies a source for your secret password. Command will prompt you for
                                               input if this option is not set.
                                               Examples:
                                               - --password=pass:password123 (should only be used where security is not
                                               important)

  --height=height                              Last generated block height.

  --max-height-generated=max-height-generated  Validator's largest previously generated height.

  --max-height-prevoted=max-height-prevoted    Validator's largest prevoted height for a block.

  --pretty                                     Prints JSON in pretty format rather than condensed.

  --use-status-value                           Use status value from the connected node

EXAMPLES
  generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --use-status-value
  generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
  --max-height-prevoted=10
  generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
  --max-height-prevoted=10 --data-path ./data
  generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
  --max-height-prevoted=10 --data-path ./data --password your_password
Example
klayr-core generator:enable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 --use-status-value
Response
 Current block generation status for validator account klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 is:
{"height":14814092,"maxHeightPrevoted":14814017,"maxHeightGenerated":14814025}
? Do you want to use the above values to enable block generation? yes
? Enter password to decrypt the encrypted passphrase:  ********

Updated block generation status:
{"address":"klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3","enabled":true}

generator:export

Exports generator’s data to a file.

USAGE
  $ klayr-core generator:export

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -o, --output=output        The output directory. Default will set to current working directory.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  generator:export
  generator:export --output /mypath/generator_info.json
  generator:export --output /mypath/generator_info.json --data-path ./data
Example
klayr-core generator:export --output /Users/XYZ/genInfo.json
Response
Generator info is exported to /Users/XYZ/genInfo.json

generator:import

Imports generator’s data from a file.

USAGE
  $ klayr-core generator:import

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -f, --file-path=file-path  (required) Path of the file to import from

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  generator:import --file-path ./my/path/genInfo.json
  generator:import --file-path ./my/path/genInfo.json --data-path ./data
Example
klayr-core generator:import --file-path /Users/XYZ/genInfo.json

generator:status

Gets block generation information for the locally running node.

USAGE
  $ klayr-core generator:status

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  generator:status
  generator:status --data-path ./sample --pretty
Example
klayr-core generator:status --pretty
Response
{
  "info": {
    "status":
    [{
        "address": "klyzpvesvp7p9odszcp3s4dffnj4ozqz7b79tonqp",
        "height": 574,
        "maxHeightPrevoted": 487,
        "maxHeightGenerated": 459,
        "enabled": true
      }
  ]}
}

genesis-block

Commands relating to the genesis block.

USAGE
  $ klayr-core genesis-block

COMMANDS
  genesis-block:create    Creates genesis block file.
  genesis-block:download  Download genesis block.

genesis-block:create

Creates a genesis block file and the corresponding generator's configuration data and accounts information.

USAGE
  $ klayr-core genesis-block:create

OPTIONS
  -c, --config=config                        File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can
                                             also be used.

  -f, --assets-file=assets-file              (required) Path to file which contains genesis block asset in JSON format

  -h, --height=height                        Genesis block height

  -n, --network=network                      [default: default] Default network config to use. Environment variable
                                             "KLAYR_NETWORK" can also be used.

  -o, --output=output                        [default: config] Output folder path of the generated genesis block

  -p, --previous-block-id=previous-block-id  Previous block id

  -t, --timestamp=timestamp                  Timestamp

  --export-json                              Export genesis block as JSON format along with blob

EXAMPLES
  genesis-block:create --output mydir
  genesis-block:create --output mydir --assets-file ./assets.json
  genesis-block:create --output mydir --assets-file ./assets.json --height 2 --timestamp 1592924699 --previous-block-id
  085d7c9b7bddc8052be9eefe185f407682a495f1b4498677df1480026b74f2e9
Example
klayr-core genesis-block:create --assets-file genesis_assets.json --output ./devnet
Response
2023-04-07T16:47:08.874Z INFO XYZ.local application 55996 Registered and initialized fee module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized auth module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered auth module has command registerMultisignature
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized validators module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered and initialized token module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transfer
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transferCrossChain
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized dynamicReward module
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized random module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized pos module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command registerValidator
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command reportMisbehavior
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command unlock
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command updateGeneratorKey
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command stake
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command changeCommission
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command claimRewards
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized interoperability module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command submitMainchainCrossChainUpdate
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command initializeMessageRecovery
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverMessage
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command registerSidechain
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverState
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command terminateSidechainForLiveness
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized legacy module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered legacy module has command reclaimKLY
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered legacy module has command registerKeys
Genesis block files saved at: /Users/XYZ/.nvm/versions/node/v18.19.1/lib/node_modules/klayr-core/config/devnet/devnet

genesis-block:download

Download genesis block.

USAGE
  $ klayr-core genesis-block:download

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -f, --force                Delete and overwrite existing genesis block.

  -n, --network=network      Default network config to use. Environment variable "KLAYR_NETWORK" can also be used.

  -u, --url=url              The url to download the genesis block from.

EXAMPLES
  genesis-block:download --network mainnet -f
  genesis-block:download --network --data-path ./klayr/
  genesis-block:download --url http://mydomain.com/genesis_block.blob.tar.gz --data-path ./klayr/ --force
Example
klayr-core genesis-block:download --network mainnet -f
Response
Downloading genesis block from https://downloads.klayr.xyz/klayr/mainnet/genesis_block.blob.tar.gz
Downloaded to path: /Users/XYZ/.klayr/klayr-core/config/mainnet/genesis_block.blob.tar.gz.
Verified checksum: a69fe85969ce8727b6490a07ced612bbc36a5c377a54f2b6fab58c058d1663b5.
Extracting genesis block file.
Removing downloaded genesis block
Download completed.
   /Users/XYZ/.klayr/klayr-core/config/mainnet/genesis_block.blob

keys

Return keys corresponding to the given passphrase.

USAGE
  $ klayr-core keys

COMMANDS
  keys:create   Return keys corresponding to the given passphrase.
  keys:encrypt  Encrypt keys from a file and overwrite the file
  keys:export   Export to <FILE>.
  keys:import   Import from <FILE>.

keys:create

Return keys corresponding to the given passphrase.

USAGE
  $ klayr-core keys:create

OPTIONS
  -c, --count=count            [default: 1] Number of keys to create
  -f, --offset=offset          [default: 0] Offset for the key derivation path
  -i, --chainid=chainid        [default: 0] Chain id
  -n, --no-encrypt             No encrypted message object to be created
  -o, --output=output          The output directory. Default will set to current working directory.

  -p, --passphrase=passphrase  Specifies a source for your secret passphrase. Command will prompt you for input if this
                               option is not set.
                               Examples:
                               - --passphrase='my secret passphrase' (should only be used where security is not
                               important)

  -w, --password=password      Specifies a source for your secret password. Command will prompt you for input if this
                               option is not set.
                               Examples:
                               - --password=pass:password123 (should only be used where security is not important)

  --add-legacy                 Add legacy key derivation path to the result

EXAMPLES
  keys:create
  keys:create --passphrase your-passphrase
  keys:create --passphrase your-passphrase --no-encrypt
  keys:create --passphrase your-passphrase --password your-password
  keys:create --passphrase your-passphrase --password your-password --count 2
  keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1
  keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1 --chainid 1
  keys:create --passphrase your-passphrase --password your-password --count 2 --offset 1 --chainid 1 --output
  /mypath/keys.json
Example
klayr-core keys:create
Response
? Please enter passphrase:  [hidden]
? Please re-enter passphrase:  [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{
  "keys": [
    {
      "address": "klyguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad",
      "keyPath": "m/44'/134'/0'",
      "publicKey": "3972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
      "privateKey": "e655ee58490c66dee3f6761f3b69fdcb65def01615efcddde09c791d6fc2a5223972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
      "plain": {
        "generatorKeyPath": "m/25519'/134'/0'/0'",
        "generatorKey": "7da039d08ca35bc7c7e3583f2544754b9fdd8877edb82da02cbe1fde8ab7c113",
        "generatorPrivateKey": "e35c5fb116704d11309ad9a96b36c8bb20acb1c435bfe44cfef6b6aa2111c1b87da039d08ca35bc7c7e3583f2544754b9fdd8877edb82da02cbe1fde8ab7c113",
        "blsKeyPath": "m/12381/134/0/0",
        "blsKey": "82ecd08a07380c29e656527d339ffe1fe306f0f97cd077335afb3c1c1bdb73918a40f15c410bdc4facca9172088c9262",
        "blsProofOfPossession": "9950069539cf1baec7b7629eb45d618fd052fd15da108a6b8e6018a7ec8d4957b777b858f6e194a336a4a51c0d709409045646f9588b2be49f11563c549a711957337b2589370cabb2d795cb44f68c7507ca84a9d3a354df2d82f2d158f9e504",
        "blsPrivateKey": "3a2ca861b00aa00a3c1ae00ed0252cb944a6b9dba37d8882ca4f757aafd6f2fe"
      },
      "encrypted": {
        "ciphertext": "291bbb535b7eb9dbfc300f13b5e031a684392f35a37618d76917073e57ddfe63351f953301a7b7ac986d13c080f5b1fcbae968084a29fae5e621b60f1ec1f600c48a24bd7fe8b25c9dc7f8be68e26fe664d20b36e5da86784413a42b2400f84725bf2180be37b2d1a14d4b02a1ebe977bad08d360fd5e1488b85311e64e7d4b5534653fdf90874a706c34c06b1774e30a4dea544067927cd4ff8e74d08ab39ba2c1855739be6dd85ffd2ce298a012a54fbc129797a8f6cf7",
        "mac": "33b6e7ae77b87ff7eb569fdcfd206e63fd719106635cfd6f09eaba8cdd02df39",
        "kdf": "argon2id",
        "kdfparams": {
          "parallelism": 4,
          "iterations": 1,
          "memorySize": 2024,
          "salt": "7920fdf927717ec27463416fd44e83ac"
        },
        "cipher": "aes-256-gcm",
        "cipherparams": {
          "iv": "fc9c300aacd987b71bc45354",
          "tag": "033470f223f59f40462647055203ff74"
        },
        "version": "1"
      }
    }
  ]
}

keys:encrypt

Encrypt keys from a file and overwrite the file.

USAGE
  $ klayr-core keys:encrypt

OPTIONS
  -f, --file-path=file-path  (required) Path of the file to encrypt from

  -w, --password=password    Specifies a source for your secret password. Command will prompt you for input if this
                             option is not set.
                             Examples:
                             - --password=pass:password123 (should only be used where security is not important)

EXAMPLES
  keys:encrypt --file-path ./my/path/keys.json
  keys:encrypt --file-path ./my/path/keys.json --password mypass
Example
klayr-core keys:encrypt --file-path ./my/path/keys.json --password mypass
Response
{
  "keys": [
      {
        "address": "klye5sqed53fdcs4m9et28f2k7u9fk6hno9bauday",
        "keyPath": "m/44'/134'/0'",
        "publicKey": "a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
        "privateKey": "d0b159fe5a7cc3d5f4b39a97621b514bc55b0a0f1aca8adeed2dd1899d93f103a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
        "plain": {
          "generatorKeyPath": "m/25519'/134'/0'/0'",
          "generatorKey": "b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
          "generatorPrivateKey": "b3c4de7f7932275b7a465045e918337ffd7b7b229cef8eba28f706de8759da95b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
          "blsKeyPath": "m/12381/134/0/0",
          "blsKey": "92f020ce5e37befb86493a82686b0eedddb264350b0873cf1eeaa1fefe39d938f05f272452c1ef5e6ceb4d9b23687e31",
          "blsProofOfPosession": "b92b11d66348e197c62d14af1453620d550c21d59ce572d95a03f0eaa0d0d195efbb2f2fd1577dc1a04ecdb453065d9d168ce7648bc5328e5ea47bb07d3ce6fd75f35ee51064a9903da8b90f7dc8ab4f2549b834cb5911b883097133f66b9ab9",
          "blsPrivateKey": "463dd3413051366ee658c2524dd0bec85f8459bf6d70439685746406604f950d"
      },
      "encrypted": {
          "ciphertext": "d340438fde7b744d7482f01531415ffc0bda70dac36257571bb0dab703771e83152428b4a4dddc77dff1a983f07b0f3cba688fab2e46abe970ae4131c616e6cbf613952786f5749e94531641f07fcdef38a001a44f56f5de69e0976964ea13cbaff0682b5e0eaf9ff01a00f5b2215a3a1d9e3f0d5b78c876b157213367f7f90a468937c0baf9904189c21870c396b43b53422422bd61a3e1c8cb3126e1a5d60545aa06ee789c89dfb9155b560c327a88af5f9b04b4c6d4e9",
          "mac": "d476a90c1fb057a1e4ece0d725f40f67ae36efcc166aede5380115d2a7532833",
          "kdf": "argon2id",
          "kdfparams": {
          "parallelism": 4,
          "iterations": 1,
          "memorySize": 2024,
          "salt": "ecc014a7619b7f179b3fa32d2fed5d6c"
          },
          "cipher": "aes-256-gcm",
          "cipherparams": {
          "iv": "328cf25fdda6988ed9f1101e",
          "tag": "1862fde73a2a7b71979773bf620872ef"
          },
          "version": "1"
        }
    }
  ]
}

keys:export

Export keys to a file.

USAGE
  $ klayr-core keys:export

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -o, --output=output        (required) The output directory. Default will set to current working directory.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  keys:export --output /mypath/keys.json
  keys:export --output /mypath/keys.json --data-path ./data
Example
klayr-core keys:export --output ~/mypath/mykeys.json

keys:import

Import keys from a file.

USAGE
  $ klayr-core keys:import

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  -f, --file-path=file-path  (required) Path of the file to import from

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  keys:import --file-path ./my/path/keys.json
  keys:import --file-path ./my/path/keys.json --data-path ./data
Example
klayr-core keys:import --file-path ~/mykeys.json

system

Commands relating to a Klayr Core node.

USAGE
  $ klayr-core system

COMMANDS
  system:node-info      Get node information from a running application.
  system:metadata       Get node metadata from a running application.

system:node-info

Gets a node’s information from a running Klayr application.

USAGE
  $ klayr-core system:node-info

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  system:node-info
  system:node-info --data-path ./klayr
Example
klayr-core system:node-info --pretty
Response
{
  "version": "4.1.4",
  "networkVersion": "1.0",
  "chainID": "04000000",
  "lastBlockID": "6f00e6bccb1868bcdd7167fe25c4ce5cf49c40687e454b7c855ff1eed401919c",
  "height": 2877,
  "finalizedHeight": 2765,
  "syncing": false,
  "unconfirmedTransactions": 0,
  "genesisHeight": 0,
  "genesis": {
    "block": {
      "fromFile": "./config/genesis_block.blob"
    },
    "blockTime": 7,
    "maxTransactionsSize": 15360,
    "chainID": "04000000"
  },
  "network": {
    "version": "1.0",
    "port": 7667,
    "seedPeers": []
  }
}

system:metadata

Gets a node’s metadata from a running Klayr application.

USAGE
  $ klayr-core system:metadata

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLES
  system:metadata
  system:metadata --data-path ./klayr
Example
klayr-core system:metadata --pretty
Response
{
  "modules": [
    {
      "commands": [
        {
          "name": "registerMultisignature",
          "params": {
            "$id": "/auth/command/regMultisig",
            "type": "object",
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1,
                "minimum": 1,
                "maximum": 64
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2,
                "minItems": 0,
                "maxItems": 64
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3,
                "minItems": 0,
                "maxItems": 64
              },
              "signatures": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 64,
                  "maxLength": 64
                },
                "fieldNumber": 4
              }
            },
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys",
              "signatures"
            ]
          }
        }
      ],
      "events": [
        {
          "name": "multisignatureRegistration",
          "data": {
            "$id": "/auth/events/multisigRegData",
            "type": "object",
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ],
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "invalidSignature",
          "data": {
            "$id": "/auth/events/invalidSigData",
            "type": "object",
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys",
              "failingPublicKey",
              "failingSignature"
            ],
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3
              },
              "failingPublicKey": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 4
              },
              "failingSignature": {
                "dataType": "bytes",
                "minLength": 64,
                "maxLength": 64,
                "fieldNumber": 5
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "3df49c3c0000",
          "data": {
            "$id": "/auth/account",
            "type": "object",
            "properties": {
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 1
              },
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 2,
                "minimum": 0,
                "maximum": 64
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 3
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 4
              }
            },
            "required": [
              "nonce",
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ]
          }
        }
      ],
      "endpoints": [
        {
          "name": "getAuthAccount",
          "request": {
            "$id": "/auth/addressRequest",
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            },
            "required": [
              "address"
            ]
          },
          "response": {
            "$id": "/auth/account",
            "type": "object",
            "properties": {
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 1
              },
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 2,
                "minimum": 0,
                "maximum": 64
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 3
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 4
              }
            },
            "required": [
              "nonce",
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ]
          }
        },
        {
          "name": "isValidNonce",
          "request": {
            "$id": "/auth/transactionRequest",
            "type": "object",
            "properties": {
              "transaction": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "transaction"
            ]
          },
          "response": {
            "$id": "/auth/verifyResult",
            "type": "object",
            "properties": {
              "verified": {
                "type": "boolean"
              }
            },
            "required": [
              "verified"
            ]
          }
        },
        {
          "name": "isValidSignature",
          "request": {
            "$id": "/auth/transactionRequest",
            "type": "object",
            "properties": {
              "transaction": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "transaction"
            ]
          },
          "response": {
            "$id": "/auth/verifyResult",
            "type": "object",
            "properties": {
              "verified": {
                "type": "boolean"
              }
            },
            "required": [
              "verified"
            ]
          }
        },
        {
          "name": "getMultiSigRegMsgSchema",
          "response": {
            "$id": "/auth/command/regMultisigMsg",
            "type": "object",
            "required": [
              "address",
              "nonce",
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 20,
                "maxLength": 20
              },
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 2
              },
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 3
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 4
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "name": "sortMultisignatureGroup",
          "request": {
            "$id": "/auth/command/sortMultisig",
            "required": [
              "mandatory",
              "optional"
            ],
            "type": "object",
            "properties": {
              "mandatory": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "publicKey": {
                      "type": "string",
                      "minLength": 64,
                      "maxLength": 64,
                      "fieldNumber": 1
                    },
                    "signature": {
                      "type": "string",
                      "minLength": 128,
                      "maxLength": 128,
                      "fieldNumber": 2
                    }
                  }
                },
                "minItems": 1,
                "maxItems": 64
              },
              "optional": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "publicKey": {
                      "type": "string",
                      "minLength": 64,
                      "maxLength": 64,
                      "fieldNumber": 3
                    },
                    "signature": {
                      "type": "string",
                      "minLength": 0,
                      "maxLength": 128,
                      "fieldNumber": 4
                    }
                  }
                },
                "minItems": 0,
                "maxItems": 64
              }
            }
          },
          "response": {
            "$id": "/auth/sortMultisignatureGroupResponse",
            "type": "object",
            "properties": {
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 1,
                "minItems": 0,
                "maxItems": 64
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2,
                "minItems": 0,
                "maxItems": 64
              },
              "signatures": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 64,
                  "maxLength": 64
                },
                "fieldNumber": 3
              }
            },
            "required": [
              "mandatoryKeys",
              "optionalKeys",
              "signatures"
            ]
          }
        },
        {
          "name": "getMultiSigRegMsgTag",
          "response": {
            "$id": "/auth/mutliSignatureRegistrationSignatureMessageTagResponse",
            "type": "object",
            "properties": {
              "tag": {
                "type": "string"
              }
            },
            "required": [
              "tag"
            ]
          }
        }
      ],
      "assets": [
        {
          "version": 0,
          "data": {
            "$id": "/auth/module/genesis",
            "type": "object",
            "required": [
              "authDataSubstore"
            ],
            "properties": {
              "authDataSubstore": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "type": "object",
                      "fieldNumber": 2,
                      "required": [
                        "nonce",
                        "numberOfSignatures",
                        "mandatoryKeys",
                        "optionalKeys"
                      ],
                      "properties": {
                        "nonce": {
                          "dataType": "uint64",
                          "fieldNumber": 1
                        },
                        "numberOfSignatures": {
                          "dataType": "uint32",
                          "fieldNumber": 2
                        },
                        "mandatoryKeys": {
                          "type": "array",
                          "fieldNumber": 3,
                          "items": {
                            "dataType": "bytes"
                          }
                        },
                        "optionalKeys": {
                          "type": "array",
                          "fieldNumber": 4,
                          "items": {
                            "dataType": "bytes"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "name": "auth"
    },
    {
      "commands": [],
      "events": [
        {
          "name": "rewardMinted",
          "data": {
            "$id": "/reward/events/rewardMintedData",
            "type": "object",
            "required": [
              "amount",
              "reduction"
            ],
            "properties": {
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 1
              },
              "reduction": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "054253ec0000",
          "data": {
            "$id": "/dynamicRewards/endOfRoundTimestamp",
            "type": "object",
            "properties": {
              "timestamp": {
                "dataType": "uint32",
                "fieldNumber": 1
              }
            },
            "required": [
              "timestamp"
            ]
          }
        }
      ],
      "endpoints": [
        {
          "name": "getDefaultRewardAtHeight",
          "request": {
            "$id": "/reward/endpoint/height",
            "type": "object",
            "required": [
              "height"
            ],
            "properties": {
              "height": {
                "type": "integer",
                "format": "uint32"
              }
            }
          },
          "response": {
            "$id": "/reward/endpoint/getDefaultRewardAtHeightResponse",
            "type": "object",
            "required": [
              "reward"
            ],
            "properties": {
              "reward": {
                "type": "string",
                "format": "uint64"
              }
            }
          }
        },
        {
          "name": "getAnnualInflation",
          "request": {
            "$id": "/reward/endpoint/height",
            "type": "object",
            "required": [
              "height"
            ],
            "properties": {
              "height": {
                "type": "integer",
                "format": "uint32"
              }
            }
          },
          "response": {
            "$id": "/reward/endpoint/getAnnualInflationResponse",
            "type": "object",
            "required": [
              "tokenID",
              "rate"
            ],
            "properties": {
              "tokenID": {
                "type": "string",
                "format": "hex"
              },
              "rate": {
                "type": "string",
                "format": "uint64",
                "minLength": 16,
                "maxLength": 16
              }
            }
          }
        },
        {
          "name": "getRewardTokenID",
          "response": {
            "$id": "/reward/endpoint/getRewardTokenID",
            "type": "object",
            "required": [
              "tokenID"
            ],
            "properties": {
              "tokenID": {
                "type": "string",
                "format": "hex",
                "minLength": 16,
                "maxLength": 16
              }
            }
          }
        }
      ],
      "assets": [],
      "name": "dynamicReward"
    },
    {
      "commands": [],
      "events": [
        {
          "name": "generatorFeeProcessed",
          "data": {
            "$id": "/fee/events/generatorFeeProcessed",
            "type": "object",
            "required": [
              "senderAddress",
              "generatorAddress",
              "burntAmount",
              "generatorAmount"
            ],
            "properties": {
              "senderAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "generatorAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "burntAmount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "generatorAmount": {
                "dataType": "uint64",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "relayerFeeProcessed",
          "data": {
            "$id": "/fee/events/relayerFeeProcessed",
            "type": "object",
            "required": [
              "ccmID",
              "relayerAddress",
              "burntAmount",
              "relayerAmount"
            ],
            "properties": {
              "ccmID": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "relayerAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "burntAmount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "relayerAmount": {
                "dataType": "uint64",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "insufficientFee",
          "data": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        }
      ],
      "stores": [],
      "endpoints": [
        {
          "name": "getMinFeePerByte",
          "response": {
            "$id": "/fee/endpoint/getMinFeePerByteResponse",
            "type": "object",
            "properties": {
              "minFeePerByte": {
                "type": "integer",
                "format": "uint32"
              }
            },
            "required": [
              "minFeePerByte"
            ]
          }
        },
        {
          "name": "getFeeTokenID",
          "response": {
            "$id": "/fee/endpoint/getFeeTokenIDResponseSchema",
            "type": "object",
            "properties": {
              "feeTokenID": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "feeTokenID"
            ]
          }
        }
      ],
      "assets": [],
      "name": "fee"
    },
    {
      "commands": [
        {
          "name": "submitMainchainCrossChainUpdate",
          "params": {
            "$id": "/modules/interoperability/ccu",
            "type": "object",
            "required": [
              "sendingChainID",
              "certificate",
              "activeValidatorsUpdate",
              "certificateThreshold",
              "inboxUpdate"
            ],
            "properties": {
              "sendingChainID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 4,
                "maxLength": 4
              },
              "certificate": {
                "dataType": "bytes",
                "fieldNumber": 2
              },
              "activeValidatorsUpdate": {
                "type": "object",
                "fieldNumber": 3,
                "required": [
                  "blsKeysUpdate",
                  "bftWeightsUpdate",
                  "bftWeightsUpdateBitmap"
                ],
                "properties": {
                  "blsKeysUpdate": {
                    "type": "array",
                    "fieldNumber": 1,
                    "items": {
                      "dataType": "bytes",
                      "minLength": 48,
                      "maxLength": 48
                    }
                  },
                  "bftWeightsUpdate": {
                    "type": "array",
                    "fieldNumber": 2,
                    "items": {
                      "dataType": "uint64"
                    }
                  },
                  "bftWeightsUpdateBitmap": {
                    "dataType": "bytes",
                    "fieldNumber": 3
                  }
                }
              },
              "certificateThreshold": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "inboxUpdate": {
                "type": "object",
                "fieldNumber": 5,
                "required": [
                  "crossChainMessages",
                  "messageWitnessHashes",
                  "outboxRootWitness"
                ],
                "properties": {
                  "crossChainMessages": {
                    "type": "array",
                    "fieldNumber": 1,
                    "items": {
                      "dataType": "bytes"
                    }
                  },
                  "messageWitnessHashes": {
                    "type": "array",
                    "fieldNumber": 2,
                    "items": {
                      "dataType": "bytes",
                      "minLength": 32,
                      "maxLength": 32
                    }
                  },
                  "outboxRootWitness": {
                    "type": "object",
                    "fieldNumber": 3,
                    "required": [
                      "bitmap",
                      "siblingHashes"
                    ],
                    "properties": {
                      "bitmap": {
                        "dataType": "bytes",
                        "fieldNumber": 1
                      },
                      "siblingHashes": {
                        "type": "array",
                        "fieldNumber": 2,
                        "items": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "initializeMessageRecovery",
          "params": {
            "$id": "/modules/interoperability/mainchain/messageRecoveryInitialization",
            "type": "object",
            "required": [
              "chainID",
              "channel",
              "bitmap",
              "siblingHashes"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 4,
                "maxLength": 4
              },
              "channel": {
                "dataType": "bytes",
                "fieldNumber": 2
              },
              "bitmap": {
                "dataType": "bytes",
                "fieldNumber": 3
              },
              "siblingHashes": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "recoverMessage",
          "params": {
            "$id": "/modules/interoperability/mainchain/messageRecovery",
            "type": "object",
            "required": [
              "chainID",
              "crossChainMessages",
              "idxs",
              "siblingHashes"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              },
              "crossChainMessages": {
                "type": "array",
                "items": {
                  "dataType": "bytes"
                },
                "fieldNumber": 2
              },
              "idxs": {
                "type": "array",
                "items": {
                  "dataType": "uint32"
                },
                "fieldNumber": 3
              },
              "siblingHashes": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "registerSidechain",
          "params": {
            "$id": "/modules/interoperability/mainchain/sidechainRegistration",
            "type": "object",
            "required": [
              "chainID",
              "name",
              "sidechainValidators",
              "sidechainCertificateThreshold"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 4,
                "maxLength": 4
              },
              "name": {
                "dataType": "string",
                "fieldNumber": 2,
                "minLength": 1,
                "maxLength": 32
              },
              "sidechainValidators": {
                "type": "array",
                "fieldNumber": 3,
                "items": {
                  "type": "object",
                  "required": [
                    "blsKey",
                    "bftWeight"
                  ],
                  "properties": {
                    "blsKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "minLength": 48,
                      "maxLength": 48
                    },
                    "bftWeight": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                },
                "minItems": 1,
                "maxItems": 199
              },
              "sidechainCertificateThreshold": {
                "dataType": "uint64",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "recoverState",
          "params": {
            "$id": "/modules/interoperability/mainchain/commands/stateRecovery",
            "type": "object",
            "required": [
              "chainID",
              "module",
              "storeEntries",
              "siblingHashes"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 4,
                "maxLength": 4
              },
              "module": {
                "dataType": "string",
                "fieldNumber": 2,
                "minLength": 1,
                "maxLength": 32
              },
              "storeEntries": {
                "type": "array",
                "fieldNumber": 3,
                "items": {
                  "type": "object",
                  "properties": {
                    "substorePrefix": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "minLength": 2,
                      "maxLength": 2
                    },
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 2
                    },
                    "storeValue": {
                      "dataType": "bytes",
                      "fieldNumber": 3
                    },
                    "bitmap": {
                      "dataType": "bytes",
                      "fieldNumber": 4
                    }
                  },
                  "required": [
                    "substorePrefix",
                    "storeKey",
                    "storeValue",
                    "bitmap"
                  ]
                }
              },
              "siblingHashes": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "terminateSidechainForLiveness",
          "params": {
            "$id": "/modules/interoperability/mainchain/terminateSidechainForLiveness",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 4,
                "maxLength": 4
              }
            }
          }
        }
      ],
      "events": [
        {
          "name": "chainAccountUpdated",
          "data": {
            "$id": "/modules/interoperability/chainData",
            "type": "object",
            "required": [
              "name",
              "lastCertificate",
              "status"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "lastCertificate": {
                "type": "object",
                "fieldNumber": 2,
                "required": [
                  "height",
                  "timestamp",
                  "stateRoot",
                  "validatorsHash"
                ],
                "properties": {
                  "height": {
                    "dataType": "uint32",
                    "fieldNumber": 1
                  },
                  "timestamp": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "stateRoot": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  },
                  "validatorsHash": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 4
                  }
                }
              },
              "status": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "ccmProcessed",
          "data": {
            "$id": "/interoperability/events/ccmProcessed",
            "type": "object",
            "required": [
              "ccm",
              "result",
              "code"
            ],
            "properties": {
              "ccm": {
                "fieldNumber": 1,
                "type": "object",
                "required": [
                  "module",
                  "crossChainCommand",
                  "nonce",
                  "fee",
                  "sendingChainID",
                  "receivingChainID",
                  "params",
                  "status"
                ],
                "properties": {
                  "module": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 1
                  },
                  "crossChainCommand": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 2
                  },
                  "nonce": {
                    "dataType": "uint64",
                    "fieldNumber": 3
                  },
                  "fee": {
                    "dataType": "uint64",
                    "fieldNumber": 4
                  },
                  "sendingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 5
                  },
                  "receivingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 6
                  },
                  "params": {
                    "dataType": "bytes",
                    "fieldNumber": 7
                  },
                  "status": {
                    "dataType": "uint32",
                    "fieldNumber": 8
                  }
                }
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "code": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "ccmSendSuccess",
          "data": {
            "$id": "/interoperability/events/ccmSendSuccess",
            "type": "object",
            "required": [
              "ccm"
            ],
            "properties": {
              "ccm": {
                "fieldNumber": 1,
                "type": "object",
                "required": [
                  "module",
                  "crossChainCommand",
                  "nonce",
                  "fee",
                  "sendingChainID",
                  "receivingChainID",
                  "params",
                  "status"
                ],
                "properties": {
                  "module": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 1
                  },
                  "crossChainCommand": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 2
                  },
                  "nonce": {
                    "dataType": "uint64",
                    "fieldNumber": 3
                  },
                  "fee": {
                    "dataType": "uint64",
                    "fieldNumber": 4
                  },
                  "sendingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 5
                  },
                  "receivingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 6
                  },
                  "params": {
                    "dataType": "bytes",
                    "fieldNumber": 7
                  },
                  "status": {
                    "dataType": "uint32",
                    "fieldNumber": 8
                  }
                }
              }
            }
          }
        },
        {
          "name": "ccmSentFailed",
          "data": {
            "$id": "/interoperability/events/ccmSendFail",
            "type": "object",
            "required": [
              "ccm",
              "code"
            ],
            "properties": {
              "ccm": {
                "$id": "/modules/interoperability/ccm",
                "type": "object",
                "required": [
                  "module",
                  "crossChainCommand",
                  "nonce",
                  "fee",
                  "sendingChainID",
                  "receivingChainID",
                  "params",
                  "status"
                ],
                "properties": {
                  "module": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 1
                  },
                  "crossChainCommand": {
                    "dataType": "string",
                    "minLength": 1,
                    "maxLength": 32,
                    "fieldNumber": 2
                  },
                  "nonce": {
                    "dataType": "uint64",
                    "fieldNumber": 3
                  },
                  "fee": {
                    "dataType": "uint64",
                    "fieldNumber": 4
                  },
                  "sendingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 5
                  },
                  "receivingChainID": {
                    "dataType": "bytes",
                    "minLength": 4,
                    "maxLength": 4,
                    "fieldNumber": 6
                  },
                  "params": {
                    "dataType": "bytes",
                    "fieldNumber": 7
                  },
                  "status": {
                    "dataType": "uint32",
                    "fieldNumber": 8
                  }
                },
                "fieldNumber": 1
              },
              "code": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "invalidRegistrationSignature",
          "data": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        },
        {
          "name": "terminatedStateCreated",
          "data": {
            "$id": "/modules/interoperability/terminatedState",
            "type": "object",
            "required": [
              "stateRoot",
              "mainchainStateRoot",
              "initialized"
            ],
            "properties": {
              "stateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "mainchainStateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 2
              },
              "initialized": {
                "dataType": "boolean",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "terminatedOutboxCreated",
          "data": {
            "$id": "/modules/interoperability/terminatedOutbox",
            "type": "object",
            "required": [
              "outboxRoot",
              "outboxSize",
              "partnerChainInboxSize"
            ],
            "properties": {
              "outboxRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "outboxSize": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "partnerChainInboxSize": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "invalidCertificateSignature",
          "data": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        }
      ],
      "stores": [
        {
          "key": "83ed0d250000",
          "data": {
            "$id": "/modules/interoperability/outbox",
            "type": "object",
            "required": [
              "root"
            ],
            "properties": {
              "root": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "key": "83ed0d258000",
          "data": {
            "$id": "/modules/interoperability/chainData",
            "type": "object",
            "required": [
              "name",
              "lastCertificate",
              "status"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "lastCertificate": {
                "type": "object",
                "fieldNumber": 2,
                "required": [
                  "height",
                  "timestamp",
                  "stateRoot",
                  "validatorsHash"
                ],
                "properties": {
                  "height": {
                    "dataType": "uint32",
                    "fieldNumber": 1
                  },
                  "timestamp": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "stateRoot": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  },
                  "validatorsHash": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 4
                  }
                }
              },
              "status": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "key": "83ed0d25b000",
          "data": {
            "$id": "/modules/interoperability/ownChainAccount",
            "type": "object",
            "required": [
              "name",
              "chainID",
              "nonce"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 2
              },
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "key": "83ed0d25a000",
          "data": {
            "$id": "/modules/interoperability/channel",
            "type": "object",
            "required": [
              "inbox",
              "outbox",
              "partnerChainOutboxRoot",
              "messageFeeTokenID",
              "minReturnFeePerByte"
            ],
            "properties": {
              "inbox": {
                "type": "object",
                "fieldNumber": 1,
                "required": [
                  "appendPath",
                  "size",
                  "root"
                ],
                "properties": {
                  "appendPath": {
                    "type": "array",
                    "items": {
                      "dataType": "bytes",
                      "minLength": 32,
                      "maxLength": 32
                    },
                    "fieldNumber": 1
                  },
                  "size": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "root": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  }
                }
              },
              "outbox": {
                "type": "object",
                "fieldNumber": 2,
                "required": [
                  "appendPath",
                  "size",
                  "root"
                ],
                "properties": {
                  "appendPath": {
                    "type": "array",
                    "items": {
                      "dataType": "bytes",
                      "minLength": 32,
                      "maxLength": 32
                    },
                    "fieldNumber": 1
                  },
                  "size": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "root": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  }
                }
              },
              "partnerChainOutboxRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 3
              },
              "messageFeeTokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 4
              },
              "minReturnFeePerByte": {
                "dataType": "uint64",
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "key": "83ed0d259000",
          "data": {
            "$id": "/modules/interoperability/chainValidators",
            "type": "object",
            "required": [
              "activeValidators",
              "certificateThreshold"
            ],
            "properties": {
              "activeValidators": {
                "type": "array",
                "fieldNumber": 1,
                "minItems": 1,
                "maxItems": 199,
                "items": {
                  "type": "object",
                  "required": [
                    "blsKey",
                    "bftWeight"
                  ],
                  "properties": {
                    "blsKey": {
                      "dataType": "bytes",
                      "minLength": 48,
                      "maxLength": 48,
                      "fieldNumber": 1
                    },
                    "bftWeight": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "certificateThreshold": {
                "dataType": "uint64",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "key": "83ed0d25c000",
          "data": {
            "$id": "/modules/interoperability/terminatedState",
            "type": "object",
            "required": [
              "stateRoot",
              "mainchainStateRoot",
              "initialized"
            ],
            "properties": {
              "stateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "mainchainStateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 2
              },
              "initialized": {
                "dataType": "boolean",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "key": "83ed0d25d000",
          "data": {
            "$id": "/modules/interoperability/terminatedOutbox",
            "type": "object",
            "required": [
              "outboxRoot",
              "outboxSize",
              "partnerChainInboxSize"
            ],
            "properties": {
              "outboxRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "outboxSize": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "partnerChainInboxSize": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "key": "83ed0d25e000",
          "data": {
            "$id": "/modules/interoperability/chainId",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              }
            }
          }
        }
      ],
      "endpoints": [
        {
          "name": "getChainAccount",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/chainData",
            "type": "object",
            "required": [
              "name",
              "lastCertificate",
              "status"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "lastCertificate": {
                "type": "object",
                "fieldNumber": 2,
                "required": [
                  "height",
                  "timestamp",
                  "stateRoot",
                  "validatorsHash"
                ],
                "properties": {
                  "height": {
                    "dataType": "uint32",
                    "fieldNumber": 1
                  },
                  "timestamp": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "stateRoot": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  },
                  "validatorsHash": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 4
                  }
                }
              },
              "status": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "getAllChainAccounts",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/allChainAccounts",
            "type": "object",
            "required": [
              "chains"
            ],
            "properties": {
              "chains": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "name",
                    "lastCertificate",
                    "status"
                  ],
                  "properties": {
                    "name": {
                      "dataType": "string",
                      "fieldNumber": 1
                    },
                    "lastCertificate": {
                      "type": "object",
                      "fieldNumber": 2,
                      "required": [
                        "height",
                        "timestamp",
                        "stateRoot",
                        "validatorsHash"
                      ],
                      "properties": {
                        "height": {
                          "dataType": "uint32",
                          "fieldNumber": 1
                        },
                        "timestamp": {
                          "dataType": "uint32",
                          "fieldNumber": 2
                        },
                        "stateRoot": {
                          "dataType": "string",
                          "format": "hex",
                          "fieldNumber": 3
                        },
                        "validatorsHash": {
                          "dataType": "string",
                          "format": "hex",
                          "fieldNumber": 4
                        }
                      }
                    },
                    "status": {
                      "dataType": "uint32",
                      "fieldNumber": 3
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getChannel",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/channel",
            "type": "object",
            "required": [
              "inbox",
              "outbox",
              "partnerChainOutboxRoot",
              "messageFeeTokenID",
              "minReturnFeePerByte"
            ],
            "properties": {
              "inbox": {
                "type": "object",
                "fieldNumber": 1,
                "required": [
                  "appendPath",
                  "size",
                  "root"
                ],
                "properties": {
                  "appendPath": {
                    "type": "array",
                    "items": {
                      "dataType": "bytes",
                      "minLength": 32,
                      "maxLength": 32
                    },
                    "fieldNumber": 1
                  },
                  "size": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "root": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  }
                }
              },
              "outbox": {
                "type": "object",
                "fieldNumber": 2,
                "required": [
                  "appendPath",
                  "size",
                  "root"
                ],
                "properties": {
                  "appendPath": {
                    "type": "array",
                    "items": {
                      "dataType": "bytes",
                      "minLength": 32,
                      "maxLength": 32
                    },
                    "fieldNumber": 1
                  },
                  "size": {
                    "dataType": "uint32",
                    "fieldNumber": 2
                  },
                  "root": {
                    "dataType": "bytes",
                    "minLength": 32,
                    "maxLength": 32,
                    "fieldNumber": 3
                  }
                }
              },
              "partnerChainOutboxRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 3
              },
              "messageFeeTokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 4
              },
              "minReturnFeePerByte": {
                "dataType": "uint64",
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "name": "getOwnChainAccount",
          "response": {
            "$id": "/modules/interoperability/ownChainAccount",
            "type": "object",
            "required": [
              "name",
              "chainID",
              "nonce"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 2
              },
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "getTerminatedStateAccount",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/terminatedState",
            "type": "object",
            "required": [
              "stateRoot",
              "mainchainStateRoot",
              "initialized"
            ],
            "properties": {
              "stateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "mainchainStateRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 2
              },
              "initialized": {
                "dataType": "boolean",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "getTerminatedOutboxAccount",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/terminatedOutbox",
            "type": "object",
            "required": [
              "outboxRoot",
              "outboxSize",
              "partnerChainInboxSize"
            ],
            "properties": {
              "outboxRoot": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "outboxSize": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "partnerChainInboxSize": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "getRegistrationFee",
          "response": {
            "$id": "/modules/interoperability/mainchain/registrationFee",
            "type": "object",
            "required": [
              "registrationFee"
            ],
            "properties": {
              "registrationFee": {
                "type": "string"
              }
            }
          }
        },
        {
          "name": "getMinimumMessageFee",
          "response": {
            "$id": "/modules/interoperability/mainchain/minimumMessageFeeResponse",
            "type": "object",
            "required": [
              "fee"
            ],
            "properties": {
              "fee": {
                "type": "string"
              }
            }
          }
        },
        {
          "name": "getChainValidators",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/validatorsHashInput",
            "type": "object",
            "required": [
              "activeValidators",
              "certificateThreshold"
            ],
            "properties": {
              "activeValidators": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "blsKey",
                    "bftWeight"
                  ],
                  "properties": {
                    "blsKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "bftWeight": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "certificateThreshold": {
                "dataType": "uint64",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "isChainIDAvailable",
          "request": {
            "$id": "/modules/interoperability/endpoint/getChainAccountRequest",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/endpoint/isChainIDAvailableResponseSchema",
            "type": "object",
            "required": [
              "result"
            ],
            "properties": {
              "result": {
                "type": "boolean"
              }
            }
          }
        },
        {
          "name": "isChainNameAvailable",
          "request": {
            "$id": "/modules/interoperability/endpoint/isChainNameAvailableRequest",
            "type": "object",
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              }
            }
          },
          "response": {
            "$id": "/modules/interoperability/endpoint/isChainNameAvailableResponseSchema",
            "type": "object",
            "required": [
              "result"
            ],
            "properties": {
              "result": {
                "type": "boolean"
              }
            }
          }
        }
      ],
      "assets": [
        {
          "version": 0,
          "data": {
            "$id": "/interoperability/module/genesis",
            "type": "object",
            "required": [
              "outboxRootSubstore",
              "chainDataSubstore",
              "channelDataSubstore",
              "chainValidatorsSubstore",
              "ownChainDataSubstore",
              "terminatedStateSubstore",
              "terminatedOutboxSubstore",
              "registeredNamesSubstore"
            ],
            "properties": {
              "outboxRootSubstore": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/outbox",
                      "type": "object",
                      "required": [
                        "root"
                      ],
                      "properties": {
                        "root": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32,
                          "fieldNumber": 1
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "chainDataSubstore": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/chainData",
                      "type": "object",
                      "required": [
                        "name",
                        "lastCertificate",
                        "status"
                      ],
                      "properties": {
                        "name": {
                          "dataType": "string",
                          "fieldNumber": 1
                        },
                        "lastCertificate": {
                          "type": "object",
                          "fieldNumber": 2,
                          "required": [
                            "height",
                            "timestamp",
                            "stateRoot",
                            "validatorsHash"
                          ],
                          "properties": {
                            "height": {
                              "dataType": "uint32",
                              "fieldNumber": 1
                            },
                            "timestamp": {
                              "dataType": "uint32",
                              "fieldNumber": 2
                            },
                            "stateRoot": {
                              "dataType": "bytes",
                              "minLength": 32,
                              "maxLength": 32,
                              "fieldNumber": 3
                            },
                            "validatorsHash": {
                              "dataType": "bytes",
                              "minLength": 32,
                              "maxLength": 32,
                              "fieldNumber": 4
                            }
                          }
                        },
                        "status": {
                          "dataType": "uint32",
                          "fieldNumber": 3
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "channelDataSubstore": {
                "type": "array",
                "fieldNumber": 3,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/channel",
                      "type": "object",
                      "required": [
                        "inbox",
                        "outbox",
                        "partnerChainOutboxRoot",
                        "messageFeeTokenID",
                        "minReturnFeePerByte"
                      ],
                      "properties": {
                        "inbox": {
                          "type": "object",
                          "fieldNumber": 1,
                          "required": [
                            "appendPath",
                            "size",
                            "root"
                          ],
                          "properties": {
                            "appendPath": {
                              "type": "array",
                              "items": {
                                "dataType": "bytes",
                                "minLength": 32,
                                "maxLength": 32
                              },
                              "fieldNumber": 1
                            },
                            "size": {
                              "dataType": "uint32",
                              "fieldNumber": 2
                            },
                            "root": {
                              "dataType": "bytes",
                              "minLength": 32,
                              "maxLength": 32,
                              "fieldNumber": 3
                            }
                          }
                        },
                        "outbox": {
                          "type": "object",
                          "fieldNumber": 2,
                          "required": [
                            "appendPath",
                            "size",
                            "root"
                          ],
                          "properties": {
                            "appendPath": {
                              "type": "array",
                              "items": {
                                "dataType": "bytes",
                                "minLength": 32,
                                "maxLength": 32
                              },
                              "fieldNumber": 1
                            },
                            "size": {
                              "dataType": "uint32",
                              "fieldNumber": 2
                            },
                            "root": {
                              "dataType": "bytes",
                              "minLength": 32,
                              "maxLength": 32,
                              "fieldNumber": 3
                            }
                          }
                        },
                        "partnerChainOutboxRoot": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32,
                          "fieldNumber": 3
                        },
                        "messageFeeTokenID": {
                          "dataType": "bytes",
                          "minLength": 8,
                          "maxLength": 8,
                          "fieldNumber": 4
                        },
                        "minReturnFeePerByte": {
                          "dataType": "uint64",
                          "fieldNumber": 5
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "chainValidatorsSubstore": {
                "type": "array",
                "fieldNumber": 4,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "fieldNumber": 2,
                      "$id": "/modules/interoperability/chainValidators",
                      "type": "object",
                      "required": [
                        "activeValidators",
                        "certificateThreshold"
                      ],
                      "properties": {
                        "activeValidators": {
                          "type": "array",
                          "fieldNumber": 1,
                          "minItems": 1,
                          "maxItems": 199,
                          "items": {
                            "type": "object",
                            "required": [
                              "blsKey",
                              "bftWeight"
                            ],
                            "properties": {
                              "blsKey": {
                                "dataType": "bytes",
                                "minLength": 48,
                                "maxLength": 48,
                                "fieldNumber": 1
                              },
                              "bftWeight": {
                                "dataType": "uint64",
                                "fieldNumber": 2
                              }
                            }
                          }
                        },
                        "certificateThreshold": {
                          "dataType": "uint64",
                          "fieldNumber": 2
                        }
                      }
                    }
                  }
                }
              },
              "ownChainDataSubstore": {
                "type": "array",
                "fieldNumber": 5,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/ownChainAccount",
                      "type": "object",
                      "required": [
                        "name",
                        "chainID",
                        "nonce"
                      ],
                      "properties": {
                        "name": {
                          "dataType": "string",
                          "fieldNumber": 1
                        },
                        "chainID": {
                          "dataType": "bytes",
                          "minLength": 4,
                          "maxLength": 4,
                          "fieldNumber": 2
                        },
                        "nonce": {
                          "dataType": "uint64",
                          "fieldNumber": 3
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "terminatedStateSubstore": {
                "type": "array",
                "fieldNumber": 6,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/terminatedState",
                      "type": "object",
                      "required": [
                        "stateRoot",
                        "mainchainStateRoot",
                        "initialized"
                      ],
                      "properties": {
                        "stateRoot": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32,
                          "fieldNumber": 1
                        },
                        "mainchainStateRoot": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32,
                          "fieldNumber": 2
                        },
                        "initialized": {
                          "dataType": "boolean",
                          "fieldNumber": 3
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "terminatedOutboxSubstore": {
                "type": "array",
                "fieldNumber": 7,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/terminatedOutbox",
                      "type": "object",
                      "required": [
                        "outboxRoot",
                        "outboxSize",
                        "partnerChainInboxSize"
                      ],
                      "properties": {
                        "outboxRoot": {
                          "dataType": "bytes",
                          "minLength": 32,
                          "maxLength": 32,
                          "fieldNumber": 1
                        },
                        "outboxSize": {
                          "dataType": "uint32",
                          "fieldNumber": 2
                        },
                        "partnerChainInboxSize": {
                          "dataType": "uint32",
                          "fieldNumber": 3
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "registeredNamesSubstore": {
                "type": "array",
                "fieldNumber": 8,
                "items": {
                  "type": "object",
                  "required": [
                    "storeKey",
                    "storeValue"
                  ],
                  "properties": {
                    "storeKey": {
                      "dataType": "bytes",
                      "fieldNumber": 1
                    },
                    "storeValue": {
                      "$id": "/modules/interoperability/chainId",
                      "type": "object",
                      "required": [
                        "chainID"
                      ],
                      "properties": {
                        "chainID": {
                          "dataType": "bytes",
                          "minLength": 4,
                          "maxLength": 4,
                          "fieldNumber": 1
                        }
                      },
                      "fieldNumber": 2
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "name": "interoperability"
    },
    {
      "endpoints": [
        {
          "name": "getLegacyAccount",
          "request": {
            "$id": "/legacy/endpoint/legacyAccountRequest",
            "type": "object",
            "required": [
              "publicKey"
            ],
            "properties": {
              "publicKey": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/legacy/store/genesis",
            "type": "object",
            "required": [
              "balance"
            ],
            "properties": {
              "balance": {
                "dataType": "uint64",
                "fieldNumber": 1
              }
            }
          }
        }
      ],
      "commands": [
        {
          "name": "reclaimKLY",
          "params": {
            "$id": "/legacy/command/reclaimKLYParams",
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "name": "registerKeys",
          "params": {
            "$id": "/legacy/command/registerKeysParams",
            "type": "object",
            "required": [
              "blsKey",
              "proofOfPossession",
              "generatorKey"
            ],
            "properties": {
              "blsKey": {
                "dataType": "bytes",
                "minLength": 48,
                "maxLength": 48,
                "fieldNumber": 1
              },
              "proofOfPossession": {
                "dataType": "bytes",
                "minLength": 96,
                "maxLength": 96,
                "fieldNumber": 2
              },
              "generatorKey": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 3
              }
            }
          }
        }
      ],
      "events": [
        {
          "name": "accountReclaimed",
          "data": {
            "$id": "klayr/legacy/accountReclaimedEventData",
            "type": "object",
            "required": [
              "legacyAddress",
              "address",
              "amount"
            ],
            "properties": {
              "legacyAddress": {
                "dataType": "bytes",
                "maxLength": 8,
                "fieldNumber": 1
              },
              "address": {
                "dataType": "bytes",
                "maxLength": 20,
                "fieldNumber": 2
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "keysRegistered",
          "data": {
            "$id": "klayr/legacy/keysRegisteredEventData",
            "type": "object",
            "required": [
              "address",
              "generatorKey",
              "blsKey"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "maxLength": 20,
                "fieldNumber": 1
              },
              "generatorKey": {
                "dataType": "bytes",
                "maxLength": 32,
                "fieldNumber": 2
              },
              "blsKey": {
                "dataType": "bytes",
                "maxLength": 48,
                "fieldNumber": 3
              }
            }
          }
        }
      ],
      "assets": [
        {
          "version": 0,
          "data": {
            "$id": "/legacy/module/genesis",
            "type": "object",
            "required": [
              "accounts"
            ],
            "properties": {
              "accounts": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "balance"
                  ],
                  "properties": {
                    "address": {
                      "dataType": "bytes",
                      "minLength": 8,
                      "maxLength": 8,
                      "fieldNumber": 1
                    },
                    "balance": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "stores": [],
      "name": "legacy"
    },
    {
      "commands": [
        {
          "name": "registerValidator",
          "params": {
            "$id": "/pos/command/registerValidatorParams",
            "type": "object",
            "required": [
              "name",
              "blsKey",
              "proofOfPossession",
              "generatorKey"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "blsKey": {
                "dataType": "bytes",
                "minLength": 48,
                "maxLength": 48,
                "fieldNumber": 2
              },
              "proofOfPossession": {
                "dataType": "bytes",
                "minLength": 96,
                "maxLength": 96,
                "fieldNumber": 3
              },
              "generatorKey": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "reportMisbehavior",
          "params": {
            "$id": "/pos/command/reportMisbehaviorParams",
            "type": "object",
            "required": [
              "header1",
              "header2"
            ],
            "properties": {
              "header1": {
                "dataType": "bytes",
                "fieldNumber": 1
              },
              "header2": {
                "dataType": "bytes",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "unlock",
          "params": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        },
        {
          "name": "updateGeneratorKey",
          "params": {
            "$id": "/pos/command/updateGeneratorKeyParams",
            "type": "object",
            "required": [
              "generatorKey"
            ],
            "properties": {
              "generatorKey": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 32,
                "maxLength": 32
              }
            }
          }
        },
        {
          "name": "stake",
          "params": {
            "$id": "/pos/command/stakeValidatorParams",
            "type": "object",
            "required": [
              "stakes"
            ],
            "properties": {
              "stakes": {
                "type": "array",
                "fieldNumber": 1,
                "minItems": 1,
                "maxItems": 20,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "format": "klayr32"
                    },
                    "amount": {
                      "dataType": "sint64",
                      "fieldNumber": 2
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "changeCommission",
          "params": {
            "$id": "/pos/command/changeCommissionCommandParams",
            "type": "object",
            "required": [
              "newCommission"
            ],
            "properties": {
              "newCommission": {
                "dataType": "uint32",
                "fieldNumber": 1,
                "maximum": 10000
              }
            }
          }
        },
        {
          "name": "claimRewards",
          "params": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        }
      ],
      "events": [
        {
          "name": "validatorBanned",
          "data": {
            "$id": "/pos/events/validatorBannedData",
            "type": "object",
            "required": [
              "address",
              "height"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "klayr32"
              },
              "height": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "validatorPunished",
          "data": {
            "$id": "/pos/events/punishValidatorData",
            "type": "object",
            "required": [
              "address",
              "height"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "klayr32"
              },
              "height": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "validatorRegistered",
          "data": {
            "$id": "/pos/events/registerValidatorData",
            "type": "object",
            "required": [
              "address",
              "name"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "klayr32"
              },
              "name": {
                "dataType": "string",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "validatorStaked",
          "data": {
            "$id": "/pos/events/validatorStakedData",
            "type": "object",
            "required": [
              "senderAddress",
              "validatorAddress",
              "amount",
              "result"
            ],
            "properties": {
              "senderAddress": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "klayr32"
              },
              "validatorAddress": {
                "dataType": "bytes",
                "fieldNumber": 2,
                "format": "klayr32"
              },
              "amount": {
                "dataType": "sint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "commissionChange",
          "data": {
            "$id": "/pos/events/commissionChangeData",
            "type": "object",
            "required": [
              "validatorAddress",
              "oldCommission",
              "newCommission"
            ],
            "properties": {
              "validatorAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "oldCommission": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "newCommission": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "rewardsAssigned",
          "data": {
            "$id": "/pos/events/rewardsAssignedData",
            "type": "object",
            "required": [
              "stakerAddress",
              "validatorAddress",
              "tokenID",
              "amount"
            ],
            "properties": {
              "stakerAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "validatorAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "7160f8680000",
          "data": {
            "$id": "/pos/staker",
            "type": "object",
            "required": [
              "stakes",
              "pendingUnlocks"
            ],
            "properties": {
              "stakes": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount",
                    "sharingCoefficients"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "format": "klayr32"
                    },
                    "amount": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    },
                    "sharingCoefficients": {
                      "type": "array",
                      "fieldNumber": 3,
                      "items": {
                        "type": "object",
                        "required": [
                          "tokenID",
                          "coefficient"
                        ],
                        "properties": {
                          "tokenID": {
                            "dataType": "bytes",
                            "fieldNumber": 1,
                            "minLength": 8,
                            "maxLength": 8
                          },
                          "coefficient": {
                            "dataType": "bytes",
                            "fieldNumber": 2,
                            "maxLength": 24
                          }
                        }
                      }
                    }
                  }
                }
              },
              "pendingUnlocks": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount",
                    "unstakeHeight"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "format": "klayr32"
                    },
                    "amount": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    },
                    "unstakeHeight": {
                      "dataType": "uint32",
                      "fieldNumber": 3
                    }
                  }
                }
              }
            }
          }
        },
        {
          "key": "7160f8688000",
          "data": {
            "$id": "/pos/validator",
            "type": "object",
            "required": [
              "name",
              "totalStake",
              "selfStake",
              "lastGeneratedHeight",
              "isBanned",
              "reportMisbehaviorHeights",
              "consecutiveMissedBlocks",
              "commission",
              "lastCommissionIncreaseHeight",
              "sharingCoefficients"
            ],
            "properties": {
              "name": {
                "dataType": "string",
                "fieldNumber": 1
              },
              "totalStake": {
                "dataType": "uint64",
                "fieldNumber": 2
              },
              "selfStake": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "lastGeneratedHeight": {
                "dataType": "uint32",
                "fieldNumber": 4
              },
              "isBanned": {
                "dataType": "boolean",
                "fieldNumber": 5
              },
              "reportMisbehaviorHeights": {
                "type": "array",
                "fieldNumber": 6,
                "items": {
                  "dataType": "uint32"
                }
              },
              "consecutiveMissedBlocks": {
                "dataType": "uint32",
                "fieldNumber": 7
              },
              "commission": {
                "dataType": "uint32",
                "fieldNumber": 8
              },
              "lastCommissionIncreaseHeight": {
                "dataType": "uint32",
                "fieldNumber": 9
              },
              "sharingCoefficients": {
                "type": "array",
                "fieldNumber": 10,
                "items": {
                  "type": "object",
                  "required": [
                    "tokenID",
                    "coefficient"
                  ],
                  "properties": {
                    "tokenID": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "minLength": 8,
                      "maxLength": 8
                    },
                    "coefficient": {
                      "dataType": "bytes",
                      "fieldNumber": 2,
                      "maxLength": 24
                    }
                  }
                }
              }
            }
          }
        },
        {
          "key": "7160f8684000",
          "data": {
            "$id": "/pos/name",
            "type": "object",
            "required": [
              "validatorAddress"
            ],
            "properties": {
              "validatorAddress": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "klayr32"
              }
            }
          }
        },
        {
          "key": "7160f868c000",
          "data": {
            "$id": "/pos/store/snapshot",
            "type": "object",
            "required": [
              "validatorWeightSnapshot"
            ],
            "properties": {
              "validatorWeightSnapshot": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "weight"
                  ],
                  "properties": {
                    "address": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "format": "klayr32"
                    },
                    "weight": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              }
            }
          }
        },
        {
          "key": "7160f8682000",
          "data": {
            "$id": "/pos/store/genesis",
            "type": "object",
            "required": [
              "height",
              "initRounds",
              "initValidators"
            ],
            "properties": {
              "height": {
                "dataType": "uint32",
                "fieldNumber": 1
              },
              "initRounds": {
                "dataType": "uint32",
                "fieldNumber": 2
              },
              "initValidators": {
                "type": "array",
                "fieldNumber": 3,
                "items": {
                  "dataType": "bytes",
                  "format": "klayr32"
                }
              }
            }
          }
        },
        {
          "key": "7160f868a000",
          "data": {
            "$id": "/pos/store/previousTimestamp",
            "type": "object",
            "required": [
              "timestamp"
            ],
            "properties": {
              "timestamp": {
                "dataType": "uint32",
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "key": "7160f8686000",
          "data": {
            "$id": "/pos/eligibleValidators",
            "type": "object",
            "required": [
              "lastReportMisbehaviorHeight"
            ],
            "properties": {
              "lastReportMisbehaviorHeight": {
                "dataType": "uint32",
                "fieldNumber": 1
              }
            }
          }
        }
      ],
      "endpoints": [
        {
          "name": "getAllValidators",
          "response": {
            "$id": "modules/pos/endpoint/getAllValidatorsResponse",
            "type": "object",
            "required": [
              "validators"
            ],
            "properties": {
              "validators": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "name",
                    "totalStakeReceived",
                    "selfStake",
                    "lastGeneratedHeight",
                    "isBanned",
                    "pomHeights",
                    "punishmentPeriods",
                    "consecutiveMissedBlocks"
                  ],
                  "properties": {
                    "address": {
                      "type": "string",
                      "format": "klayr32"
                    },
                    "name": {
                      "type": "string"
                    },
                    "totalStakeReceived": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "selfStake": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "lastGeneratedHeight": {
                      "type": "integer",
                      "format": "uint32"
                    },
                    "isBanned": {
                      "type": "boolean"
                    },
                    "pomHeights": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "format": "uint32"
                      }
                    },
                    "punishmentPeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "start",
                          "end"
                        ],
                        "properties": {
                          "start": {
                            "type": "integer",
                            "format": "uint32"
                          },
                          "end": {
                            "type": "integer",
                            "format": "uint32"
                          }
                        }
                      }
                    },
                    "consecutiveMissedBlocks": {
                      "type": "integer",
                      "format": "uint32"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getValidator",
          "request": {
            "$id": "modules/pos/endpoint/getValidatorRequest",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getValidatorResponse",
            "type": "object",
            "required": [
              "address",
              "name",
              "totalStakeReceived",
              "selfStake",
              "lastGeneratedHeight",
              "isBanned",
              "pomHeights",
              "punishmentPeriods",
              "consecutiveMissedBlocks"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "name": {
                "type": "string"
              },
              "totalStakeReceived": {
                "type": "string",
                "format": "uint64"
              },
              "selfStake": {
                "type": "string",
                "format": "uint64"
              },
              "lastGeneratedHeight": {
                "type": "integer",
                "format": "uint32"
              },
              "isBanned": {
                "type": "boolean"
              },
              "pomHeights": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "uint32"
                }
              },
              "punishmentPeriods": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "start",
                    "end"
                  ],
                  "properties": {
                    "start": {
                      "type": "integer",
                      "format": "uint32"
                    },
                    "end": {
                      "type": "integer",
                      "format": "uint32"
                    }
                  }
                }
              },
              "consecutiveMissedBlocks": {
                "type": "integer",
                "format": "uint32"
              }
            }
          }
        },
        {
          "name": "getStaker",
          "request": {
            "$id": "modules/pos/endpoint/getValidatorRequest",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getStakerResponse",
            "type": "object",
            "required": [
              "stakes",
              "pendingUnlocks"
            ],
            "properties": {
              "stakes": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "type": "string",
                      "format": "klayr32"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              },
              "pendingUnlocks": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount",
                    "unstakeHeight"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "type": "string",
                      "format": "klayr32"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "unstakeHeight": {
                      "type": "integer",
                      "format": "uint32"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getConstants",
          "response": {
            "$id": "/pos/config",
            "type": "object",
            "properties": {
              "factorSelfStakes": {
                "type": "integer",
                "format": "uint32"
              },
              "maxLengthName": {
                "type": "integer",
                "format": "uint32"
              },
              "maxNumberSentStakes": {
                "type": "integer",
                "format": "uint32"
              },
              "maxNumberPendingUnlocks": {
                "type": "integer",
                "format": "uint32"
              },
              "failSafeMissedBlocks": {
                "type": "integer",
                "format": "uint32"
              },
              "failSafeInactiveWindow": {
                "type": "integer",
                "format": "uint32"
              },
              "punishmentWindow": {
                "type": "integer",
                "format": "uint32"
              },
              "roundLength": {
                "type": "integer",
                "format": "uint32"
              },
              "minWeightStandby": {
                "type": "string",
                "format": "uint64"
              },
              "numberActiveValidators": {
                "type": "integer",
                "format": "uint32"
              },
              "numberStandbyValidators": {
                "type": "integer",
                "format": "uint32"
              },
              "posTokenID": {
                "type": "string",
                "format": "hex"
              },
              "validatorRegistrationFee": {
                "type": "string",
                "format": "uint64"
              },
              "maxBFTWeightCap": {
                "type": "integer",
                "format": "uint32",
                "minimum": 1,
                "maximum": 9999
              },
              "commissionIncreasePeriod": {
                "type": "integer",
                "format": "uint32"
              },
              "maxCommissionIncreaseRate": {
                "type": "integer",
                "format": "uint32"
              },
              "useInvalidBKLYey": {
                "type": "boolean"
              }
            },
            "required": [
              "factorSelfStakes",
              "maxLengthName",
              "maxNumberSentStakes",
              "maxNumberPendingUnlocks",
              "failSafeMissedBlocks",
              "failSafeInactiveWindow",
              "punishmentWindow",
              "roundLength",
              "minWeightStandby",
              "numberActiveValidators",
              "numberStandbyValidators",
              "posTokenID",
              "validatorRegistrationFee",
              "maxBFTWeightCap",
              "useInvalidBKLYey"
            ]
          }
        },
        {
          "name": "getPoSTokenID",
          "response": {
            "$id": "modules/pos/endpoint/getPoSTokenIDResponse",
            "type": "object",
            "required": [
              "tokenID"
            ],
            "properties": {
              "tokenID": {
                "type": "string",
                "format": "hex"
              }
            }
          }
        },
        {
          "name": "getClaimableRewards",
          "request": {
            "$id": "modules/pos/endpoint/getClaimableRewardsRequest",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getClaimableRewardsResponse",
            "type": "object",
            "properties": {
              "rewards": {
                "items": {
                  "type": "object",
                  "required": [
                    "tokenID",
                    "reward"
                  ],
                  "properties": {
                    "tokenID": {
                      "type": "string",
                      "format": "hex"
                    },
                    "reward": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getLockedReward",
          "request": {
            "$id": "modules/pos/endpoint/getLockedRewardRequest",
            "type": "object",
            "required": [
              "address",
              "tokenID"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "tokenID": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getLockedRewardResponse",
            "type": "object",
            "required": [
              "reward"
            ],
            "properties": {
              "reward": {
                "type": "string",
                "format": "uint64"
              }
            }
          }
        },
        {
          "name": "getLockedStakedAmount",
          "request": {
            "$id": "modules/pos/endpoint/getLockedStakedAmountRequest",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getLockedStakedAmountResponse",
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "type": "string",
                "format": "uint64"
              }
            }
          }
        },
        {
          "name": "getValidatorsByStake",
          "request": {
            "$id": "modules/pos/endpoint/getValidatorsByStakeRequest",
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getValidatorsByStakeResponse",
            "type": "object",
            "required": [
              "validators"
            ],
            "properties": {
              "validators": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "name",
                    "totalStakeReceived",
                    "selfStake",
                    "lastGeneratedHeight",
                    "isBanned",
                    "pomHeights",
                    "punishmentPeriods",
                    "consecutiveMissedBlocks"
                  ],
                  "properties": {
                    "address": {
                      "type": "string",
                      "format": "klayr32"
                    },
                    "name": {
                      "type": "string"
                    },
                    "totalStakeReceived": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "selfStake": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "lastGeneratedHeight": {
                      "type": "integer",
                      "format": "uint32"
                    },
                    "isBanned": {
                      "type": "boolean"
                    },
                    "pomHeights": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "format": "uint32"
                      }
                    },
                    "punishmentPeriods": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "start",
                          "end"
                        ],
                        "properties": {
                          "start": {
                            "type": "integer",
                            "format": "uint32"
                          },
                          "end": {
                            "type": "integer",
                            "format": "uint32"
                          }
                        }
                      }
                    },
                    "consecutiveMissedBlocks": {
                      "type": "integer",
                      "format": "uint32"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getPendingUnlocks",
          "request": {
            "$id": "modules/pos/endpoint/getPendingUnlocksRequest",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getPendingUnlocksResponse",
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "pendingUnlocks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount",
                    "unstakeHeight",
                    "expectedUnlockableHeight",
                    "unlockable"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "type": "string",
                      "format": "klayr32"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "unstakeHeight": {
                      "type": "integer",
                      "format": "uint32"
                    },
                    "expectedUnlockableHeight": {
                      "type": "integer",
                      "format": "uint32"
                    },
                    "unlockable": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getRegistrationFee",
          "response": {
            "$id": "modules/pos/endpoint/getRegistrationFeeResponse",
            "type": "object",
            "required": [
              "registrationFee"
            ],
            "properties": {
              "registrationFee": {
                "type": "string"
              }
            }
          }
        }
      ],
      "assets": [
        {
          "version": 0,
          "data": {
            "$id": "/pos/module/genesis",
            "type": "object",
            "required": [
              "validators",
              "stakers",
              "genesisData"
            ],
            "properties": {
              "validators": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "name",
                    "blsKey",
                    "proofOfPossession",
                    "generatorKey",
                    "lastGeneratedHeight",
                    "isBanned",
                    "reportMisbehaviorHeights",
                    "consecutiveMissedBlocks",
                    "commission",
                    "lastCommissionIncreaseHeight",
                    "sharingCoefficients"
                  ],
                  "properties": {
                    "address": {
                      "dataType": "bytes",
                      "format": "klayr32",
                      "fieldNumber": 1
                    },
                    "name": {
                      "dataType": "string",
                      "fieldNumber": 2,
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "blsKey": {
                      "dataType": "bytes",
                      "fieldNumber": 3,
                      "minLength": 48,
                      "maxLength": 48
                    },
                    "proofOfPossession": {
                      "dataType": "bytes",
                      "fieldNumber": 4,
                      "minLength": 96,
                      "maxLength": 96
                    },
                    "generatorKey": {
                      "dataType": "bytes",
                      "fieldNumber": 5,
                      "minLength": 32,
                      "maxLength": 32
                    },
                    "lastGeneratedHeight": {
                      "dataType": "uint32",
                      "fieldNumber": 6
                    },
                    "isBanned": {
                      "dataType": "boolean",
                      "fieldNumber": 7
                    },
                    "reportMisbehaviorHeights": {
                      "type": "array",
                      "fieldNumber": 8,
                      "items": {
                        "dataType": "uint32"
                      }
                    },
                    "consecutiveMissedBlocks": {
                      "dataType": "uint32",
                      "fieldNumber": 9
                    },
                    "commission": {
                      "dataType": "uint32",
                      "fieldNumber": 10,
                      "maximum": 10000
                    },
                    "lastCommissionIncreaseHeight": {
                      "dataType": "uint32",
                      "fieldNumber": 11
                    },
                    "sharingCoefficients": {
                      "type": "array",
                      "fieldNumber": 12,
                      "items": {
                        "type": "object",
                        "required": [
                          "tokenID",
                          "coefficient"
                        ],
                        "properties": {
                          "tokenID": {
                            "dataType": "bytes",
                            "minLength": 8,
                            "maxLength": 8,
                            "fieldNumber": 1
                          },
                          "coefficient": {
                            "dataType": "bytes",
                            "maxLength": 24,
                            "fieldNumber": 2
                          }
                        }
                      }
                    }
                  }
                }
              },
              "stakers": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "stakes",
                    "pendingUnlocks"
                  ],
                  "properties": {
                    "address": {
                      "dataType": "bytes",
                      "format": "klayr32",
                      "fieldNumber": 1
                    },
                    "stakes": {
                      "type": "array",
                      "fieldNumber": 2,
                      "items": {
                        "type": "object",
                        "required": [
                          "validatorAddress",
                          "amount",
                          "sharingCoefficients"
                        ],
                        "properties": {
                          "validatorAddress": {
                            "dataType": "bytes",
                            "format": "klayr32",
                            "fieldNumber": 1
                          },
                          "amount": {
                            "dataType": "uint64",
                            "fieldNumber": 2
                          },
                          "sharingCoefficients": {
                            "type": "array",
                            "fieldNumber": 3,
                            "items": {
                              "type": "object",
                              "required": [
                                "tokenID",
                                "coefficient"
                              ],
                              "properties": {
                                "tokenID": {
                                  "dataType": "bytes",
                                  "minLength": 8,
                                  "maxLength": 8,
                                  "fieldNumber": 1
                                },
                                "coefficient": {
                                  "dataType": "bytes",
                                  "maxLength": 24,
                                  "fieldNumber": 2
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "pendingUnlocks": {
                      "type": "array",
                      "fieldNumber": 3,
                      "items": {
                        "type": "object",
                        "required": [
                          "validatorAddress",
                          "amount",
                          "unstakeHeight"
                        ],
                        "properties": {
                          "validatorAddress": {
                            "dataType": "bytes",
                            "fieldNumber": 1,
                            "format": "klayr32"
                          },
                          "amount": {
                            "dataType": "uint64",
                            "fieldNumber": 2
                          },
                          "unstakeHeight": {
                            "dataType": "uint32",
                            "fieldNumber": 3
                          }
                        }
                      }
                    }
                  }
                }
              },
              "genesisData": {
                "type": "object",
                "fieldNumber": 3,
                "required": [
                  "initRounds",
                  "initValidators"
                ],
                "properties": {
                  "initRounds": {
                    "dataType": "uint32",
                    "fieldNumber": 1
                  },
                  "initValidators": {
                    "type": "array",
                    "fieldNumber": 2,
                    "items": {
                      "dataType": "bytes",
                      "format": "klayr32"
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "name": "pos"
    },
    {
      "commands": [],
      "events": [],
      "stores": [
        {
          "key": "2441b15f0000",
          "data": {
            "$id": "/modules/random/seedReveal",
            "type": "object",
            "required": [
              "validatorReveals"
            ],
            "properties": {
              "validatorReveals": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "generatorAddress",
                    "seedReveal",
                    "height",
                    "valid"
                  ],
                  "properties": {
                    "generatorAddress": {
                      "dataType": "bytes",
                      "minLength": 20,
                      "maxLength": 20,
                      "fieldNumber": 1
                    },
                    "seedReveal": {
                      "dataType": "bytes",
                      "minLength": 16,
                      "maxLength": 16,
                      "fieldNumber": 2
                    },
                    "height": {
                      "dataType": "uint32",
                      "fieldNumber": 3
                    },
                    "valid": {
                      "dataType": "boolean",
                      "fieldNumber": 4
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "endpoints": [
        {
          "name": "isSeedRevealValid",
          "request": {
            "$id": "/modules/random/endpoint/isSeedRevealRequest",
            "type": "object",
            "required": [
              "generatorAddress",
              "seedReveal"
            ],
            "properties": {
              "generatorAddress": {
                "type": "string",
                "format": "klayr32"
              },
              "seedReveal": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/random/endpoint/isSeedRevealRequest",
            "type": "object",
            "required": [
              "valid"
            ],
            "properties": {
              "valid": {
                "type": "boolean"
              }
            }
          }
        },
        {
          "name": "setHashOnion",
          "request": {
            "$id": "klayr/random/setSeedRequestSchema",
            "type": "object",
            "title": "Random setSeed request",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "seed": {
                "type": "string",
                "format": "hex"
              },
              "count": {
                "type": "integer",
                "minimum": 1
              },
              "distance": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        },
        {
          "name": "getHashOnionSeeds",
          "response": {
            "$id": "klayr/random/setSeedRequestSchema",
            "type": "object",
            "title": "Random setSeed request",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "seed": {
                "type": "string",
                "format": "hex"
              },
              "count": {
                "type": "integer",
                "minimum": 1
              },
              "distance": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        },
        {
          "name": "hasHashOnion",
          "request": {
            "$id": "klayr/random/addressSchema",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "klayr/random/hasHashOnionResponseSchema",
            "type": "object",
            "required": [
              "hasSeed",
              "remaining"
            ],
            "properties": {
              "hasSeed": {
                "type": "boolean"
              },
              "remaining": {
                "type": "integer",
                "format": "uint32"
              }
            }
          }
        },
        {
          "name": "getHashOnionUsage",
          "request": {
            "$id": "klayr/random/addressSchema",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            }
          },
          "response": {
            "$id": "klayr/random/getHashOnionUsageResponse",
            "type": "object",
            "required": [
              "count",
              "height",
              "seed"
            ],
            "properties": {
              "count": {
                "type": "integer",
                "format": "uint32"
              },
              "height": {
                "type": "integer",
                "format": "uint32"
              },
              "seed": {
                "type": "string",
                "format": "hex"
              }
            }
          }
        }
      ],
      "assets": [
        {
          "version": 2,
          "data": {
            "$id": "/modules/random/block/header/asset",
            "type": "object",
            "properties": {
              "seedReveal": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 16,
                "maxLength": 16
              }
            },
            "required": [
              "seedReveal"
            ]
          }
        }
      ],
      "name": "random"
    },
    {
      "commands": [
        {
          "name": "transfer",
          "params": {
            "$id": "/klayr/transferParams",
            "title": "Transfer transaction params",
            "type": "object",
            "required": [
              "tokenID",
              "amount",
              "recipientAddress",
              "data"
            ],
            "properties": {
              "tokenID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 8,
                "maxLength": 8
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 2
              },
              "recipientAddress": {
                "dataType": "bytes",
                "fieldNumber": 3,
                "format": "klayr32"
              },
              "data": {
                "dataType": "string",
                "fieldNumber": 4,
                "minLength": 0,
                "maxLength": 64
              }
            }
          }
        },
        {
          "name": "transferCrossChain",
          "params": {
            "$id": "/klayr/ccTransferParams",
            "type": "object",
            "required": [
              "tokenID",
              "amount",
              "receivingChainID",
              "recipientAddress",
              "data",
              "messageFee",
              "messageFeeTokenID"
            ],
            "properties": {
              "tokenID": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 8,
                "maxLength": 8
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 2
              },
              "receivingChainID": {
                "dataType": "bytes",
                "fieldNumber": 3,
                "minLength": 4,
                "maxLength": 4
              },
              "recipientAddress": {
                "dataType": "bytes",
                "fieldNumber": 4,
                "format": "klayr32"
              },
              "data": {
                "dataType": "string",
                "fieldNumber": 5,
                "minLength": 0,
                "maxLength": 64
              },
              "messageFee": {
                "dataType": "uint64",
                "fieldNumber": 6
              },
              "messageFeeTokenID": {
                "dataType": "bytes",
                "fieldNumber": 7,
                "minLength": 8,
                "maxLength": 8
              }
            }
          }
        }
      ],
      "events": [
        {
          "name": "transfer",
          "data": {
            "$id": "/token/events/transfer",
            "type": "object",
            "required": [
              "senderAddress",
              "recipientAddress",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "senderAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "name": "transferCrossChain",
          "data": {
            "$id": "/token/events/transferCrossChain",
            "type": "object",
            "required": [
              "senderAddress",
              "recipientAddress",
              "tokenID",
              "amount",
              "receivingChainID",
              "result"
            ],
            "properties": {
              "senderAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "receivingChainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 5
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 6
              }
            }
          }
        },
        {
          "name": "ccmTransfer",
          "data": {
            "$id": "/token/events/ccmTransfer",
            "type": "object",
            "required": [
              "senderAddress",
              "recipientAddress",
              "tokenID",
              "amount",
              "receivingChainID",
              "result"
            ],
            "properties": {
              "senderAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "receivingChainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 5
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 6
              }
            }
          }
        },
        {
          "name": "mint",
          "data": {
            "$id": "/token/events/mint",
            "type": "object",
            "required": [
              "address",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "burn",
          "data": {
            "$id": "/token/events/burn",
            "type": "object",
            "required": [
              "address",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "lock",
          "data": {
            "$id": "/token/events/lock",
            "type": "object",
            "required": [
              "address",
              "module",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "module": {
                "dataType": "string",
                "minLength": 1,
                "maxLength": 32,
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "name": "unlock",
          "data": {
            "$id": "/token/events/unlock",
            "type": "object",
            "required": [
              "address",
              "module",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "module": {
                "dataType": "string",
                "minLength": 1,
                "maxLength": 32,
                "fieldNumber": 2
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 3
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 4
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 5
              }
            }
          }
        },
        {
          "name": "initializeToken",
          "data": {
            "$id": "/token/events/initializeTokenEvent",
            "type": "object",
            "required": [
              "tokenID",
              "result"
            ],
            "properties": {
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 1
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "initializeUserAccount",
          "data": {
            "$id": "/token/events/initializeUserAccount",
            "type": "object",
            "required": [
              "address",
              "tokenID",
              "initializationFee",
              "result"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 1
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "initializationFee": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "initializeEscrowAccount",
          "data": {
            "$id": "/token/events/initializeEscrowAccount",
            "type": "object",
            "required": [
              "chainID",
              "tokenID",
              "initializationFee",
              "result"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "initializationFee": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "recover",
          "data": {
            "$id": "/token/events/recover",
            "type": "object",
            "required": [
              "terminatedChainID",
              "tokenID",
              "amount",
              "result"
            ],
            "properties": {
              "terminatedChainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              },
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "beforeCCCExecution",
          "data": {
            "$id": "/token/events/beforeCCCExecution",
            "type": "object",
            "required": [
              "ccmID",
              "messageFeeTokenID",
              "relayerAddress",
              "result"
            ],
            "properties": {
              "ccmID": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "messageFeeTokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "relayerAddress": {
                "dataType": "bytes",
                "format": "klayr32",
                "fieldNumber": 3
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "beforeCCMForwarding",
          "data": {
            "$id": "/token/events/beforeCCMForwarding",
            "type": "object",
            "required": [
              "ccmID",
              "messageFeeTokenID",
              "result"
            ],
            "properties": {
              "ccmID": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "messageFeeTokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 2
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "allTokensSupported",
          "data": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        },
        {
          "name": "allTokensSupportRemoved",
          "data": {
            "$id": "/klayr/empty",
            "type": "object",
            "properties": {}
          }
        },
        {
          "name": "allTokensFromChainSupported",
          "data": {
            "$id": "/token/events/allTokensFromChainSupported",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "name": "allTokensFromChainSupportRemoved",
          "data": {
            "$id": "/token/events/allTokensFromChainSupportRemoved",
            "type": "object",
            "required": [
              "chainID"
            ],
            "properties": {
              "chainID": {
                "dataType": "bytes",
                "minLength": 4,
                "maxLength": 4,
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "name": "tokenIDSupported",
          "data": {
            "$id": "/token/events/tokenIDSupported",
            "type": "object",
            "required": [
              "tokenID"
            ],
            "properties": {
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "name": "tokenIDSupportRemoved",
          "data": {
            "$id": "/token/events/tokenIDSupportRemoved",
            "type": "object",
            "required": [
              "tokenID"
            ],
            "properties": {
              "tokenID": {
                "dataType": "bytes",
                "minLength": 8,
                "maxLength": 8,
                "fieldNumber": 1
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "3c469e9d0000",
          "data": {
            "$id": "/token/store/user",
            "type": "object",
            "required": [
              "availableBalance",
              "lockedBalances"
            ],
            "properties": {
              "availableBalance": {
                "dataType": "uint64",
                "fieldNumber": 1
              },
              "lockedBalances": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "module",
                    "amount"
                  ],
                  "properties": {
                    "module": {
                      "dataType": "string",
                      "fieldNumber": 1,
                      "minLength": 1,
                      "maxLength": 32
                    },
                    "amount": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              }
            }
          }
        },
        {
          "key": "3c469e9d8000",
          "data": {
            "$id": "/token/store/supply",
            "type": "object",
            "required": [
              "totalSupply"
            ],
            "properties": {
              "totalSupply": {
                "dataType": "uint64",
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "key": "3c469e9d4000",
          "data": {
            "$id": "/token/store/escrow",
            "type": "object",
            "required": [
              "amount"
            ],
            "properties": {
              "amount": {
                "dataType": "uint64",
                "fieldNumber": 1
              }
            }
          }
        },
        {
          "key": "3c469e9dc000",
          "data": {
            "$id": "/token/store/supportedTokens",
            "type": "object",
            "required": [
              "supportedTokenIDs"
            ],
            "properties": {
              "supportedTokenIDs": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "dataType": "bytes",
                  "minLength": 8,
                  "maxLength": 8
                }
              }
            }
          }
        }
      ],
      "endpoints": [
        {
          "name": "getBalance",
          "request": {
            "$id": "/token/endpoint/getBalance",
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "tokenID": {
                "type": "string",
                "format": "hex",
                "minLength": 16,
                "maxLength": 16
              }
            },
            "required": [
              "address",
              "tokenID"
            ]
          },
          "response": {
            "$id": "/token/endpoint/getBalanceResponse",
            "type": "object",
            "required": [
              "availableBalance",
              "lockedBalances"
            ],
            "properties": {
              "availableBalance": {
                "type": "string",
                "format": "uint64"
              },
              "lockedBalances": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "module",
                    "amount"
                  ],
                  "properties": {
                    "module": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getBalances",
          "request": {
            "$id": "/token/endpoint/getBalance",
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              }
            },
            "required": [
              "address"
            ]
          },
          "response": {
            "$id": "/token/endpoint/getBalancesResponse",
            "type": "object",
            "required": [
              "balances"
            ],
            "properties": {
              "balances": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "availableBalance",
                    "lockedBalances",
                    "tokenID"
                  ],
                  "properties": {
                    "tokenID": {
                      "type": "string",
                      "format": "hex"
                    },
                    "availableBalance": {
                      "type": "string",
                      "format": "uint64"
                    },
                    "lockedBalances": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "module",
                          "amount"
                        ],
                        "properties": {
                          "module": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "string",
                            "format": "uint64"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getTotalSupply",
          "response": {
            "$id": "/token/endpoint/getTotalSupplyResponse",
            "type": "object",
            "properties": {
              "totalSupply": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "totalSupply",
                    "tokenID"
                  ],
                  "properties": {
                    "tokenID": {
                      "type": "string",
                      "format": "hex"
                    },
                    "totalSupply": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getSupportedTokens",
          "response": {
            "$id": "/token/endpoint/getSupportedTokensResponse",
            "type": "object",
            "properties": {
              "tokenIDs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "hex"
                }
              }
            }
          }
        },
        {
          "name": "isSupported",
          "request": {
            "$id": "/token/endpoint/isSupportedRequest",
            "type": "object",
            "properties": {
              "tokenID": {
                "type": "string",
                "format": "hex",
                "minLength": 16,
                "maxLength": 16
              }
            },
            "required": [
              "tokenID"
            ]
          },
          "response": {
            "$id": "/token/endpoint/isSupportedResponse",
            "type": "object",
            "properties": {
              "supported": {
                "dataType": "boolean"
              }
            },
            "required": [
              "supported"
            ]
          }
        },
        {
          "name": "getEscrowedAmounts",
          "response": {
            "$id": "/token/endpoint/getEscrowedAmountsResponse",
            "type": "object",
            "properties": {
              "escrowedAmounts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "escrowChainID",
                    "totalSupply",
                    "tokenID"
                  ],
                  "properties": {
                    "escrowChainID": {
                      "type": "string",
                      "format": "hex"
                    },
                    "tokenID": {
                      "type": "string",
                      "format": "hex"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "getInitializationFees",
          "response": {
            "$id": "/token/endpoint/getInitializationFees",
            "type": "object",
            "properties": {
              "userAccount": {
                "type": "string",
                "format": "uint64"
              },
              "escrowAccount": {
                "type": "string",
                "format": "uint64"
              }
            },
            "required": [
              "userAccount",
              "escrowAccount"
            ]
          }
        },
        {
          "name": "hasUserAccount",
          "request": {
            "$id": "/token/endpoint/hasUserAccountRequest",
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "format": "klayr32"
              },
              "tokenID": {
                "type": "string",
                "format": "hex",
                "minLength": 16,
                "maxLength": 16
              }
            },
            "required": [
              "address",
              "tokenID"
            ]
          },
          "response": {
            "$id": "/token/endpoint/hasUserAccountResponse",
            "type": "object",
            "properties": {
              "exists": {
                "type": "boolean"
              }
            }
          }
        },
        {
          "name": "hasEscrowAccount",
          "request": {
            "$id": "/token/endpoint/hasEscrowAccountRequest",
            "type": "object",
            "properties": {
              "tokenID": {
                "type": "string",
                "format": "hex",
                "minLength": 16,
                "maxLength": 16
              },
              "escrowChainID": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "tokenID",
              "escrowChainID"
            ]
          },
          "response": {
            "$id": "/token/endpoint/hasEscrowAccountResponse",
            "type": "object",
            "properties": {
              "exists": {
                "type": "boolean"
              }
            }
          }
        }
      ],
      "assets": [
        {
          "version": 0,
          "data": {
            "$id": "/token/module/genesis",
            "type": "object",
            "required": [
              "userSubstore",
              "supplySubstore",
              "escrowSubstore",
              "supportedTokensSubstore"
            ],
            "properties": {
              "userSubstore": {
                "type": "array",
                "fieldNumber": 1,
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "tokenID",
                    "availableBalance",
                    "lockedBalances"
                  ],
                  "properties": {
                    "address": {
                      "dataType": "bytes",
                      "format": "klayr32",
                      "fieldNumber": 1
                    },
                    "tokenID": {
                      "dataType": "bytes",
                      "fieldNumber": 2,
                      "minLength": 8,
                      "maxLength": 8
                    },
                    "availableBalance": {
                      "dataType": "uint64",
                      "fieldNumber": 3
                    },
                    "lockedBalances": {
                      "type": "array",
                      "fieldNumber": 4,
                      "items": {
                        "type": "object",
                        "required": [
                          "module",
                          "amount"
                        ],
                        "properties": {
                          "module": {
                            "dataType": "string",
                            "minLength": 1,
                            "maxLength": 32,
                            "fieldNumber": 1
                          },
                          "amount": {
                            "dataType": "uint64",
                            "fieldNumber": 2
                          }
                        }
                      }
                    }
                  }
                }
              },
              "supplySubstore": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "tokenID",
                    "totalSupply"
                  ],
                  "properties": {
                    "tokenID": {
                      "dataType": "bytes",
                      "fieldNumber": 1,
                      "minLength": 8,
                      "maxLength": 8
                    },
                    "totalSupply": {
                      "dataType": "uint64",
                      "fieldNumber": 2
                    }
                  }
                }
              },
              "escrowSubstore": {
                "type": "array",
                "fieldNumber": 3,
                "items": {
                  "type": "object",
                  "required": [
                    "escrowChainID",
                    "tokenID",
                    "amount"
                  ],
                  "properties": {
                    "escrowChainID": {
                      "dataType": "bytes",
                      "minLength": 4,
                      "maxLength": 4,
                      "fieldNumber": 1
                    },
                    "tokenID": {
                      "dataType": "bytes",
                      "fieldNumber": 2,
                      "minLength": 8,
                      "maxLength": 8
                    },
                    "amount": {
                      "dataType": "uint64",
                      "fieldNumber": 3
                    }
                  }
                }
              },
              "supportedTokensSubstore": {
                "type": "array",
                "fieldNumber": 4,
                "items": {
                  "type": "object",
                  "required": [
                    "chainID",
                    "supportedTokenIDs"
                  ],
                  "properties": {
                    "chainID": {
                      "dataType": "bytes",
                      "minLength": 4,
                      "maxLength": 4,
                      "fieldNumber": 1
                    },
                    "supportedTokenIDs": {
                      "type": "array",
                      "fieldNumber": 2,
                      "items": {
                        "dataType": "bytes",
                        "minLength": 8,
                        "maxLength": 8
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "name": "token"
    },
    {
      "commands": [],
      "events": [
        {
          "name": "generatorKeyRegistration",
          "data": {
            "$id": "/validators/event/generatorKeyRegData",
            "type": "object",
            "required": [
              "generatorKey",
              "result"
            ],
            "properties": {
              "generatorKey": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 1
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "blsKeyRegistration",
          "data": {
            "$id": "/validators/event/blsKeyRegData",
            "type": "object",
            "required": [
              "blsKey",
              "result"
            ],
            "properties": {
              "blsKey": {
                "dataType": "bytes",
                "minLength": 48,
                "maxLength": 48,
                "fieldNumber": 1
              },
              "proofOfPossession": {
                "dataType": "bytes",
                "minLength": 96,
                "maxLength": 96,
                "fieldNumber": 2
              },
              "result": {
                "dataType": "uint32",
                "fieldNumber": 3
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "66d18af40000",
          "data": {
            "$id": "/validators/validatorAccountSubStore",
            "title": "Validators Account Keys",
            "type": "object",
            "properties": {
              "generatorKey": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "minLength": 32,
                "maxLength": 32
              },
              "blsKey": {
                "dataType": "bytes",
                "fieldNumber": 2,
                "minLength": 48,
                "maxLength": 48
              }
            },
            "required": [
              "generatorKey",
              "blsKey"
            ]
          }
        },
        {
          "key": "66d18af48000",
          "data": {
            "$id": "/validators/validatorsParams",
            "type": "object",
            "required": [
              "validators",
              "preCommitThreshold",
              "certificateThreshold"
            ],
            "properties": {
              "preCommitThreshold": {
                "fieldNumber": 1,
                "dataType": "uint64"
              },
              "certificateThreshold": {
                "fieldNumber": 2,
                "dataType": "uint64"
              },
              "validators": {
                "fieldNumber": 3,
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "address",
                    "bftWeight",
                    "generatorKey",
                    "blsKey"
                  ],
                  "properties": {
                    "address": {
                      "fieldNumber": 1,
                      "dataType": "bytes",
                      "format": "klayr32"
                    },
                    "bftWeight": {
                      "fieldNumber": 2,
                      "dataType": "uint64"
                    },
                    "generatorKey": {
                      "fieldNumber": 3,
                      "dataType": "bytes"
                    },
                    "blsKey": {
                      "fieldNumber": 4,
                      "dataType": "bytes"
                    }
                  }
                }
              }
            }
          }
        },
        {
          "key": "66d18af44000",
          "data": {
            "$id": "/validators/blsKeyData",
            "title": "Validators Addresses",
            "type": "object",
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1
              }
            },
            "required": [
              "address"
            ]
          }
        }
      ],
      "endpoints": [
        {
          "name": "validateBKLYey",
          "request": {
            "$id": "/validators/endpoint/validateBKLYeyRequest",
            "title": "Bls Key Properties",
            "type": "object",
            "properties": {
              "proofOfPossession": {
                "type": "string",
                "format": "hex"
              },
              "blsKey": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "proofOfPossession",
              "blsKey"
            ]
          },
          "response": {
            "$id": "/validators/endpoint/validateBKLYeyResponse",
            "title": "Bls Key Properties",
            "type": "object",
            "properties": {
              "valid": {
                "type": "boolean"
              }
            },
            "required": [
              "valid"
            ]
          }
        },
        {
          "name": "getValidator",
          "request": {
            "$id": "/validators/endpoint/getValidatorRequest",
            "title": "Validator properties",
            "type": "object",
            "properties": {
              "address": {
                "dataType": "string",
                "format": "klayr32"
              }
            },
            "required": [
              "address"
            ]
          },
          "response": {
            "$id": "/validators/endpoint/getValidatorResponse",
            "title": "Validator properties",
            "type": "object",
            "properties": {
              "generatorKey": {
                "type": "string",
                "format": "hex"
              },
              "blsKey": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "generatorKey",
              "blsKey"
            ]
          }
        }
      ],
      "assets": [],
      "name": "validators"
    }
  ]
}

passphrase

Commands relating to Klayr Core passphrases.

USAGE
  $ klayr-core passphrase

COMMANDS
  passphrase:create   Returns a randomly generated 24 words mnemonic passphrase.
  passphrase:decrypt  Decrypt secret passphrase using the password provided at the time of encryption.
  passphrase:encrypt  Encrypt secret passphrase using password.

passphrase:create

Decrypts the secret passphrase using the password provided at the time of encryption.

USAGE
  $ klayr-core passphrase:create

OPTIONS
  -o, --output=output  The output directory. Default will set to current working directory.

EXAMPLES
  passphrase:create
  passphrase:create --output /mypath/passphrase.json
Example
klayr-core passphrase:create
Response
{
  "passphrase": "lava empower laundry taxi believe cute boss stairs bicycle vivid dirt vendor accuse identify general run knock medal chief space remain flush extra bike"
}

passphrase:decrypt

Decrypts the secret passphrase using the password provided at the time of encryption.

USAGE
  $ klayr-core passphrase:decrypt

OPTIONS
  -f, --file-path=file-path  (required) Path of the file to import from

  -w, --password=password    Specifies a source for your secret password. Command will prompt you for input if this
                             option is not set.
                             Examples:
                             - --password=pass:password123 (should only be used where security is not important)

EXAMPLES
  passphrase:decrypt --file-path ./my/path/output.json
  passphrase:decrypt --file-path ./my/path/output.json --password your-password
Example
klayr-core passphrase:decrypt --file-path ./my/path/keys.json
Response
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{"passphrase":"my secret passphrase"}

passphrase:encrypt

Encrypts the secret passphrase using a password.

USAGE
  $ klayr-core passphrase:encrypt

OPTIONS
  -o, --output=output          The output directory. Default will set to current working directory.

  -p, --passphrase=passphrase  Specifies a source for your secret passphrase. Command will prompt you for input if this
                               option is not set.
                               Examples:
                               - --passphrase='my secret passphrase' (should only be used where security is not
                               important)

  -w, --password=password      Specifies a source for your secret password. Command will prompt you for input if this
                               option is not set.
                               Examples:
                               - --password=pass:password123 (should only be used where security is not important)

  --output-public-key          Includes the public key in the output. This option is provided for the convenience of
                               node operators.

EXAMPLES
  passphrase:encrypt
  passphrase:encrypt --passphrase your-passphrase --output /mypath/keys.json
  passphrase:encrypt --password your-password
  passphrase:encrypt --password your-password --passphrase your-passphrase --output /mypath/keys.json
  passphrase:encrypt --output-public-key --output /mypath/keys.json
Example
klayr-core passphrase:encrypt -p 'my secret passphrase'
Response
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{
  "encryptedPassphrase": {
    "ciphertext": "f0abd47a3095f288f3b291a883222cd64d7748b0",
    "mac": "f88e98d461c9be73bcf8f3b37e5e8123a7f7ce351fcdf3b9c9f226f5e07d9cda",
    "kdf": "argon2id",
    "kdfparams": {
      "parallelism": 4,
      "iterations": 1,
      "memorySize": 2024,
      "salt": "a5e440ce3bc216ec8b2bc122155971c9"
    },
    "cipher": "aes-256-gcm",
    "cipherparams": {
      "iv": "272b5a4caa0b3605ae9837b0",
      "tag": "7a0601cc12ca169300aba9a9f53c652b"
    },
    "version": "1"
  }
}

sdk

Commands relating to Klayr SDK development.

USAGE
  $ klayr-core sdk

COMMANDS
  sdk:link  Symlink specific SDK folder during development.

Creates a symbolic link to the specified SDK folder during development.

USAGE
  $ klayr-core sdk:link TARGETSDKFOLDER

ARGUMENTS
  TARGETSDKFOLDER  The path to the klayr SDK folder

EXAMPLE
  sdk:link /path/to/klayr-sdk/sdk
Example
klayr-core sdk:link ~/XYZ/Documents/GitHub/klayr-sdk
Response
Linked /Users/XYZ/Documents/GitHub/klayr-sdk to /klayr-sdk.

transaction

Commands relating to Klayr Core transactions.

USAGE
  $ klayr-core transaction

COMMANDS
  transaction:create  Create transaction which can be broadcasted to the network. Note: fee and amount should be in Beddows!!
  transaction:get     Get transaction from local node by ID.
  transaction:send    Send transaction to the local node.
  transaction:sign    Sign encoded transaction.

transaction:create

Creates a transaction that can be broadcast to the network.

The fee and amount are expected in Beddows!
USAGE
  $ klayr-core transaction:create MODULE COMMAND FEE

ARGUMENTS
  MODULE   Registered transaction module.
  COMMAND  Registered transaction command.
  FEE      Transaction fee in Beddows.

OPTIONS
  -a, --params=params                            Creates transaction with specific params information

  -d, --data-path=data-path                      Directory path to specify where node data is stored. Environment
                                                 variable "KLAYR_DATA_PATH" can also be used.

  -f, --file=file                                The file to upload.
                                                 Example:
                                                 --file=./myfile.json

  -j, --json                                     Print the transaction in JSON format.

  -k, --key-derivation-path=key-derivation-path  [default: m/44'/134'/0'] Key derivation path to use to derive keypair
                                                 from passphrase

  -p, --passphrase=passphrase                    Specifies a source for your secret passphrase. Command will prompt you
                                                 for input if this option is not set.
                                                 Examples:
                                                 - --passphrase='my secret passphrase' (should only be used where
                                                 security is not important)

  -s, --sender-public-key=sender-public-key      Set a custom senderPublicKey property for the transaction, to be used
                                                 when account address does not correspond to signer's private key

  --chain-id=chain-id

  --no-signature                                 Creates the transaction without a signature. Your passphrase will
                                                 therefore not be required

  --nonce=nonce                                  Nonce of the transaction.

  --offline                                      Specify whether to connect to a local node or not.

  --pretty                                       Prints JSON in pretty format rather than condensed.

  --send                                         Create and immediately send transaction to a node

EXAMPLES
  transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
  ss":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'
  transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
  ss":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}' --json
  transaction:create token transfer 100000000 --offline --network mainnet --chain-id 10000000 --nonce 1 --params='{"amou
  nt":100000000,"tokenID":"0400000000000000","recipientAddress":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send
   token"}'
  transaction:create token transfer 100000000 --file=/txn_params.json
  transaction:create token transfer 100000000 --file=/txn_params.json --json
Example
klayr-core transaction:create token transfer 100000000
Response
? Please enter passphrase:  [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter: tokenID:  0400000000000000
? Please enter: amount:  1
? Please enter: recipientAddress:  klyz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp
? Please enter: data:  Sending tokens
{"transaction":"0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"}

transaction:get

Gets a transaction from the local node by ID.

USAGE
  $ klayr-core transaction:get ID

ARGUMENTS
  ID  Transaction ID in hex format.

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLE
  transaction:get eab06c6a22e88bca7150e0347a7d976acd070cb9284423e6eabecd657acc1263
Example
klayr-core transaction:get ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31 --pretty
Response
{
  "module": "token",
  "command": "transfer",
  "params": {
    "tokenID": "0400000000000000",
    "amount": "1",
    "recipientAddress": "klyz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp",
    "data": "Sending tokens"
  },
  "nonce": "0",
  "fee": "100000000",
  "senderPublicKey": "3972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
  "signatures": [
    "497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"
  ],
  "id": "ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31"
}

transaction:send

Sends a transaction to the local node.

USAGE
  $ klayr-core transaction:send TRANSACTION

ARGUMENTS
  TRANSACTION  A transaction to be sent to the node encoded as hex string

OPTIONS
  -d, --data-path=data-path  Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
                             can also be used.

  --pretty                   Prints JSON in pretty format rather than condensed.

EXAMPLE
  transaction:send 080810011880cab5ee012220fd061b9146691f3c56504be051175d5b76d1b1d0179c5c4370e18534c58821222a2408641214a
  b0041a7d3f7b2c290b5b834d46bdc7b7eb858151a0a73656e6420746f6b656e324028edd3601cdc35a41bb23415a0d9f3c3e9cf188d9971adf1874
  2cea39d58aa84809aa87bcfe6feaac46211c80472ad9297fd87727709f5d7e7b4134caf106b02
Example
klayr-core transaction:send 0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109
Response
Transaction with id: 'ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31' received by node.

transaction:sign

Signs an encoded transaction.

USAGE
  $ klayr-core transaction:sign TRANSACTION

ARGUMENTS
  TRANSACTION  The transaction to be signed encoded as hex string

OPTIONS
  -d, --data-path=data-path                      Directory path to specify where node data is stored. Environment
                                                 variable "KLAYR_DATA_PATH" can also be used.

  -j, --json                                     Print the transaction in JSON format.

  -k, --key-derivation-path=key-derivation-path  [default: m/44'/134'/0'] Key derivation path to use to derive keypair
                                                 from passphrase

  -p, --passphrase=passphrase                    Specifies a source for your secret passphrase. Command will prompt you
                                                 for input if this option is not set.
                                                 Examples:
                                                 - --passphrase='my secret passphrase' (should only be used where
                                                 security is not important)

  --chain-id=chain-id

  --mandatory-keys=mandatory-keys                Mandatory publicKey string in hex format.

  --offline                                      Specify whether to connect to a local node or not.

  --optional-keys=optional-keys                  Optional publicKey string in hex format.

  --pretty                                       Prints JSON in pretty format rather than condensed.

EXAMPLES
  transaction:sign <hex-encoded-binary-transaction>
  transaction:sign <hex-encoded-binary-transaction> --network testnet
Example
klayr-core transaction:sign 0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06 --pretty
Response
? Please enter passphrase:  [hidden]
? Please re-enter passphrase:  [hidden]
{
  "transaction": "0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06"
}