= Core CLI
Muhammad Talha <muhammad.talha@lightcurve.io>
:description: All available CLI commands and topics for Lisk Core including the config file structure are covered here.
:toc: preamble
:toclevels: 5
:page-toclevels: 4
:url_sdk_references_config: master@lisk-sdk::references/config.adoc

// External URLs
:url_read_eval_print_loop: https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop

The *Core CLI* is a command-line interface that is available for every Lisk Core node.

A complete CLI reference of a mainchain node is summarized on this page.

[[clo]]
== Commands

=== help
Displays a summary of all available CLI commands of Lisk Core.

[source,bash]
----
Lisk blockchain application platform

VERSION
  lisk-core/4.0.0 darwin-arm64 node-v18.16.0

USAGE
  $ lisk-core [COMMAND]

TOPICS
  block          Commands relating to Lisk Core blocks.
  blockchain     Commands relating to Lisk Core blockchain data.
  config         Commands relating to Lisk 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 Lisk Core node.
  passphrase     Commands relating to Lisk Core passphrases.
  sdk            Commands relating to Lisk SDK development.
  transaction    Commands relating to Lisk Core transactions.

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


=== autocomplete
Displays autocomplete installation instructions.

[source,bash]
----
USAGE
  $ lisk-core autocomplete [SHELL] [-r]

ARGUMENTS
  SHELL  shell type

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

DESCRIPTION
  display autocomplete installation instructions

EXAMPLES
  $ lisk-core autocomplete

  $ lisk-core autocomplete bash

  $ lisk-core autocomplete zsh

  $ lisk-core autocomplete --refresh-cache
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core autocomplete
Building the autocomplete cache... done

Setup Instructions for LISK-CORE CLI Autocomplete ---

1) Add the autocomplete env var to your zsh profile and source it
$ printf "eval $(lisk-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.:
$ lisk-core <TAB>                 # Command completion
$ lisk-core command --<TAB>       # Flag completion

Enjoy!
----
====

=== console
Provides an interactive Javascript {url_read_eval_print_loop}[REPL] session to run LISK commands.

[source,bash]
----
USAGE
  $ lisk-core console [--api-ipc <value>] [--api-ws <value>]

FLAGS
  --api-ipc=<value>  Enable api-client with IPC communication.
  --api-ws=<value>   Enable api-client with Websocket communication.

DESCRIPTION
  Lisk interactive REPL session to run commands.

EXAMPLES
  console

  console --api-ws=ws://localhost:8080

  console --api-ipc=/path/to/server
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core console
Entering Lisk REPL: type `Ctrl+C` or `.exit` to exit
lisk-core >
----
====

=== hash-onion
Creates hash onions to be used by a generator.

[source,bash]
----
USAGE
  $ lisk-core hash-onion [-o <value>] [-c <value>] [-d <value>] [--pretty]

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

DESCRIPTION
  Create hash onions to be used by the generator.

EXAMPLES
  hash-onion --count=1000000 --distance=2000 --pretty

  hash-onion --count=1000000 --distance=2000 --output ~/my_onion.json
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core hash-onion --count=10 --distance=2 --pretty 
{
  "count": 10,
  "distance": 2,
  "hashes": [
    "e27512a5720052cd61308bef373e9312",
    "3cef453ee632c86651e54ce79614c05e",
    "7ceaefaa0c13111ca93e811a78b26c4e",
    "625b905e51992a1b5a018bca8e37cf4a",
    "6652faaab3427351a8a6c4ac26a19968",
    "eafe02868d94dcedbcf8630776311454"
  ]
}
----
====

=== start
Starts the blockchain node.

[source,bash]
----
USAGE
  $ lisk-core start [-d <value>] [-n <value>] [-c <value>] [--overwrite-config] [-p <value>] [--api-ipc] [--api-ws] [--api-http] [--api-port <value>]
    [--api-host <value>] [-l trace|debug|info|warn|error|fatal] [--seed-peers <value>] [--enable-forger-plugin] [--enable-monitor-plugin] [--monitor-plugin-port <value>]
    [--monitor-plugin-whitelist <value>] [--enable-report-misbehavior-plugin] [--enable-faucet-plugin] [--faucet-plugin-port <value>] [--enable-dashboard-plugin]
    [--dashboard-plugin-port <value>] [--enable-chain-connector-plugin]

