= 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
:source-language: bash
// 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.6 darwin-arm64 node-v18.20.2

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]

ARGUMENTS
  SHELL  shell type

OPTIONS
  -r, --refresh-cache  Refresh cache (ignores displaying 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
----
.Response
----
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

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

EXAMPLES
  console
  console --api-ws=ws://localhost:8080
  console --api-ipc=/path/to/server
----

.Example
[%collapsible]
====
[source,bash]
----
lisk-core console
----
.Response
----
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

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

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

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

=== start
Starts the blockchain node.

[source,bash]
----
USAGE
  $ lisk-core start

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

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

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

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

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

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

  --api-host=api-host                                  Host to be used for api-client. Environment variable
                                                       "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=api-port                                  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=dashboard-plugin-port        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=faucet-plugin-port              Port to be used for Faucet Plugin. Environment variable
                                                       "LISK_FAUCET_PLUGIN_PORT" can also be used.

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

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

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

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

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

EXAMPLES
  start
  start --network devnet --data-path /path/to/data-dir --log debug
  start --network devnet --api-ws
  start --network devnet --api-ws --api-port 8888
  start --network devnet --port 9000
  start --network devnet --port 9002 --seed-peers 127.0.0.1:9001,127.0.0.1:9000
  start --network testnet --overwrite-config
  start --network testnet --config ~/my_custom_config.json
----

.Example
[%collapsible]
====
[source,bash]
----
lisk-core start --network devnet --api-ws
----
.Response
----
Starting Lisk lisk-core at /Users/XYZ/.lisk/lisk-core
Starting the app at /Users/XYZ/.lisk/lisk-core
If you experience any type of error, please open an issue on Lisk GitHub: https://github.com/LiskHQ/lisk-sdk/issues
Contribution guidelines can be found at Lisk-sdk: https://github.com/LiskHQ/lisk-sdk/blob/development/docs/CONTRIBUTING.md
...
----
====

== Topics

=== block
Commands relating to Lisk Core blocks.

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

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

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

[source,bash]
----
USAGE
  $ lisk-core block:get INPUT

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

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

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

EXAMPLES
  block:get e082e79d01016632c451c9df9276e486cb7f460dc793ff5b10d8f71eecec28b4
  block:get 2
----

.Example
[%collapsible]
====
[source,bash]
----
lisk-core block:get 2 --pretty
----
.Response
----
{
  "header": {
    "version": 2,
    "timestamp": 1680868980,
    "height": 2,
    "previousBlockID": "9e442947fda74955dea2e6a490b1158a78655bd5fb6875cd945bdc02841523fd",
    "stateRoot": "2211e781083d5def0da750cf96f75abd3b27d68e944ba01728ddfb4fb18fa5d2",
    "assetRoot": "8fb5ed936653eba7fb8e05fa7ad87a75e10347ca544574326dd11d159bcd015d",
    "eventRoot": "15caa254f64d161c61daede6f2fec75451381a1268b83997ebe86887c81ca2c8",
    "transactionRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "validatorsHash": "8438b6d8c70e18c79a9215f53b6c4677e2f4bab793479a35c03d8f514f3389b3",
    "aggregateCommit": {
      "height": 0,
      "aggregationBits": "",
      "certificateSignature": ""
    },
    "generatorAddress": "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

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

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

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

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

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

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

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

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

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

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

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

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

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core blockchain:hash
----
.Response
----
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
----
====

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

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

ARGUMENTS
  FILEPATH  Path to the gzipped blockchain data.

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

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

EXAMPLES
  blockchain:import ./path/to/blockchain.tar.gz
  blockchain:import ./path/to/blockchain.tar.gz --data-path ./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
----
.Response
----
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

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

  -y, --yes                  Skip confirmation prompt.

EXAMPLES
  blockchain:reset
  blockchain:reset --data-path ./lisk
  blockchain:reset --yes
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core blockchain:reset
----
.Response
----
? Are you sure you want to reset the db? yes
Blockchain data has been reset.
----
====

=== config
Commands relating to the configuration of the blockchain client.

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

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

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

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

EXAMPLES
  config:create --output mydir
  config:create --output mydir --label beta-sdk-app
  config:create --output mydir --label beta-sdk-app --community-identifier sdk
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core config:create --chain-id 04000000
----

====

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

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

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

  -d, --data-path=data-path  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.

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

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core config:show --pretty
----
.Response
----
{
  "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

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]

ARGUMENTS
  ENDPOINT  Endpoint to invoke
  PARAMS    Endpoint parameters (Optional)

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

  -f, --file=file            Input file.

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

EXAMPLES
  endpoint:invoke {endpoint} {parameters}
  endpoint:invoke --data-path --file
  endpoint:invoke generator_getAllKeys
  endpoint:invoke consensus_getBFTParameters '{"height": 2}' -d ~/.lisk/pos-mainchain --pretty
  endpoint:invoke consensus_getBFTParameters -f ./input.json
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core endpoint:invoke system_getNodeInfo --pretty
----
.Response
----
{
  "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]

ARGUMENTS
  ENDPOINT  Endpoint name (Optional)

OPTIONS
  -d, --data-path=data-path  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=module        Parent module.

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

EXAMPLES
  endpoint:list
  endpoint:list {endpoint} -m {module}
  endpoint:list {endpoint} -m {module} -i
  endpoint:list -m validator
  endopint:list getBalance
  endpoint:list get -m token
  endpoint:list getBalances -m token -i --pretty
  endpoint:list getBalances -m token -d ~/.lisk/pos-mainchain
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core endpoint:list --pretty
----
.Response
----
[
  "auth_getAuthAccount",
  "auth_isValidNonce",
  "auth_isValidSignature",
  "auth_getMultiSigRegMsgSchema",
  "auth_sortMultisignatureGroup",
  "auth_getMultiSigRegMsgTag",
  "dynamicReward_getDefaultRewardAtHeight",
  "dynamicReward_getAnnualInflation",
  "dynamicReward_getRewardTokenID",
  "fee_getMinFeePerByte",
  "fee_getFeeTokenID",
  "interoperability_getChainAccount",
  "interoperability_getAllChainAccounts",
  "interoperability_getChannel",
  "interoperability_getOwnChainAccount",
  "interoperability_getTerminatedStateAccount",
  "interoperability_getTerminatedOutboxAccount",
  "interoperability_getRegistrationFee",
  "interoperability_getMinimumMessageFee",
  "interoperability_getChainValidators",
  "interoperability_isChainIDAvailable",
  "interoperability_isChainNameAvailable",
  "legacy_getLegacyAccount",
  "pos_getAllValidators",
  "pos_getValidator",
  "pos_getStaker",
  "pos_getConstants",
  "pos_getPoSTokenID",
  "pos_getClaimableRewards",
  "pos_getLockedReward",
  "pos_getLockedStakedAmount",
  "pos_getValidatorsByStake",
  "pos_getPendingUnlocks",
  "pos_getRegistrationFee",
  "random_isSeedRevealValid",
  "random_setHashOnion",
  "random_getHashOnionSeeds",
  "random_hasHashOnion",
  "random_getHashOnionUsage",
  "token_getBalance",
  "token_getBalances",
  "token_getTotalSupply",
  "token_getSupportedTokens",
  "token_isSupported",
  "token_getEscrowedAmounts",
  "token_getInitializationFees",
  "token_hasUserAccount",
  "token_hasEscrowAccount",
  "validators_validateBLSKey",
  "validators_getValidator"
]
----
====

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

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

==== generator:disable
Disables block generation for a given generator's address.

[source,bash]
----
USAGE
  $ lisk-core generator:disable ADDRESS

ARGUMENTS
  ADDRESS  Address of an account in a lisk32 format.

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

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

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

EXAMPLES
  generator:disable 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
----
.Response
----
? 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

ARGUMENTS
  ADDRESS  Address of an account in a lisk32 format.

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

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

  --height=height                              Last generated block height.

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

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

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

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

EXAMPLES
  generator:enable 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
----
.Response
----
 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

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

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

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

EXAMPLES
  generator:export
  generator:export --output /mypath/generator_info.json
  generator:export --output /mypath/generator_info.json --data-path ./data
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core generator:export --output /Users/XYZ/genInfo.json
----
.Response
----
Generator info is exported to /Users/XYZ/genInfo.json
----
====

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

[source,bash]
----
USAGE
  $ lisk-core generator:import

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

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

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

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

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

OPTIONS
  -d, --data-path=data-path  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.

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

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core generator:status --pretty
----
.Response
----
{
  "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

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

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

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

  -h, --height=height                        Genesis block height

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

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

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

  -t, --timestamp=timestamp                  Timestamp

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

EXAMPLES
  genesis-block:create --output mydir
  genesis-block:create --output mydir --assets-file ./assets.json
  genesis-block:create --output mydir --assets-file ./assets.json --height 2 --timestamp 1592924699 --previous-block-id
  085d7c9b7bddc8052be9eefe185f407682a495f1b4498677df1480026b74f2e9
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core genesis-block:create --assets-file genesis_assets.json --output ./devnet
----
.Response
----
2023-04-07T16:47:08.874Z INFO XYZ.local application 55996 Registered and initialized fee module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized auth module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered auth module has command registerMultisignature
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized validators module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered and initialized token module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transfer
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transferCrossChain
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized dynamicReward module
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized random module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized pos module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command registerValidator
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command reportMisbehavior
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command unlock
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command updateGeneratorKey
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command stake
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command changeCommission
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command claimRewards
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized interoperability module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command submitMainchainCrossChainUpdate
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command initializeMessageRecovery
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverMessage
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command registerSidechain
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverState
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command terminateSidechainForLiveness
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized legacy module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered legacy module has command 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.20.2/lib/node_modules/lisk-core/config/devnet/devnet
----
====



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

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

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

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

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

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

EXAMPLES
  genesis-block:download --network mainnet -f
  genesis-block:download --network --data-path ./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
----
.Response
----
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

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

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

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

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

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

EXAMPLES
  keys:create
  keys:create --passphrase your-passphrase
  keys:create --passphrase your-passphrase --no-encrypt
  keys:create --passphrase your-passphrase --password your-password
  keys:create --passphrase your-passphrase --password your-password --count 2
  keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1
  keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1 --chainid 1
  keys:create --passphrase your-passphrase --password your-password --count 2 --offset 1 --chainid 1 --output
  /mypath/keys.json
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core keys:create
----
.Response
----
? Please enter passphrase:  [hidden]
? Please re-enter passphrase:  [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{
  "keys": [
    {
      "address": "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

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

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

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


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

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

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

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

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

.Example 
[%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

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

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

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

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

.Example 
[%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

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

OPTIONS
  -d, --data-path=data-path  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.

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

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core system:node-info --pretty
----
.Response
----
{
  "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

OPTIONS
  -d, --data-path=data-path  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.

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

.Example
[%collapsible]
====
[source,bash]
----
lisk-core system:metadata --pretty
----
.Response
----
{
  "modules": [
    {
      "commands": [
        {
          "name": "registerMultisignature",
          "params": {
            "$id": "/auth/command/regMultisig",
            "type": "object",
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1,
                "minimum": 1,
                "maximum": 64
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2,
                "minItems": 0,
                "maxItems": 64
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3,
                "minItems": 0,
                "maxItems": 64
              },
              "signatures": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 64,
                  "maxLength": 64
                },
                "fieldNumber": 4
              }
            },
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys",
              "signatures"
            ]
          }
        }
      ],
      "events": [
        {
          "name": "multisignatureRegistration",
          "data": {
            "$id": "/auth/events/multisigRegData",
            "type": "object",
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ],
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3
              }
            }
          }
        },
        {
          "name": "invalidSignature",
          "data": {
            "$id": "/auth/events/invalidSigData",
            "type": "object",
            "required": [
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys",
              "failingPublicKey",
              "failingSignature"
            ],
            "properties": {
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 1
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 2
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "fieldNumber": 3
              },
              "failingPublicKey": {
                "dataType": "bytes",
                "minLength": 32,
                "maxLength": 32,
                "fieldNumber": 4
              },
              "failingSignature": {
                "dataType": "bytes",
                "minLength": 64,
                "maxLength": 64,
                "fieldNumber": 5
              }
            }
          }
        }
      ],
      "stores": [
        {
          "key": "3df49c3c0000",
          "data": {
            "$id": "/auth/account",
            "type": "object",
            "properties": {
              "nonce": {
                "dataType": "uint64",
                "fieldNumber": 1
              },
              "numberOfSignatures": {
                "dataType": "uint32",
                "fieldNumber": 2,
                "minimum": 0,
                "maximum": 64
              },
              "mandatoryKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 3
              },
              "optionalKeys": {
                "type": "array",
                "items": {
                  "dataType": "bytes",
                  "minLength": 32,
                  "maxLength": 32
                },
                "minItems": 0,
                "maxItems": 64,
                "fieldNumber": 4
              }
            },
            "required": [
              "nonce",
              "numberOfSignatures",
              "mandatoryKeys",
              "optionalKeys"
            ]
          }
        }
      ],
      "endpoints": [
        {
          "name": "getAuthAccount",
          "request": {
            "$id": "/auth/addressRequest",
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "format": "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

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

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

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

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core passphrase:create
----
.Response
----
{
  "passphrase": "lava empower laundry taxi believe cute boss stairs bicycle vivid dirt vendor accuse identify general run knock medal chief space remain flush extra bike"
}
----
====

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

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

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

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

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

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

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

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

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

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

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

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

EXAMPLES
  passphrase:encrypt
  passphrase:encrypt --passphrase your-passphrase --output /mypath/keys.json
  passphrase:encrypt --password your-password
  passphrase:encrypt --password your-password --passphrase your-passphrase --output /mypath/keys.json
  passphrase:encrypt --output-public-key --output /mypath/keys.json
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core passphrase:encrypt -p 'my secret passphrase'
----
.Response
----
? Please enter password:  [hidden]
? Please re-enter password:  [hidden]
{
  "encryptedPassphrase": {
    "ciphertext": "f0abd47a3095f288f3b291a883222cd64d7748b0",
    "mac": "f88e98d461c9be73bcf8f3b37e5e8123a7f7ce351fcdf3b9c9f226f5e07d9cda",
    "kdf": "argon2id",
    "kdfparams": {
      "parallelism": 4,
      "iterations": 1,
      "memorySize": 2024,
      "salt": "a5e440ce3bc216ec8b2bc122155971c9"
    },
    "cipher": "aes-256-gcm",
    "cipherparams": {
      "iv": "272b5a4caa0b3605ae9837b0",
      "tag": "7a0601cc12ca169300aba9a9f53c652b"
    },
    "version": "1"
  }
}
----
====


=== sdk
Commands relating to Lisk SDK development.

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

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

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

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

=== transaction
Commands relating to Lisk Core transactions.

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

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

==== transaction:create
Creates a transaction that can be broadcast to the network.

NOTE: The fee and amount are expected in Beddows!

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

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

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

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

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

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

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

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

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

  --chain-id=chain-id

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

  --nonce=nonce                                  Nonce of the transaction.

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

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

  --send                                         Create and immediately send transaction to a node

EXAMPLES
  transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
  ss":"lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'
  transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
  ss":"lskycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}' --json
  transaction:create token transfer 100000000 --offline --network mainnet --chain-id 10000000 --nonce 1 --params='{"amou
  nt":100000000,"tokenID":"0400000000000000","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
----
.Response
----
? Please enter passphrase:  [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter: tokenID:  0400000000000000
? Please enter: amount:  1
? Please enter: recipientAddress:  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

ARGUMENTS
  ID  Transaction ID in hex format.

OPTIONS
  -d, --data-path=data-path  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.

EXAMPLE
  transaction:get eab06c6a22e88bca7150e0347a7d976acd070cb9284423e6eabecd657acc1263
----

.Example 
[%collapsible]
====
[source,bash]
----
lisk-core transaction:get ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31 --pretty
----
.Response
----
{
  "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

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

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

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

EXAMPLE
  transaction:send 080810011880cab5ee012220fd061b9146691f3c56504be051175d5b76d1b1d0179c5c4370e18534c58821222a2408641214a
  b0041a7d3f7b2c290b5b834d46bdc7b7eb858151a0a73656e6420746f6b656e324028edd3601cdc35a41bb23415a0d9f3c3e9cf188d9971adf1874
  2cea39d58aa84809aa87bcfe6feaac46211c80472ad9297fd87727709f5d7e7b4134caf106b02
----

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

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

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

ARGUMENTS
  TRANSACTION  The transaction to be signed encoded as hex string

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

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

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

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

  --chain-id=chain-id

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

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

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

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

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

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