FLAGS
  -c, --config=<value>                File path to a custom config. Environment variable "LISK_CONFIG_FILE" can also be used.
  -d, --data-path=<value>             Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -l, --log=<option>                  Log level. Environment variable "LISK_LOG_LEVEL" can also be used.
                                      <options: trace|debug|info|warn|error|fatal>
  -n, --network=<value>               [default: default] Default network config to use. Environment variable "LISK_NETWORK" can also be used.
  -p, --port=<value>                  Open port for the peer to peer incoming connections. Environment variable "LISK_PORT" can also be used.
  --api-host=<value>                  Host to be used for api-client. Environment variable "LISK_API_HOST" can also be used.
  --api-http                          Enable HTTP communication for api-client. Environment variable "LISK_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 "LISK_API_IPC"
                                      can also be used.
  --api-port=<value>                  Port to be used for api-client. Environment variable "LISK_API_PORT" can also be used.
  --api-ws                            Enable websocket communication for api-client. Environment variable "LISK_API_WS" can also be used.
  --dashboard-plugin-port=<value>     Port to be used for Dashboard Plugin. Environment variable "LISK_DASHBOARD_PLUGIN_PORT" can also be used.
  --enable-chain-connector-plugin     Enable Chain Connector Plugin. Environment variable "LISK_ENABLE_CHAIN_CONNECTOR_PLUGIN" can also be used.
  --enable-dashboard-plugin           Enable Dashboard Plugin. Environment variable "LISK_ENABLE_DASHBOARD_PLUGIN" can also be used.
  --enable-faucet-plugin              Enable Faucet Plugin. Environment variable "LISK_ENABLE_FAUCET_PLUGIN" can also be used.
  --enable-forger-plugin              Enable Forger Plugin. Environment variable "LISK_ENABLE_FORGER_PLUGIN" can also be used.
  --enable-monitor-plugin             Enable Monitor Plugin. Environment variable "LISK_ENABLE_MONITOR_PLUGIN" can also be used.
  --enable-report-misbehavior-plugin  Enable ReportMisbehavior Plugin. Environment variable "LISK_ENABLE_REPORT_MISBEHAVIOR_PLUGIN" can also be used.
  --faucet-plugin-port=<value>        Port to be used for Faucet Plugin. Environment variable "LISK_FAUCET_PLUGIN_PORT" can also be used.
  --monitor-plugin-port=<value>       Port to be used for Monitor Plugin. Environment variable "LISK_MONITOR_PLUGIN_PORT" can also be used.
  --monitor-plugin-whitelist=<value>  List of IPs in comma separated value to allow the connection. Environment variable "LISK_MONITOR_PLUGIN_WHITELIST" can also be used.
  --overwrite-config                  Overwrite network configs if they exist already
  --seed-peers=<value>                Seed peers to initially connect to in format of comma separated "ip:port". IP can be DNS name or IPV4 format. Environment variable
                                      "LISK_SEED_PEERS" can also be used.

DESCRIPTION
  Start Blockchain Node.

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
[%collapsible]
====
[source,bash]
----
$ lisk-core start --network devnet --api-ws
----
====

== Topics

=== block
Commands relating to Lisk Core blocks.

[source,bash]
----
USAGE
  $ lisk-core block COMMAND

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

==== block:get
Gets block information for a given id or height.

[source,bash]
----
USAGE
  $ lisk-core block:get [INPUT] [-d <value>] [--pretty]

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

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Get block information for a given id or height.

EXAMPLES
  block:get e082e79d01016632c451c9df9276e486cb7f460dc793ff5b10d8f71eecec28b4

  block:get 2
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core block:get 2 --pretty
{
  "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": "lsket9bd2coqrbbojp2fnj744atmuk6ys6yumu384",
    "maxHeightPrevoted": 0,
    "maxHeightGenerated": 0,
    "impliesMaxPrevotes": true,
    "signature": "dd76712757a43d1324e2f3e40adea505f8a48a30760301d379321ff483fb2ff136f83877b6a4c12bfd23dd374461be1bc8212ccb07ba3fc4dbbb6f58babc6004",
    "id": "f74a3057308ef04fbececeda16b2cb65226f076bb8d2bf026e3982b860758b6d"
  },
  "transactions": [],
  "assets": [
    {
      "module": "random",
      "data": {
        "seedReveal": "efb5d9ada0e8e85cb4f97efa61a1e5ee"
      }
    }
  ]
}
----
====


=== blockchain
Commands relating to Lisk Core blockchain data.

[source,bash]
----
USAGE
  $ lisk-core blockchain:COMMAND

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>.

[source,bash]
----
USAGE
  $ lisk-core blockchain:download [-n <value>] [-o <value>] [-u <value>]

FLAGS
  -n, --network=<value>  [default: mainnet] Default network config to use. Environment variable "LISK_NETWORK" can also be used.
  -o, --output=<value>   Directory path to specify where snapshot is downloaded. By default outputs the files to current working directory.
  -u, --url=<value>      The url to the snapshot.

DESCRIPTION
  Download snapshot from <URL>.

EXAMPLES
  blockchain:download

  blockchain:download --network betanet

  blockchain:download --url https://snapshots.lisk.com/mainnet/blockchain.db.tar.gz --output ./downloads

----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core blockchain:download
Downloading snapshot from https://snapshots.lisk.com/mainnet/blockchain.db.tar.gz to /Users/XYZ
Downloaded to path: /Users/XYZ
----
====


==== blockchain:export
Exports the blockchain's data to a file.

[source,bash]
----
USAGE
  $ lisk-core blockchain:export [-d <value>] [-o <value>]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -o, --output=<value>     The output directory. Default will set to current working directory.

DESCRIPTION
  Export to <FILE>.

EXAMPLES
  blockchain:export

  blockchain:export --data-path ./data --output ./my/path/
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core blockchain:export
Exporting blockchain:
   /Users/XYZ/.lisk/lisk-core/data
Export completed:
   /Users/XYZ/blockchain.tar.gz
----
====

==== blockchain:hash
Generates SHA256 hash from the blockchain\'s data.

[source,bash]
----
USAGE
  $ lisk-core blockchain:hash [-d <value>]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.

DESCRIPTION
  Generate SHA256 hash from <PATH>.

EXAMPLES
  blockchain:hash

  blockchain:hash --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core blockchain:hash --data-path /Users/xyz/blockchain.db
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
----
====

==== blockchain:import
Imports the blockchain's data from a file.

[source,bash]
----
USAGE
  $ lisk-core blockchain:import [FILEPATH] [-d <value>] [-f]

ARGUMENTS
  FILEPATH  Path to the gzipped blockchain data.

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -f, --force              Delete and overwrite existing blockchain data

DESCRIPTION
  Import from <FILE>.

EXAMPLES
  blockchain:import ./path/to/blockchain.tar.gz

  blockchain:import ./path/to/blockchain.tar.gz --data-path ./lisk/

  blockchain:import ./path/to/blockchain.tar.gz --data-path ./lisk/ --force
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core blockchain:import /Users/XYZ/blockchain.tar.gz --force
Importing blockchain from /Users/XYZ/blockchain.tar.gz
Import completed.
   /Users/XYZ/.lisk/lisk-core
----
====


==== blockchain:reset
Resets the blockchain's data.

[source,bash]
----
USAGE
  $ lisk-core blockchain:reset [-d <value>] [-y]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -y, --yes                Skip confirmation prompt.

DESCRIPTION
  Reset the blockchain data.

EXAMPLES
  blockchain:reset

  blockchain:reset --data-path ./lisk

  blockchain:reset --yes
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core blockchain:reset
? 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.

[source,bash]
----
USAGE
  $ lisk-core config:COMMAND

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


==== config:create
Creates a configuration file for the blockchain application.

[source,bash]
----
USAGE
  $ lisk-core config:create -i <value> [-o <value>] [-l <value>]

FLAGS
  -i, --chain-id=<value>  (required) ChainID in hex format. For example, Lisk mainnet mainchain is 00000000
  -l, --label=<value>     [default: beta-sdk-app] App Label
  -o, --output=<value>    [default: /home/lisk/workspace/lisk-core-publish_development/lisk-core] Directory where the config file is saved

DESCRIPTION
  Creates network configuration file.

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 
[%collapsible]
====
[source,bash]
----
$ lisk-core config:create --output /Users/XYZ --chain-id 04000000
----
====


==== config:show
Shows the application's config.

[source,bash]
----
USAGE
  $ lisk-core config:show [-d <value>] [-c <value>] [--pretty]

FLAGS
  -c, --config=<value>     File path to a custom config. Environment variable "LISK_CONFIG_FILE" can also be used.
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Show application config.

EXAMPLES
  config:show

  config:show --pretty

  config:show --config ./custom-config.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core config:show --pretty
{
  "system": {
    "dataPath": "/Users/XYZ/.lisk/lisk-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": 10,
    "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": {
      "useInvalidBLSKey": false
    },
    "token": {
      "feeTokenID": "0400000000000000"
    }
  },
  "plugins": {
  }
}
----
====

=== endpoint
Commands relating to invoking and listing the endpoints.

[source,bash]
----
USAGE
  $ lisk-core endpoint:COMMAND

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

==== endpoint:invoke
Invokes the provided endpoint.

[source,bash]
----
USAGE
  $ lisk-core endpoint:invoke [ENDPOINT] [PARAMS] [-d <value>] [--pretty] [-f <value>]

ARGUMENTS
  ENDPOINT  Endpoint to invoke
  PARAMS    Endpoint parameters (Optional)

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -f, --file=<value>       Input file.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Invokes the provided endpoint.

EXAMPLES
  endpoint:invoke {endpoint} {parameters}

  endpoint:invoke --data-path --file

  endpoint:invoke generator_getAllKeys

  endpoint:invoke consensus_getBFTParameters '{"height": 2}' -d ~/.lisk/pos-mainchain --pretty

  endpoint:invoke consensus_getBFTParameters -f ./input.json
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core endpoint:invoke system_getNodeInfo --pretty
{
  "version": "4.0.0-alpha.18",
  "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": 10,
    "maxTransactionsSize": 15360,
    "chainID": "04000000"
  },
  "network": {
    "version": "1.0",
    "port": 7667,
    "seedPeers": []
  }
}
----
====

==== endpoint:list
Returns the list of all the module endpoints

[source,bash]
----
USAGE
  $ lisk-core endpoint:list [ENDPOINT] [-d <value>] [--pretty] [-m <value>] [-i]

ARGUMENTS
  ENDPOINT  Endpoint name (Optional)

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -i, --info               Prints additional info; Request and Response objects.
  -m, --module=<value>     Parent module.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Lists registered endpoints.

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 ~/.lisk/pos-mainchain
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core endpoint:list --pretty
[
  "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_validateBLSKey",
  "validators_getValidator"
]
----
====

=== generator
Commands relating to the block generation and generator-info of a blockchain.
[source,bash]
----
USAGE
  $ lisk-core generator:COMMAND

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.

[source,bash]
----
USAGE
  $ lisk-core generator:disable [ADDRESS] [-d <value>] [--pretty] [-w <value>]

ARGUMENTS
  ADDRESS  Address of an account in a lisk32 format.

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -w, --password=<value>   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.

DESCRIPTION
  Disable block generation for given validator address.

EXAMPLES
  generator:disable lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz

  generator:disable lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data

  generator:disable lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data --password your_password
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core generator:disable lskqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
? Enter password to decrypt the encrypted passphrase:  ********

Disabled block generation for lskqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
----
====

==== generator:enable
Enables block generation for a given generator\'s address.

[source,bash]
----
USAGE
  $ lisk-core generator:enable [ADDRESS] [-d <value>] [--pretty] [-w <value>] [--height <value>] [--max-height-generated <value>] [--max-height-prevoted <value>]
    [--use-status-value]

ARGUMENTS
  ADDRESS  Address of an account in a lisk32 format.

FLAGS
  -d, --data-path=<value>         Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -w, --password=<value>          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=<value>                Last generated block height.
  --max-height-generated=<value>  Validator's largest previously generated height.
  --max-height-prevoted=<value>   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

DESCRIPTION
  Enable block generation for given validator address.

EXAMPLES
  generator:enable lsk24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --use-status-value

  generator:enable lsk24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10

  generator:enable lsk24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10 --data-path ./data

  generator:enable lsk24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10 --data-path ./data --password your_password
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core generator:enable lskqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 --use-status-value

 Current block generation status for validator account lskqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 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":"lskqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3","enabled":true}
----
====


==== generator:export
Exports generator's data to a file.

[source,bash]
----
USAGE
  $ lisk-core generator:export [-d <value>] [--pretty] [-o <value>]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -o, --output=<value>     The output directory. Default will set to current working directory.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Export to <FILE>.

EXAMPLES
  generator:export --output /mypath/genInfo.json

  generator:export --output /mypath/genInfo.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core generator:export --output /Users/XYZ/genInfo.json
----
====

==== generator:import
Imports generator's data from a file.

[source,bash]
----
USAGE
  $ lisk-core generator:import -f <value> [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -f, --file-path=<value>  (required) Path of the file to import from
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Import from <FILE>.

EXAMPLES
  generator:import --file-path ./my/path/genInfo.json

  generator:import --file-path ./my/path/genInfo.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$./bin/run generator:import --file-path /Users/XYZ/genInfo.json
----
====

==== generator:status
Gets block generation information for the locally running node.

[source,bash]
----
USAGE
  $ lisk-core generator:status [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Get forging information for the locally running node.

EXAMPLES
  generator:status

  generator:status --data-path ./sample --pretty
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core generator:status --pretty
{
  "info": {
    "status":
    [{
        "address": "lskzpvesvp7p9odszcp3s4dffnj4ozqz7b79tonqp",
        "height": 574,
        "maxHeightPrevoted": 487,
        "maxHeightGenerated": 459,
        "enabled": true
      }
  ]}
}
----
====


=== genesis-block
Commands relating to the genesis block.

[source,bash]
----
USAGE
  $ lisk-core genesis-block COMMAND

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.

[source,bash]
----
USAGE
  $ lisk-core genesis-block:create -f <value> [-n <value>] [-c <value>] [-o <value>]

FLAGS
  -c, --config=<value>       File path to a custom config. Environment variable "LISK_CONFIG_FILE" can also be used.
  -f, --assets-file=<value>  (required) Path to file which contains genesis block asset in JSON format
  -n, --network=<value>      [default: default] Default network config to use. Environment variable "LISK_NETWORK" can also be used.
  -o, --output=<value>       [default: config] Output folder path of the generated genesis block

DESCRIPTION
  Creates genesis block file.

EXAMPLES
  genesis-block:create --output mydir

  genesis-block:create --output mydir --assets-file ./assets.json
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core genesis-block:create --assets-file genesis_assets.json --output ./devnet
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 reclaimLSK
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.16.0/lib/node_modules/lisk-core/config/devnet/devnet
----
====



==== genesis-block:download
Download genesis block.

[source,bash]
----
USAGE
  $ lisk-core genesis-block:download [-d <value>] [-n <value>] [-u <value>] [-f]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored.
                           Environment variable "LISK_DATA_PATH" can also be
                           used.
  -f, --force              Delete and overwrite existing blockchain data
  -n, --network=<value>    Default network config to use. Environment variable
                           "LISK_NETWORK" can also be used.
  -u, --url=<value>        The url to the genesis block.

DESCRIPTION
  Download genesis block.

EXAMPLES
  genesis-block:download --network mainnet -f

  genesis-block:download --network --data-path ./lisk/

  genesis-block:download --url http://mydomain.com/genesis_block.blob.tar.gz --data-path ./lisk/ --force
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core genesis-block:download --network mainnet -f
Downloading genesis block from https://downloads.lisk.com/lisk/mainnet/genesis_block.blob.tar.gz
Downloaded to path: /Users/XYZ/.lisk/lisk-core/config/mainnet/genesis_block.blob.tar.gz.
Verified checksum: a69fe85969ce8727b6490a07ced612bbc36a5c377a54f2b6fab58c058d1663b5.
Extracting genesis block file.
Removing downloaded genesis block
Download completed.
   /Users/XYZ/.lisk/lisk-core/config/mainnet/genesis_block.blob
----
====


=== keys
Return keys corresponding to the given passphrase.

[source,bash]
----
USAGE
  $ lisk-core keys:COMMAND

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.

[source,bash]
----
USAGE
  $ lisk-core keys:create [-o <value>] [-p <value>] [-n] [-w <value>] [-c <value>] [-f <value>] [-i <value>]

FLAGS
  -c, --count=<value>       [default: 1] Number of keys to create
  -f, --offset=<value>      Offset for the key derivation path
  -i, --chainid=<value>     Chain id
  -n, --no-encrypt          No encrypted message object to be created
  -o, --output=<value>      The output directory. Default will set to current working directory.
  -p, --passphrase=<value>  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=<value>    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)

DESCRIPTION
  Return keys corresponding to the given passphrase.

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 
[%collapsible]
====
[source,bash]
----
$ lisk-core keys:create
? 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": "lskguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad",
      "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.

[source,bash]
----
USAGE
  $ lisk-core keys:encrypt -f <value> [-w <value>]

FLAGS
  -f, --file-path=<value>  (required) Path of the file to encrypt from
  -w, --password=<value>   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)

DESCRIPTION
  Encrypt keys from a file and overwrite the file

EXAMPLES
  keys:encrypt --file-path ./my/path/keys.json

  keys:encrypt --file-path ./my/path/keys.json --password mypass
----


.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core keys:encrypt --file-path ./my/path/keys.json --password mypass
{
  "keys": [
      {
        "address": "lske5sqed53fdcs4m9et28f2k7u9fk6hno9bauday",
        "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.

[source,bash]
----
USAGE
  $ lisk-core keys:export -o <value> [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -o, --output=<value>     (required) The output directory. Default will set to current working directory.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Export to <FILE>.

EXAMPLES
  keys:export --output /mypath/keys.json

  keys:export --output /mypath/keys.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core keys:export --output ~/mypath/mykeys.json
----
====

==== keys:import
Import keys from a file.

[source,bash]
----
USAGE
  $ lisk-core keys:import -f <value> [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -f, --file-path=<value>  (required) Path of the file to import from
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Import from <FILE>.

EXAMPLES
  keys:import --file-path ./my/path/keys.json

  keys:import --file-path ./my/path/keys.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core keys:import --file-path ~/mykeys.json
----
====

=== system
Commands relating to a Lisk Core node.

[source,bash]
----
USAGE
  $ lisk-core system:COMMAND

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 Lisk application.

[source,bash]
----
USAGE
  $ lisk-core system:node-info [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Get node information from a running application.

EXAMPLES
  system:node-info

  system:node-info --data-path ./lisk
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core system:node-info --pretty
{
  "version": "4.0.0-alpha.18",
  "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": 10,
    "maxTransactionsSize": 15360,
    "chainID": "04000000"
  },
  "network": {
    "version": "1.0",
    "port": 7667,
    "seedPeers": []
  }
}
----
====

==== system:metadata
Gets a node's metadata from a running Lisk application.

[source,bash]
----
USAGE
  $ lisk-core system:metadata [-d <value>] [--pretty]

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Get node metadata from a running application.

EXAMPLES
  system:metadata

  system:metadata --data-path ./lisk
----

.Example
[%collapsible]
====
[source,bash]
----
$ lisk-core system:metadata --pretty
{
  "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": "lisk32"
              }
            },
            "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": "lisk32",
                "fieldNumber": 1
              },
              "generatorAddress": {
                "dataType": "bytes",
                "format": "lisk32",
                "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": "lisk32",
                "fieldNumber": 2
              },
              "burntAmount": {
                "dataType": "uint64",
                "fieldNumber": 3
              },
              "relayerAmount": {
                "dataType": "uint64",
                "fieldNumber": 4
              }
            }
          }
        },
        {
          "name": "insufficientFee",
          "data": {
            "$id": "/lisk/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": "/lisk/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": "/lisk/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": "reclaimLSK",
          "params": {
            "$id": "/legacy/command/reclaimLSKParams",
            "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": "lisk/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": "lisk/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": "/lisk/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": "lisk32"
                    },
                    "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": "/lisk/empty",
            "type": "object",
            "properties": {}
          }
        }
      ],
      "events": [
        {
          "name": "validatorBanned",
          "data": {
            "$id": "/pos/events/validatorBannedData",
            "type": "object",
            "required": [
              "address",
              "height"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "lisk32"
              },
              "height": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "validatorPunished",
          "data": {
            "$id": "/pos/events/punishValidatorData",
            "type": "object",
            "required": [
              "address",
              "height"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "lisk32"
              },
              "height": {
                "dataType": "uint32",
                "fieldNumber": 2
              }
            }
          }
        },
        {
          "name": "validatorRegistered",
          "data": {
            "$id": "/pos/events/registerValidatorData",
            "type": "object",
            "required": [
              "address",
              "name"
            ],
            "properties": {
              "address": {
                "dataType": "bytes",
                "fieldNumber": 1,
                "format": "lisk32"
              },
              "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": "lisk32"
              },
              "validatorAddress": {
                "dataType": "bytes",
                "fieldNumber": 2,
                "format": "lisk32"
              },
              "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": "lisk32",
                "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": "lisk32",
                "fieldNumber": 1
              },
              "validatorAddress": {
                "dataType": "bytes",
                "format": "lisk32",
                "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": "lisk32"
                    },
                    "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": "lisk32"
                    },
                    "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": "lisk32"
              }
            }
          }
        },
        {
          "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": "lisk32"
                    },
                    "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": "lisk32"
                }
              }
            }
          }
        },
        {
          "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": "lisk32"
                    },
                    "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": "lisk32"
              }
            }
          },
          "response": {
            "$id": "modules/pos/endpoint/getValidatorResponse",
            "type": "object",
            "required": [
              "address",
              "name",
              "totalStakeReceived",
              "selfStake",
              "lastGeneratedHeight",
              "isBanned",
              "pomHeights",
              "punishmentPeriods",
              "consecutiveMissedBlocks"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "lisk32"
              },
              "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": "lisk32"
              }
            }
          },
          "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": "lisk32"
                    },
                    "amount": {
                      "type": "string",
                      "format": "uint64"
                    }
                  }
                }
              },
              "pendingUnlocks": {
                "type": "array",
                "fieldNumber": 2,
                "items": {
                  "type": "object",
                  "required": [
                    "validatorAddress",
                    "amount",
                    "unstakeHeight"
                  ],
                  "properties": {
                    "validatorAddress": {
                      "type": "string",
                      "format": "lisk32"
                    },
                    "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"
              },
              "useInvalidBLSKey": {
                "type": "boolean"
              }
            },
            "required": [
              "factorSelfStakes",
              "maxLengthName",
              "maxNumberSentStakes",
              "maxNumberPendingUnlocks",
              "failSafeMissedBlocks",
              "failSafeInactiveWindow",
              "punishmentWindow",
              "roundLength",
              "minWeightStandby",
              "numberActiveValidators",
              "numberStandbyValidators",
              "posTokenID",
              "validatorRegistrationFee",
              "maxBFTWeightCap",
              "useInvalidBLSKey"
            ]
          }
        },
        {
          "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": "lisk32"
              }
            }
          },
          "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": "lisk32"
              },
              "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": "lisk32"
              }
            }
          },
          "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": "lisk32"
                    },
                    "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": "lisk32"
              }
            }
          },
          "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": "lisk32"
                    },
                    "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": "lisk32",
                      "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": "lisk32",
                      "fieldNumber": 1
                    },
                    "stakes": {
                      "type": "array",
                      "fieldNumber": 2,
                      "items": {
                        "type": "object",
                        "required": [
                          "validatorAddress",
                          "amount",
                          "sharingCoefficients"
                        ],
                        "properties": {
                          "validatorAddress": {
                            "dataType": "bytes",
                            "format": "lisk32",
                            "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": "lisk32"
                          },
                          "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": "lisk32"
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "lisk32"
              },
              "seedReveal": {
                "type": "string",
                "format": "hex"
              }
            }
          },
          "response": {
            "$id": "/modules/random/endpoint/isSeedRevealRequest",
            "type": "object",
            "required": [
              "valid"
            ],
            "properties": {
              "valid": {
                "type": "boolean"
              }
            }
          }
        },
        {
          "name": "setHashOnion",
          "request": {
            "$id": "lisk/random/setSeedRequestSchema",
            "type": "object",
            "title": "Random setSeed request",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "lisk32"
              },
              "seed": {
                "type": "string",
                "format": "hex"
              },
              "count": {
                "type": "integer",
                "minimum": 1
              },
              "distance": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        },
        {
          "name": "getHashOnionSeeds",
          "response": {
            "$id": "lisk/random/setSeedRequestSchema",
            "type": "object",
            "title": "Random setSeed request",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "lisk32"
              },
              "seed": {
                "type": "string",
                "format": "hex"
              },
              "count": {
                "type": "integer",
                "minimum": 1
              },
              "distance": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        },
        {
          "name": "hasHashOnion",
          "request": {
            "$id": "lisk/random/addressSchema",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "lisk32"
              }
            }
          },
          "response": {
            "$id": "lisk/random/hasHashOnionResponseSchema",
            "type": "object",
            "required": [
              "hasSeed",
              "remaining"
            ],
            "properties": {
              "hasSeed": {
                "type": "boolean"
              },
              "remaining": {
                "type": "integer",
                "format": "uint32"
              }
            }
          }
        },
        {
          "name": "getHashOnionUsage",
          "request": {
            "$id": "lisk/random/addressSchema",
            "type": "object",
            "required": [
              "address"
            ],
            "properties": {
              "address": {
                "type": "string",
                "format": "lisk32"
              }
            }
          },
          "response": {
            "$id": "lisk/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": "/lisk/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": "lisk32"
              },
              "data": {
                "dataType": "string",
                "fieldNumber": 4,
                "minLength": 0,
                "maxLength": 64
              }
            }
          }
        },
        {
          "name": "transferCrossChain",
          "params": {
            "$id": "/lisk/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": "lisk32"
              },
              "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": "lisk32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "lisk32",
                "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": "lisk32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "lisk32",
                "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": "lisk32",
                "fieldNumber": 1
              },
              "recipientAddress": {
                "dataType": "bytes",
                "format": "lisk32",
                "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": "lisk32",
                "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": "lisk32",
                "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": "lisk32",
                "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": "lisk32",
                "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": "lisk32",
                "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": "lisk32",
                "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": "/lisk/empty",
            "type": "object",
            "properties": {}
          }
        },
        {
          "name": "allTokensSupportRemoved",
          "data": {
            "$id": "/lisk/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": "lisk32"
              },
              "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": "lisk32"
              }
            },
            "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": "lisk32"
              },
              "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": "lisk32",
                      "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": "lisk32"
                    },
                    "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": "validateBLSKey",
          "request": {
            "$id": "/validators/endpoint/validateBLSKeyRequest",
            "title": "Bls Key Properties",
            "type": "object",
            "properties": {
              "proofOfPossession": {
                "type": "string",
                "format": "hex"
              },
              "blsKey": {
                "type": "string",
                "format": "hex"
              }
            },
            "required": [
              "proofOfPossession",
              "blsKey"
            ]
          },
          "response": {
            "$id": "/validators/endpoint/validateBLSKeyResponse",
            "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": "lisk32"
              }
            },
            "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 Lisk Core passphrases.

[source,bash]
----
USAGE
  $ lisk-core passphrase:COMMAND

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.

[source,bash]
----
USAGE
  $ lisk-core passphrase:create [-o <value>]

FLAGS
  -o, --output=<value>  The output directory. Default will set to current working directory.

DESCRIPTION
  Returns a randomly generated 24 words mnemonic passphrase.

EXAMPLES
  passphrase:create

  passphrase:create --output /mypath/passphrase.json
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core passphrase:create
{
  "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.

[source,bash]
----
USAGE
  $ lisk-core passphrase:decrypt -f <value> [-w <value>]

FLAGS
  -f, --file-path=<value>  (required) Path of the file to import from
  -w, --password=<value>   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)

DESCRIPTION
  Decrypt secret passphrase using the password provided at the time of encryption.

EXAMPLES
  passphrase:decrypt --file-path ./my/path/output.json

  passphrase:decrypt --file-path ./my/path/output.json --password your-password
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core passphrase:decrypt --file-path ./my/path/keys.json
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{"passphrase":"my secret passphrase"}
----
====

==== passphrase:encrypt
Encrypts the secret passphrase using a password.

[source,bash]
----
USAGE
  $ lisk-core passphrase:encrypt [-w <value>] [-p <value>] [--output-public-key] [-o <value>]

FLAGS
  -o, --output=<value>      The output directory. Default will set to current working directory.
  -p, --passphrase=<value>  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=<value>    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.

DESCRIPTION
  Encrypt secret passphrase using password.

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 
[%collapsible]
====
[source,bash]
----
$ lisk-core passphrase:encrypt -p 'my secret passphrase'
? 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 Lisk SDK development.

[source,bash]
----
USAGE
  $ lisk-core sdk:COMMAND

COMMANDS
  sdk:link  Symlink specific SDK folder during development.
----

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

[source,bash]
----
USAGE
  $ lisk-core sdk:link [TARGETSDKFOLDER]

ARGUMENTS
  TARGETSDKFOLDER  The path to the lisk SDK folder

DESCRIPTION
  Symlink specific SDK folder during development.

EXAMPLES
  sdk:link /path/to/lisk-sdk/sdk
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core sdk:link ~/XYZ/Documents/GitHub/lisk-sdk
Linked /Users/XYZ/Documents/GitHub/lisk-sdk to /lisk-sdk.
----
====

=== transaction
Commands relating to Lisk Core transactions.

[source,bash]
----
USAGE
  $ lisk-core transaction:COMMAND

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.

NOTE: The fee and amount are expected in Beddows!

[source,bash]
----
USAGE
  $ lisk-core transaction:create [MODULE] [COMMAND] [FEE] [-p <value>] [-a <value>] [-j] [--offline] [--send] [--no-signature] [--chain-id <value>] [--nonce <value>] [-s
    <value>] [-d <value>] [-k <value>] [--pretty] [-f <value>]

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

FLAGS
  -a, --params=<value>               Creates transaction with specific params information
  -d, --data-path=<value>            Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -f, --file=<value>                 The file to upload.
                                     	Example:
                                     		--file=./myfile.json
  -j, --json                         Print the transaction in JSON format.
  -k, --key-derivation-path=<value>  [default: m/44'/134'/0'] Key derivation path to use to derive keypair from passphrase
  -p, --passphrase=<value>           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=<value>    Set a custom senderPublicKey property for the transaction, to be used when account address does not correspond to signer's private
                                     key
  --chain-id=<value>
  --no-signature                     Creates the transaction without a signature. Your passphrase will therefore not be required
  --nonce=<value>                    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

DESCRIPTION
  Create transaction which can be broadcasted to the network. Note: fee and amount should be in Beddows!!

EXAMPLES
  transaction:create token transfer 100000000 --params='{"amount":100000000,"recipientAddress":"lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'

  transaction:create token transfer 100000000 --params='{"amount":100000000,"recipientAddress":"lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}' --json

  transaction:create token transfer 100000000 --offline --network mainnet --chain-id 10000000 --nonce 1 --params='{"amount":100000000,"recipientAddress":"lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'

  transaction:create token transfer 100000000 --file=/txn_params.json

  transaction:create token transfer 100000000 --file=/txn_params.json --json
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core transaction:create token transfer 100000000
? 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:  lskz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp
? Please enter: data:  Sending tokens
{"transaction":"0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"}
----
====

==== transaction:get
Gets a transaction from the local node by ID.

[source,bash]
----
USAGE
  $ lisk-core transaction:get [ID] [-d <value>] [--pretty]

ARGUMENTS
  ID  Transaction ID in hex format.

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Get transaction from local node by ID.

EXAMPLES
  transaction:get eab06c6a22e88bca7150e0347a7d976acd070cb9284423e6eabecd657acc1263
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core transaction:get ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31 --pretty
{
  "module": "token",
  "command": "transfer",
  "params": {
    "tokenID": "0400000000000000",
    "amount": "1",
    "recipientAddress": "lskz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp",
    "data": "Sending tokens"
  },
  "nonce": "0",
  "fee": "100000000",
  "senderPublicKey": "3972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
  "signatures": [
    "497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"
  ],
  "id": "ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31"
}
----
====

==== transaction:send
Sends a transaction to the local node.

[source,bash]
----
USAGE
  $ lisk-core transaction:send [TRANSACTION] [-d <value>] [--pretty]

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

FLAGS
  -d, --data-path=<value>  Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  --pretty                 Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Send transaction to the local node.

EXAMPLES
  transaction:send 080810011880cab5ee012220fd061b9146691f3c56504be051175d5b76d1b1d0179c5c4370e18534c58821222a2408641214ab0041a7d3f7b2c290b5b834d46bdc7b7eb858151a0a73656e6420746f6b656e324028edd3601cdc35a41bb23415a0d9f3c3e9cf188d9971adf18742cea39d58aa84809aa87bcfe6feaac46211c80472ad9297fd87727709f5d7e7b4134caf106b02
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core transaction:send 0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109
Transaction with id: 'ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31' received by node.
----
====

==== transaction:sign
Signs an encoded transaction.

[source,bash]
----
USAGE
  $ lisk-core transaction:sign [TRANSACTION] [-p <value>] [-j] [--offline] [--mandatory-keys <value>] [--optional-keys <value>] [--chain-id <value>] [-d <value>] [-k
    <value>] [--pretty]

ARGUMENTS
  TRANSACTION  The transaction to be signed encoded as hex string

FLAGS
  -d, --data-path=<value>            Directory path to specify where node data is stored. Environment variable "LISK_DATA_PATH" can also be used.
  -j, --json                         Print the transaction in JSON format.
  -k, --key-derivation-path=<value>  [default: m/44'/134'/0'] Key derivation path to use to derive keypair from passphrase
  -p, --passphrase=<value>           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=<value>
  --mandatory-keys=<value>           Mandatory publicKey string in hex format.
  --offline                          Specify whether to connect to a local node or not.
  --optional-keys=<value>            Optional publicKey string in hex format.
  --pretty                           Prints JSON in pretty format rather than condensed.

DESCRIPTION
  Sign encoded transaction.

EXAMPLES
  transaction:sign <hex-encoded-binary-transaction>

  transaction:sign <hex-encoded-binary-transaction> --network testnet
----

.Example 
[%collapsible]
====
[source,bash]
----
$ lisk-core transaction:sign 0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06 --pretty
? Please enter passphrase:  [hidden]
? Please re-enter passphrase:  [hidden]
{
  "transaction": "0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06"
}
----
====
