Client CLI
The client CLI, also called node CLI, is a command-line interface that is available for every Klayr node.
A complete command reference of the CLI of a blockchain client is summarized on this page.
The client CLI is available out of the box, if the blockhain client was initialized with Klayr Commander. |
Commands
help
Displays the general help information for the client CLI.
Klayr-SDK Application
VERSION
sidechain/0.1.0 darwin-x64 node-v18.16.0
USAGE
$ my-blockchain-client [COMMAND]
TOPICS
block Commands relating to blocks.
blockchain Commands relating to blockchain data.
config Commands relating to node configuration.
endpoint Commands relating to endpoint.
generator Commands relating to block generator.
genesis-block Creates genesis block file.
keys Commands relating to key generation.
system Get node information from a running application.
passphrase Commands relating to passphrases.
transaction Commands relating to transactions.
COMMANDS
autocomplete display autocomplete installation instructions
console Klayr interactive REPL session to run commands.
hash-onion Create hash onions to be used by the forger.
help Display help for sidechain.
start Start Blockchain Node.
version
autocomplete
Displays autocomplete installation instructions.
USAGE
$ ./bin/run autocomplete [SHELL] [-r]
ARGUMENTS
SHELL shell type
FLAGS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
DESCRIPTION
display autocomplete installation instructions
EXAMPLES
$ schain autocomplete
$ schain autocomplete bash
$ schain autocomplete zsh
$ schain autocomplete --refresh-cache
Example
./bin/run autocomplete bash
Building the autocomplete cache... done Setup Instructions for DPOS-MAINCHAIN CLI Autocomplete --- 1) Add the autocomplete env var to your bash profile and source it $ printf "eval $(dpos-mainchain autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc NOTE: If your terminal starts as a login shell you may need to print the init script into ~/.bash_profile or ~/.profile. 2) Test it out, e.g.: $ dpos-mainchain <TAB><TAB> # Command completion $ dpos-mainchain command --<TAB><TAB> # Flag completion Enjoy!
console
Provides an interactive Javascript REPL session to run KLAYR commands.
USAGE
$ ./bin/run console [--api-ipc <value> | --api-ws <value>]
FLAGS
--api-ipc=<value> Enable api-client with IPC communication.
--api-ws=<value> Enable api-client with Websocket communication.
DESCRIPTION
Klayr interactive REPL session to run commands.
EXAMPLES
console
console --api-ws=ws://localhost:8080
console --api-ipc=/path/to/server
Example
./bin/run console
Entering Klayr REPL: type `Ctrl+C` or `.exit` to exit hello-client >
hash-onion
Creates hash onions to be used by a generator.
USAGE
$ ./bin/run hash-onion [-o <value>] [-c <value>] [-d <value>] [--pretty]
FLAGS
-c, --count=<value> [default: 1000000] Total number of hashes to produce
-d, --distance=<value> [default: 1000] Distance between each hashes
-o, --output=<value> Output file path
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Create hash onions to be used by the forger.
EXAMPLES
hash-onion --count=1000000 --distance=2000 --pretty
hash-onion --count=1000000 --distance=2000 --output ~/my_onion.json
Example
./bin/run hash-onion --count=10 --distance=2 --pretty
{
"count": 10,
"distance": 2,
"hashes": [
"01ab696a2a7fc93546d852e7b8d325f1",
"7c454f608e915ccab8f6c0a7c75f622e",
"11e2e628fa6f352fb1a6e49b9533d5f3",
"d78debda1d194e8ad29e201d1a635f65",
"bee98fe65c888f9ed0a3aba464bee832",
"c57059ca4dd90a83f142b141d22788e7"
]
}
start
Starts the blockchain node.
USAGE
$ ./bin/run start [-d <value>] [-n <value>] [-c <value>] [--overwrite-config] [-p <value>] [--api-ipc] [--api-ws] [--api-http] [--api-port <value>] [--api-host <value>] [-l trace|debug|info|warn|error|fatal]
[--seed-peers <value>] [--enable-forger-plugin] [--monitor-plugin-port <value> --enable-monitor-plugin] [--monitor-plugin-whitelist <value> ] [--enable-report-misbehavior-plugin] [--faucet-plugin-port <value>
--enable-faucet-plugin] [--dashboard-plugin-port <value> --enable-dashboard-plugin]
FLAGS
-c, --config=<value> File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can also be used.
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-l, --log=<option> Log level. Environment variable "KLAYR_LOG_LEVEL" can also be used.
<options: trace|debug|info|warn|error|fatal>
-n, --network=<value> [default: default] Default network config to use. Environment variable "KLAYR_NETWORK" can also be used.
-p, --port=<value> Open port for the peer to peer incoming connections. Environment variable "KLAYR_PORT" can also be used.
--api-host=<value> Host to be used for api-client. Environment variable "KLAYR_API_HOST" can also be used.
--api-http Enable HTTP communication for api-client. Environment variable "KLAYR_API_HTTP" can also be used.
--api-ipc Enable IPC communication. This will load plugins as a child process and communicate over IPC. Environment variable "KLAYR_API_IPC" can also be used.
--api-port=<value> Port to be used for api-client. Environment variable "KLAYR_API_PORT" can also be used.
--api-ws Enable websocket communication for api-client. Environment variable "KLAYR_API_WS" can also be used.
--dashboard-plugin-port=<value> Port to be used for Dashboard Plugin. Environment variable "KLAYR_DASHBOARD_PLUGIN_PORT" can also be used.
--enable-dashboard-plugin Enable Dashboard Plugin. Environment variable "KLAYR_ENABLE_DASHBOARD_PLUGIN" can also be used.
--enable-faucet-plugin Enable Faucet Plugin. Environment variable "KLAYR_ENABLE_FAUCET_PLUGIN" can also be used.
--enable-forger-plugin Enable Forger Plugin. Environment variable "KLAYR_ENABLE_FORGER_PLUGIN" can also be used.
--enable-monitor-plugin Enable Monitor Plugin. Environment variable "KLAYR_ENABLE_MONITOR_PLUGIN" can also be used.
--enable-report-misbehavior-plugin Enable ReportMisbehavior Plugin. Environment variable "KLAYR_ENABLE_REPORT_MISBEHAVIOR_PLUGIN" can also be used.
--faucet-plugin-port=<value> Port to be used for Faucet Plugin. Environment variable "KLAYR_FAUCET_PLUGIN_PORT" can also be used.
--monitor-plugin-port=<value> Port to be used for Monitor Plugin. Environment variable "KLAYR_MONITOR_PLUGIN_PORT" can also be used.
--monitor-plugin-whitelist=<value> List of IPs in comma separated value to allow the connection. Environment variable "KLAYR_MONITOR_PLUGIN_WHITELIST" can also be used.
--overwrite-config Overwrite network configs if they exist already
--seed-peers=<value> Seed peers to initially connect to in format of comma separated "ip:port". IP can be DNS name or IPV4 format. Environment variable "KLAYR_SEED_PEERS" can also be used.
DESCRIPTION
Start Blockchain Node.
EXAMPLES
start
start --network devnet --data-path /path/to/data-dir --log debug
start --network devnet --api-ws
start --network devnet --api-ws --api-ws-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
./bin/run start
Topics
block
Commands relating to blocks in the blockchain.
USAGE
$ ./bin/run block:COMMAND
COMMANDS
./bin/run block:get Get block information for a given id or height.
block:get
Gets block information for a given id or height.
USAGE
$ ./bin/run block:get [INPUT] [-d <value>] [--pretty]
ARGUMENTS
INPUT Height in number or block id in hex format.
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Get block information for a given id or height.
EXAMPLES
block:get e082e79d01016632c451c9df9276e486cb7f460dc793ff5b10d8f71eecec28b4
block:get 2
Example
./bin/run block:get 2 --pretty
{
"header": {
"version": 2,
"timestamp": 1662732723,
"height": 2,
"previousBlockID": "f2ba7c69656db476b37926bda1a9601b6346d18b709622c9b7f80c324c42b432",
"stateRoot": "f3197522fae6e10293e770bc90ce47dc6feee66e11d2a445a654fba46a45abc5",
"assetRoot": "23eeebc213ffe296b83792ab2c0a686c1e4cddddb6eaeb5d270d04a5e7fe4545",
"eventRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"transactionRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"validatorsHash": "84f3ed67cec1eb7bd6dc3ec01b0d0323021c1e86a3dc760b9b92041c28da31ac",
"aggregateCommit": {
"height": 0,
"aggregationBits": "",
"certificateSignature": ""
},
"generatorAddress": "klykqjdxujqmjn2woqjs6txv3trzh6s5gsr882scp",
"maxHeightPrevoted": 0,
"maxHeightGenerated": 0,
"signature": "dc6f9b8e48452c27d2436cf247c7f17c01807c32424c8ca7595dc220982f5090d49c9d64c1ad7c4ca41b094f7c22ccbdc020aa959c2a4588dfd2ec862560d503",
"id": "07da307b08292268830ab432b411570f3cdda67df868d32a954190e82ab29cf5"
},
"transactions": [],
"assets": [
{
"module": "random",
"data": {
"seedReveal": "fc3b349c800dec9cf746c06a8fe42512"
}
}
]
}
blockchain
Commands relating to the blockchain's data.
USAGE
$ ./bin/run blockchain:COMMAND
COMMANDS
./bin/run blockchain:export Export to <FILE>.
./bin/run blockchain:hash Generate SHA256 hash from <PATH>.
./bin/run blockchain:import Import from <FILE>.
./bin/run blockchain:reset Reset the blockchain data.
blockchain:export
Exports the blockchain’s data to a file.
USAGE
$ ./bin/run blockchain:export [-d <value>] [-o <value>]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-o, --output=<value> The output directory. Default will set to current working directory.
DESCRIPTION
Export to <FILE>.
EXAMPLES
blockchain:export
blockchain:export --data-path ./data --output ./my/path/
Example
./bin/run blockchain:export
blockchain:hash
Generates SHA256 hash from the blockchain's data.
USAGE
$ ./bin/run blockchain:hash [-d <value>]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
DESCRIPTION
Generate SHA256 hash from <PATH>.
EXAMPLES
blockchain:hash
blockchain:hash --data-path ./data
Example
./bin/run blockchain:hash --data-path /Users/xyz/Documents/GitHub/klayr-sdk/examples/dpos-mainchain/blockchain.db
blockchain:import
Imports the blockchain’s data from a file.
USAGE
$ ./bin/run blockchain:import [FILEPATH] [-d <value>] [-f]
ARGUMENTS
FILEPATH Path to the gzipped blockchain data.
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-f, --force Delete and overwrite existing blockchain data
DESCRIPTION
Import from <FILE>.
EXAMPLES
blockchain:import ./path/to/blockchain.tar.gz
blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/
blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/ --force
Example
./bin/run blockchain:import /Users/xyz/Documents/GitHub/klayr-sdk/examples/dpos-mainchain/blockchain.db.tar.gz --force
blockchain:reset
Resets the blockchain's data.
USAGE
$ ./bin/run blockchain:reset [-d <value>] [-y]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-y, --yes Skip confirmation prompt.
DESCRIPTION
Reset the blockchain data.
EXAMPLES
blockchain:reset
blockchain:reset --data-path ./klayr
blockchain:reset --yes
Example
./bin/run blockchain:reset
config
Commands relating to the configuration of the blockchain client.
USAGE
$ ./bin/run config:COMMAND
COMMANDS
./bin/run config:create Creates the node configuration file.
./bin/run config:show Shows node config.
config:create
Creates a configuration file for the blockchain client.
USAGE
$ ./bin/run config:create -i <value> [-o <value>] [-l <value>]
FLAGS
-i, --chain-id=<value> (required) ChainID in hex format. For example, Klayr mainnet mainchain is 00000000
-l, --label=<value> App Label
-o, --output=<value> Directory where the config file is saved
DESCRIPTION
Creates network configuration file.
EXAMPLES
config:create --output mydir
config:create --output mydir --label beta-sdk-app
config:create --output mydir --label beta-sdk-app --community-identifier sdk
Example
./bin/run config:create
config:show
Shows the client’s config.
USAGE
$ ./bin/run config:show [-d <value>] [-c <value>] [--pretty]
FLAGS
-c, --config=<value> File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can also be used.
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Show application config.
EXAMPLES
config:show
config:show --pretty
config:show --config ./custom-config.json --data-path ./data
Example
./bin/run config:show --pretty
{
"system": {
"dataPath": "/Users/xyz/.klayr/dpos-mainchain"
},
"rpc": {
"modes": [
"ipc"
]
},
"genesis": {
"block": {
"fromFile": "./config/genesis_block.blob"
},
"blockTime": 10,
"bftBatchSize": 103,
"communityIdentifier": "sdk",
"maxTransactionsSize": 15360,
"minFeePerByte": 1000
},
"generator": {
"keys": {
"fromFile": "./config/dev-validators.json"
}
},
"network": {
"version": "1.0",
"seedPeers": [
{
"ip": "127.0.0.1",
"port": 7667
}
],
"port": 7667
},
"transactionPool": {
"maxTransactions": 4096,
"maxTransactionsPerAccount": 64,
"transactionExpiryTime": 10800000,
"minEntranceFeePriority": "0",
"minReplacementFeeDifference": "10"
},
"modules": {},
"plugins": {
"reportMisbehavior": {
"encryptedPassphrase": "iterations=10&cipherText=5dea8b928a3ea2481ebc02499ae77679b7552189181ff189d4aa1f8d89e8d07bf31f7ebd1c66b620769f878629e1b90499506a6f752bf3323799e3a54600f8db02f504c44d&iv=37e0b1753b76a90ed0b8c319&salt=963c5b91d3f7ba02a9d001eed49b5836&tag=c3e30e8f3440ba3f5b6d9fbaccc8918d&version=1"
}
}
}
endpoint
Commands relating to invoking the provided endpoint.
USAGE
$ ./bin/run endpoint:COMMAND
COMMANDS
endpoint:invoke Invokes the provided endpoint.
endpoint:invoke
Invokes the provided endpoint.
USAGE
$ ./bin/run endpoint:invoke [ENDPOINT] [PARAMS] [-d <value>] [--pretty] [-f <value>]
ARGUMENTS
ENDPOINT Endpoint to invoke
PARAMS Endpoint parameters (Optional)
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-f, --file=<value> Input file.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Invokes the provided endpoint.
EXAMPLES
endpoint:invoke {endpoint} {parameters}
endpoint:invoke --data-path --file
endpoint:invoke generator_getAllKeys
endpoint:invoke consensus_getBFTParameters '{"height": 2}' -d ~/.klayr/pos-mainchain --pretty
endpoint:invoke consensus_getBFTParameters -f ./input.json
Example
./bin/run endpoint:invoke chain_getLastBlock --pretty
{
"header": {
"version": 2,
"timestamp": 1662742534,
"height": 110,
"previousBlockID": "4ef1095d3560064dd4a66fb4543680efe65a64020c363571b107be9513628674",
"stateRoot": "b2507620beb3be5cd7d0cbb7926e4365b5674b682673dc2423400a497636e13e",
"assetRoot": "2aa695e23b36439b56130a490ef38feaaec57d82859ff64f5ca61cc49993afa3",
"eventRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"transactionRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"validatorsHash": "84f3ed67cec1eb7bd6dc3ec01b0d0323021c1e86a3dc760b9b92041c28da31ac",
"aggregateCommit": {
"height": 0,
"aggregationBits": "",
"certificateSignature": ""
},
"generatorAddress": "kly5y2q2tn35xrnpdc4oag8sa3ktdacmdcahvwqot",
"maxHeightPrevoted": 0,
"maxHeightGenerated": 110,
"signature": "6ecd5c6f14d18f84a2125cca4186a6cc493dcd66338f9b13c580cc06be7a33267fe259a074d6f6dc9276aff700a985472fca15cbcf25b2fde1b621fe0810b507",
"id": "334416bdc1f8a7ff842728ac4e591337a0e7b80f190934694cad7e2a9afdb416"
},
"transactions": [],
"assets": [
{
"module": "random",
"data": "0a10dde856a212ac5af46e26abb5f941cc8b"
}
]
}
generator
Commands relating to the block generation and generator-info of a blockchain client.
USAGE
$ ./bin/run generator:COMMAND
COMMANDS
./bin/run generator:disable Disable block generation for the given generator's address.
./bin/run generator:enable Enable block generation for the given generator's address.
./bin/run generator:export Export to <FILE>.
./bin/run generator:import Import from <FILE>.
./bin/run generator:status Get block generation information for the locally running node.
generator:disable
Disables block generation for a given generator’s address.
USAGE
$ ./bin/run generator:disable [ADDRESS] [-d <value>] [--pretty] [-w <value>]
ARGUMENTS
ADDRESS Address of an account in a klayr32 format.
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Disable block generation for given validator address.
EXAMPLES
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data --password your_password
Example
./bin/run generator:disable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
? Enter password to decrypt the encrypted passphrase: ********
Disabled block generation for klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
generator:enable
Enables block generation for a given generator's address.
USAGE
$ ./bin/run generator:enable [ADDRESS] [-d <value>] [--pretty] [-w <value>] [--height <value> | --use-status-value] [--max-height-generated <value> | ] [--max-height-prevoted <value> | ]
ARGUMENTS
ADDRESS Address of an account in a klayr32 format.
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--height=<value> Last generated block height.
--max-height-generated=<value> Validator's largest previously generated height.
--max-height-prevoted=<value> Validator's largest prevoted height for a block.
--pretty Prints JSON in pretty format rather than condensed.
--use-status-value Use status value from the connected node
DESCRIPTION
Enable block generation for given validator address.
EXAMPLES
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --use-status-value
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10 --data-path ./data
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30 --max-height-prevoted=10 --data-path ./data --password your_password
Example
./bin/run generator:enable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 --use-status-value
Current block generation status for validator account klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 is: {"height":14814092,"maxHeightPrevoted":14814017,"maxHeightGenerated":14814025} ? Do you want to use the above values to enable block generation? yes ? Enter password to decrypt the encrypted passphrase: ********
Updated block generation status: {"address":"klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3","enabled":true}
generator:export
Exports generator’s data to a file.
USAGE
$ ./bin/run generator:export [-d <value>] [--pretty] [-o <value>]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-o, --output=<value> The output directory. Default will set to current working directory.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Export to <FILE>.
EXAMPLES
generator:export --output /mypath/genInfo.json
generator:export --output /mypath/genInfo.json --data-path ./data
Example
./bin/run generator:export
{
"keys": [
{
"address": "klyzbqjmwmd32sx8ya56saa4gk7tkco953btm24t8",
"plain": {
"generatorKey": "3f44b319b82443eabb300eba5a2f323d72e44d9d2d5ed0b21a24051595582dd5",
"generatorPrivateKey": "51d9322ce03caa96cd576f48888c9a284b3e9e8f05a9a5a6395563997fecd6f03f44b319b82443eabb300eba5a2f323d72e44d9d2d5ed0b21a24051595582dd5",
"blsKey": "a6689556554e528964141d813c184ad4ec5c3564260d2709606c845f0c684b4bb5ff77054acb6eb8184a40fcd783670b",
"blsPrivateKey": "3980fcb82cccfce71cb76fb8860b4ef554b434db8f1a2a73578080223202802a"
}
}
],
"generatorInfo": [
{
"address": "klyzbqjmwmd32sx8ya56saa4gk7tkco953btm24t8",
"height": 766,
"maxHeightGenerated": 578,
"maxHeightPrevoted": 650
}
]
}
generator:import
Imports generator’s data from a file.
USAGE
$ ./bin/run generator:import -f <value> [-d <value>] [--pretty]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-f, --file-path=<value> (required) Path of the file to import from
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Import from <FILE>.
EXAMPLES
generator:import --file-path ./my/path/genInfo.json
generator:import --file-path ./my/path/genInfo.json --data-path ./data
Example
./bin/run generator:import --file-path ~/mypath/geninfo.json
generator:status
Gets block generation information for the locally running node.
USAGE
$ ./bin/run generator:status [-d <value>] [--pretty]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Get forging information for the locally running node.
EXAMPLES
generator:status
generator:status --data-path ./sample --pretty
Example
./bin/run generator:status --pretty
{
"info": {
"status":
[{
"address": "klyzpvesvp7p9odszcp3s4dffnj4ozqz7b79tonqp",
"height": 574,
"maxHeightPrevoted": 487,
"maxHeightGenerated": 459,
"enabled": true
}
]}
}
genesis-block
Commands relating to the genesis-block.
USAGE
$ ./bin/run genesis-block:COMMAND
COMMANDS
./bin/run genesis-block:create Creates genesis block file.
genesis-block:create
Creates a genesis block file and the corresponding generator's configuration data and accounts information.
USAGE
$ ./bin/run genesis-block:create -f <value> [-n <value>] [-c <value>] [-o <value>]
FLAGS
-c, --config=<value> File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can also be used.
-f, --assets-file=<value> (required) Path to file which contains genesis block asset in JSON format
-n, --network=<value> [default: default] Default network config to use. Environment variable "KLAYR_NETWORK" can also be used.
-o, --output=<value> [default: config] Output folder path of the generated genesis block
DESCRIPTION
Creates genesis block file.
EXAMPLES
genesis-block:create --output mydir
genesis-block:create --output mydir --assets-file ./assets.json
Example
./bin/run genesis-block:create --output ~/Lightcurve-Code -f ~/Documents/GitHub/klayr-sdk/examples/dpos-mainchain/config/default/genesis_assets.json
2022-09-12T14:04:06.972Z INFO xyz.local application 21584 Registered and initialized auth module 2022-09-12T14:04:06.973Z INFO xyz.local application 21584 Registered auth module has command registerMultisignatureGroup 2022-09-12T14:04:06.973Z INFO xyz.local application 21584 Registered and initialized validators module 2022-09-12T14:04:06.974Z INFO xyz.local application 21584 Registered and initialized token module 2022-09-12T14:04:06.974Z INFO xyz.local application 21584 Registered token module has command transfer 2022-09-12T14:04:06.974Z INFO xyz.local application 21584 Registered token module has command crossChaintransfer 2022-09-12T14:04:06.975Z INFO xyz.local application 21584 Registered and initialized fee module 2022-09-12T14:04:06.976Z INFO xyz.local application 21584 Registered and initialized reward module 2022-09-12T14:04:06.977Z INFO xyz.local application 21584 Registered and initialized random module 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered and initialized dpos module 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered dpos module has command registerDelegate 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered dpos module has command reportDelegateMisbehavior 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered dpos module has command unlock 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered dpos module has command updateGeneratorKey 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered dpos module has command voteDelegate 2022-09-12T14:04:06.979Z INFO xyz.local application 21584 Registered and initialized interoperability module Genesis block files saved at: /Users/xyz/Documents/GitHub/klayr-sdk/examples/dpos-mainchain/Users/xyz/Lightcurve-Code
keys
Commands relating to account, generator, and bls keys.
USAGE
$ ./bin/run keys:COMMAND
COMMANDS
./bin/run keys:create Return keys corresponding to the given passphrase.
./bin/run keys:encrypt Encrypt keys from a file and overwrite the file.
./bin/run keys:export Export to <FILE>.
./bin/run keys:import Import from <FILE>.
keys:create
Return keys corresponding to the given passphrase.
USAGE
$ ./bin/run keys:create [-o <value>] [-p <value>] [-n] [-w <value>] [-c <value>] [-f <value>] [-i <value>]
FLAGS
-c, --count=<value> [default: 1] Number of keys to create
-f, --offset=<value> Offset for the key derivation path
-i, --chainid=<value> Chain id
-n, --no-encrypt No encrypted message object to be created
-o, --output=<value> The output directory. Default will set to current working directory.
-p, --passphrase=<value> Specifies a source for your secret passphrase. Command will prompt you for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not important)
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
DESCRIPTION
Return keys corresponding to the given passphrase.
EXAMPLES
keys:create
keys:create --passphrase your-passphrase
keys:create --passphrase your-passphrase --no-encrypt
keys:create --passphrase your-passphrase --password your-password
keys:create --passphrase your-passphrase --password your-password --count 2
keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1
keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1 --chainid 1
keys:create --passphrase your-passphrase --password your-password --count 2 --offset 1 --chainid 1 --output /mypath/keys.json
Example
./bin/run keys:create
? Please enter passphrase: [hidden] ? Please re-enter passphrase: [hidden] ? Please enter password: [hidden] ? Please re-enter password: [hidden]
{
"keys": [
{
"address": "klye5sqed53fdcs4m9et28f2k7u9fk6hno9bauday",
"keyPath": "m/44'/134'/0'",
"publicKey": "a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"privateKey": "d0b159fe5a7cc3d5f4b39a97621b514bc55b0a0f1aca8adeed2dd1899d93f103a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"plain": {
"generatorKeyPath": "m/25519'/134'/0'/0'",
"generatorKey": "b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"generatorPrivateKey": "b3c4de7f7932275b7a465045e918337ffd7b7b229cef8eba28f706de8759da95b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"blsKeyPath": "m/12381/134/0/0",
"blsKey": "92f020ce5e37befb86493a82686b0eedddb264350b0873cf1eeaa1fefe39d938f05f272452c1ef5e6ceb4d9b23687e31",
"blsProofOfPosession": "b92b11d66348e197c62d14af1453620d550c21d59ce572d95a03f0eaa0d0d195efbb2f2fd1577dc1a04ecdb453065d9d168ce7648bc5328e5ea47bb07d3ce6fd75f35ee51064a9903da8b90f7dc8ab4f2549b834cb5911b883097133f66b9ab9",
"blsPrivateKey": "463dd3413051366ee658c2524dd0bec85f8459bf6d70439685746406604f950d"
},
"encrypted": {
"ciphertext": "29e8c5b60f8527d8eb7691098d262234604b274f43def1978cada1d2161f20d550c36ec5e623369fc72904d8f0003c327becb20f2b8d83382ce21cf2889f756b6d1c31e60ff8644ece863bc8f0fccd89c50cbc3e57b2695e26ca13e4966b7c288fa2506c3abfa0e65700dc7dfadac95f0fe4584cc4634ccda5d6d41b1ebea9866b1d7d3679d462c7cb920ce35149af8bb8afbb100523ae1c1f3a4919dc5f2150973e2059a9f7c5c082fd9bac42a7bdca0617021cb2120145",
"mac": "69059e31bf79568ec6ca88a683591cc19df9dbb3c08ae316d3951295a4244750",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "f857799a73f703b17b52c6bce89bbf1e"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "1bd63317e5ee89e8885769de",
"tag": "2c238f044c1493d5e6e10ef15a1bca97"
},
"version": "1"
}
}
]
}
keys:encrypt
Encrypts plain keys from a file using a password.
USAGE
$ ./bin/run keys:encrypt -f <value> [-w <value>]
FLAGS
-f, --file-path=<value> (required) Path of the file to encrypt from
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
DESCRIPTION
Encrypt keys from a file and overwrite the file
EXAMPLES
keys:encrypt --file-path ./my/path/keys.json
keys:encrypt --file-path ./my/path/keys.json --password mypass
Example
./bin/run keys:encrypt --file-path ./my/path/keys.json --password mypass
{
"keys": [
{
"address": "klye5sqed53fdcs4m9et28f2k7u9fk6hno9bauday",
"keyPath": "m/44'/134'/0'",
"publicKey": "a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"privateKey": "d0b159fe5a7cc3d5f4b39a97621b514bc55b0a0f1aca8adeed2dd1899d93f103a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"plain": {
"generatorKeyPath": "m/25519'/134'/0'/0'",
"generatorKey": "b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"generatorPrivateKey": "b3c4de7f7932275b7a465045e918337ffd7b7b229cef8eba28f706de8759da95b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"blsKeyPath": "m/12381/134/0/0",
"blsKey": "92f020ce5e37befb86493a82686b0eedddb264350b0873cf1eeaa1fefe39d938f05f272452c1ef5e6ceb4d9b23687e31",
"blsProofOfPosession": "b92b11d66348e197c62d14af1453620d550c21d59ce572d95a03f0eaa0d0d195efbb2f2fd1577dc1a04ecdb453065d9d168ce7648bc5328e5ea47bb07d3ce6fd75f35ee51064a9903da8b90f7dc8ab4f2549b834cb5911b883097133f66b9ab9",
"blsPrivateKey": "463dd3413051366ee658c2524dd0bec85f8459bf6d70439685746406604f950d"
},
"encrypted": {
"ciphertext": "d340438fde7b744d7482f01531415ffc0bda70dac36257571bb0dab703771e83152428b4a4dddc77dff1a983f07b0f3cba688fab2e46abe970ae4131c616e6cbf613952786f5749e94531641f07fcdef38a001a44f56f5de69e0976964ea13cbaff0682b5e0eaf9ff01a00f5b2215a3a1d9e3f0d5b78c876b157213367f7f90a468937c0baf9904189c21870c396b43b53422422bd61a3e1c8cb3126e1a5d60545aa06ee789c89dfb9155b560c327a88af5f9b04b4c6d4e9",
"mac": "d476a90c1fb057a1e4ece0d725f40f67ae36efcc166aede5380115d2a7532833",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "ecc014a7619b7f179b3fa32d2fed5d6c"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "328cf25fdda6988ed9f1101e",
"tag": "1862fde73a2a7b71979773bf620872ef"
},
"version": "1"
}
}
]
}
keys:export
Export keys to a file.
USAGE
$ ./bin/run keys:export -o <value> [-d <value>] [--pretty]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-o, --output=<value> (required) The output directory. Default will set to current working directory.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Export to <FILE>.
EXAMPLES
keys:export --output /mypath/keys.json
keys:export --output /mypath/keys.json --data-path ./data
Example
./bin/run keys:export --output ~/mypath/mykeys.json
keys:import
Import keys from a file.
USAGE
$ ./bin/run keys:import -f <value> [-d <value>] [--pretty]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-f, --file-path=<value> (required) Path of the file to import from
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Import from <FILE>.
EXAMPLES
keys:import --file-path ./my/path/keys.json
keys:import --file-path ./my/path/keys.json --data-path ./data
Example
./bin/run keys:import --file-path ~/mykeys.json
system
Commands relating to the blockchain node.
USAGE
$ ./bin/run system:COMMAND
COMMANDS
./bin/run system:node-info Get node information from a running node.
./bin/run system:metadata Get node metadata from a running node.
system:node-info
Gets a node’s information from a running blockchain node.
USAGE
$ ./bin/run system:node-info [-d <value>] [--pretty]
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Get node information from a running application.
EXAMPLES
system:node-info
system:node-info --data-path ./klayr
Example
./bin/run system:node-info --pretty
{
"version": "0.1.0",
"networkVersion": "1.0",
"networkIdentifier": "83fadf4bb9671ca5124a1a7990c29a24beb71dc9d098a3e4a11c67860badf924",
"lastBlockID": "1c988bd2dbfc35c1993ea9a2a22d8c0dc169613974143af9ff20da7ae05389c6",
"height": 114,
"finalizedHeight": 0,
"syncing": false,
"unconfirmedTransactions": 0,
"genesis": {
"block": {
"fromFile": "./config/genesis_block.blob"
},
"blockTime": 10,
"bftBatchSize": 103,
"communityIdentifier": "sdk",
"maxTransactionsSize": 15360,
"minFeePerByte": 1000
},
"network": {
"version": "1.0",
"port": 7667,
"seedPeers": [
{
"ip": "127.0.0.1",
"port": 7667
}
]
}
}
system:metadata
Gets a node’s metadata from a running blockchain node.
USAGE
$ ./bin/run system:metadata
OPTIONS
-d, --data-path=data-path Directory path to specify where the node data is stored. The environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in a pretty format rather than condensed.
EXAMPLES
./bin/run system:metadata
./bin/run system:metadata --data-path ./klayr
Example
./bin/run system:metadata --pretty
{
"modules":[
{
"commands":[
{
"name":"registerMultisignature",
"params":{
"$id":"/auth/command/regMultisig",
"type":"object",
"properties":{
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":1,
"minimum":1,
"maximum":64
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":2,
"minItems":0,
"maxItems":64
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":3,
"minItems":0,
"maxItems":64
},
"signatures":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":64,
"maxLength":64
},
"fieldNumber":4
}
},
"required":[
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys",
"signatures"
]
}
}
],
"events":[
{
"name":"multisignatureRegistration",
"data":{
"$id":"/auth/events/multisigRegData",
"type":"object",
"required":[
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
],
"properties":{
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":1
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":2
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":3
}
}
}
},
{
"name":"invalidSignature",
"data":{
"$id":"/auth/events/invalidSigData",
"type":"object",
"required":[
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys",
"failingPublicKey",
"failingSignature"
],
"properties":{
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":1
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":2
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":3
},
"failingPublicKey":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":4
},
"failingSignature":{
"dataType":"bytes",
"minLength":64,
"maxLength":64,
"fieldNumber":5
}
}
}
}
],
"stores":[
{
"key":"3df49c3c8a79",
"data":{
"$id":"/auth/account",
"type":"object",
"properties":{
"nonce":{
"dataType":"uint64",
"fieldNumber":1
},
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":2,
"minimum":0,
"maximum":64
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"minItems":0,
"maxItems":64,
"fieldNumber":3
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"minItems":0,
"maxItems":64,
"fieldNumber":4
}
},
"required":[
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
]
}
}
],
"endpoints":[
{
"name":"getAuthAccount",
"request":{
"$id":"/auth/addressRequest",
"type":"object",
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
},
"required":[
"address"
]
},
"response":{
"$id":"/auth/account",
"type":"object",
"properties":{
"nonce":{
"dataType":"uint64",
"fieldNumber":1
},
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":2,
"minimum":0,
"maximum":64
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"minItems":0,
"maxItems":64,
"fieldNumber":3
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"minItems":0,
"maxItems":64,
"fieldNumber":4
}
},
"required":[
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
]
}
},
{
"name":"isValidNonce",
"request":{
"$id":"/auth/transactionRequest",
"type":"object",
"properties":{
"transaction":{
"type":"string",
"format":"hex"
}
},
"required":[
"transaction"
]
},
"response":{
"$id":"/auth/verifyResult",
"type":"object",
"properties":{
"verified":{
"type":"boolean"
}
},
"required":[
"verified"
]
}
},
{
"name":"isValidSignature",
"request":{
"$id":"/auth/transactionRequest",
"type":"object",
"properties":{
"transaction":{
"type":"string",
"format":"hex"
}
},
"required":[
"transaction"
]
},
"response":{
"$id":"/auth/verifyResult",
"type":"object",
"properties":{
"verified":{
"type":"boolean"
}
},
"required":[
"verified"
]
}
},
{
"name":"getMultiSigRegMsgSchema",
"response":{
"$id":"/auth/command/regMultisigMsg",
"type":"object",
"required":[
"address",
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
],
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":20,
"maxLength":20
},
"nonce":{
"dataType":"uint64",
"fieldNumber":2
},
"numberOfSignatures":{
"dataType":"uint32",
"fieldNumber":3
},
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":4
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":5
}
}
}
},
{
"name":"sortMultisignatureGroup",
"request":{
"$id":"/auth/command/sortMultisig",
"required":[
"mandatory",
"optional"
],
"type":"object",
"properties":{
"mandatory":{
"type":"array",
"items":{
"type":"object",
"properties":{
"publicKey":{
"type":"string",
"minLength":64,
"maxLength":64,
"fieldNumber":1
},
"signature":{
"type":"string",
"minLength":128,
"maxLength":128,
"fieldNumber":2
}
}
},
"minItems":1,
"maxItems":64
},
"optional":{
"type":"array",
"items":{
"type":"object",
"properties":{
"publicKey":{
"type":"string",
"minLength":64,
"maxLength":64,
"fieldNumber":3
},
"signature":{
"type":"string",
"minLength":0,
"maxLength":128,
"fieldNumber":4
}
}
},
"minItems":0,
"maxItems":64
}
}
},
"response":{
"$id":"/auth/sortMultisignatureGroupResponse",
"type":"object",
"properties":{
"mandatoryKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":1,
"minItems":0,
"maxItems":64
},
"optionalKeys":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":32,
"maxLength":32
},
"fieldNumber":2,
"minItems":0,
"maxItems":64
},
"signatures":{
"type":"array",
"items":{
"dataType":"bytes",
"minLength":64,
"maxLength":64
},
"fieldNumber":3
}
},
"required":[
"mandatoryKeys",
"optionalKeys",
"signatures"
]
}
}
],
"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":"054253ec0754",
"data":{
"$id":"/dynamicRewards/endOfRoundTimestamp",
"type":"object",
"properties":{
"timestamp":{
"dataType":"uint32",
"fieldNumber":1
}
},
"required":[
"timestamp"
]
}
}
],
"endpoints":[
{
"name":"getDefaultRewardAtHeight",
"request":{
"$id":"/reward/endpoint/height",
"type":"object",
"required":[
"height"
],
"properties":{
"height":{
"type":"integer",
"format":"uint32"
}
}
},
"response":{
"$id":"/reward/endpoint/getDefaultRewardAtHeightResponse",
"type":"object",
"required":[
"reward"
],
"properties":{
"reward":{
"type":"string",
"format":"uint64"
}
}
}
},
{
"name":"getAnnualInflation",
"request":{
"$id":"/reward/endpoint/height",
"type":"object",
"required":[
"height"
],
"properties":{
"height":{
"type":"integer",
"format":"uint32"
}
}
},
"response":{
"$id":"/reward/endpoint/getAnnualInflationResponse",
"type":"object",
"required":[
"tokenID",
"rate"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex"
},
"rate":{
"type":"string",
"format":"uint64",
"minLength":16,
"maxLength":16
}
}
}
},
{
"name":"getRewardTokenID",
"response":{
"$id":"/reward/endpoint/getRewardTokenID",
"type":"object",
"required":[
"tokenID"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex",
"minLength":16,
"maxLength":16
}
}
}
}
],
"assets":[
],
"name":"dynamicReward"
},
{
"commands":[
],
"events":[
{
"name":"generatorFeeProcessed",
"data":{
"$id":"/fee/events/generatorFeeProcessed",
"type":"object",
"required":[
"senderAddress",
"generatorAddress",
"burntAmount",
"generatorAmount"
],
"properties":{
"senderAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"generatorAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"burntAmount":{
"dataType":"uint64",
"fieldNumber":3
},
"generatorAmount":{
"dataType":"uint64",
"fieldNumber":4
}
}
}
},
{
"name":"relayerFeeProcessed",
"data":{
"$id":"/fee/events/relayerFeeProcessed",
"type":"object",
"required":[
"ccmID",
"relayerAddress",
"burntAmount",
"relayerAmount"
],
"properties":{
"ccmID":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":1
},
"relayerAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"burntAmount":{
"dataType":"uint64",
"fieldNumber":3
},
"relayerAmount":{
"dataType":"uint64",
"fieldNumber":4
}
}
}
},
{
"name":"insufficientFee"
}
],
"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",
"minItems":1,
"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
},
"storeEntries":{
"type":"array",
"fieldNumber":3,
"items":{
"type":"object",
"properties":{
"substorePrefix":{
"dataType":"bytes",
"fieldNumber":1
},
"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"
},
"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":"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
}
}
}
}
],
"stores":[
{
"key":"03ed0d25b94c",
"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":"03ed0d253c46",
"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":"03ed0d25a001",
"data":{
"$id":"/modules/interoperability/channel",
"type":"object",
"required":[
"inbox",
"outbox",
"partnerChainOutboxRoot",
"messageFeeTokenID"
],
"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
}
}
}
},
{
"key":"03ed0d25f0ba",
"data":{
"$id":"/modules/interoperability/outbox",
"type":"object",
"required":[
"root"
],
"properties":{
"root":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":1
}
}
}
},
{
"key":"03ed0d25fa88",
"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":"03ed0d2526ac",
"data":{
"$id":"/modules/interoperability/chainId",
"type":"object",
"required":[
"chainID"
],
"properties":{
"chainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":1
}
}
}
},
{
"key":"03ed0d25ba9d",
"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":"03ed0d252464",
"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
}
}
}
}
],
"endpoints":[
{
"name":"getChainAccount",
"request":{
"$id":"/modules/interoperability/endpoint/getChainAccountRequest",
"type":"object",
"required":[
"chainID"
],
"properties":{
"chainID":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"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":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"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":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":3
},
"validatorsHash":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":4
}
}
},
"status":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
}
}
}
},
{
"name":"getChannel",
"request":{
"$id":"/modules/interoperability/endpoint/getChainAccountRequest",
"type":"object",
"required":[
"chainID"
],
"properties":{
"chainID":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"response":{
"$id":"/modules/interoperability/channel",
"type":"object",
"required":[
"inbox",
"outbox",
"partnerChainOutboxRoot",
"messageFeeTokenID"
],
"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
}
}
}
},
{
"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":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"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":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"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":"getChainValidators",
"request":{
"$id":"/modules/interoperability/endpoint/getChainAccountRequest",
"type":"object",
"required":[
"chainID"
],
"properties":{
"chainID":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"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":{
"dataType":"bytes",
"fieldNumber":1
}
}
},
"response":{
"$id":"/modules/interoperability/endpoint/isChainIDAvailableResponseSchema",
"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"
],
"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
}
},
"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":"klayr/legacy/endpoint/getLegacyAccount",
"type":"object",
"required":[
"publicKey"
],
"properties":{
"publicKey":{
"type":"string",
"format":"hex"
}
}
},
"response":{
"$id":"klayr/legacy/legacyAccount",
"type":"object",
"required":[
"balance"
],
"properties":{
"balance":{
"dataType":"uint64",
"fieldNumber":1
}
}
}
}
],
"commands":[
{
"name":"reclaimKLY",
"params":{
"$id":"klayr/legacy/reclaimKLY",
"type":"object",
"required":[
"amount"
],
"properties":{
"amount":{
"dataType":"uint64",
"fieldNumber":1
}
}
}
},
{
"name":"registerKeys",
"params":{
"$id":"klayr/legacy/registerKeys",
"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":"reclaimKLY",
"data":{
"$id":"klayr/legacy/accountReclaimedEventData",
"type":"object",
"required":[
"legacyAddress",
"address",
"amount"
],
"properties":{
"legacyAddress":{
"dataType":"bytes",
"maxLength":8,
"fieldNumber":1
},
"address":{
"dataType":"bytes",
"maxLength":20,
"fieldNumber":2
},
"amount":{
"dataType":"uint64",
"fieldNumber":3
}
}
}
},
{
"name":"registerKeys",
"data":{
"$id":"klayr/legacy/keysRegisteredEventData",
"type":"object",
"required":[
"address",
"generatorKey",
"blsKey"
],
"properties":{
"address":{
"dataType":"bytes",
"maxLength":20,
"fieldNumber":1
},
"generatorKey":{
"dataType":"bytes",
"maxLength":32,
"fieldNumber":2
},
"blsKey":{
"dataType":"bytes",
"maxLength":48,
"fieldNumber":3
}
}
}
}
],
"assets":[
{
"version":0,
"data":{
"$id":"klayr/legacy/genesisLegacyStore",
"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"
},
{
"name":"updateGeneratorKey",
"params":{
"$id":"/pos/command/updateGeneratorKeyParams",
"type":"object",
"required":[
"generatorKey"
],
"properties":{
"generatorKey":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":32,
"maxLength":32
}
}
}
},
{
"name":"stake",
"params":{
"$id":"/pos/command/stakeValidatorParams",
"type":"object",
"required":[
"stakes"
],
"properties":{
"stakes":{
"type":"array",
"fieldNumber":1,
"minItems":1,
"maxItems":20,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"amount":{
"dataType":"sint64",
"fieldNumber":2
}
}
}
}
}
}
},
{
"name":"changeCommission",
"params":{
"$id":"/pos/command/changeCommissionCommandParams",
"type":"object",
"required":[
"newCommission"
],
"properties":{
"newCommission":{
"dataType":"uint32",
"fieldNumber":1,
"maximum":10000
}
}
}
},
{
"name":"claimRewards"
}
],
"events":[
{
"name":"validatorBanned",
"data":{
"$id":"/pos/events/validatorBannedData",
"type":"object",
"required":[
"address",
"height"
],
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"height":{
"dataType":"uint32",
"fieldNumber":2
}
}
}
},
{
"name":"validatorPunished",
"data":{
"$id":"/pos/events/punishValidatorData",
"type":"object",
"required":[
"address",
"height"
],
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"height":{
"dataType":"uint32",
"fieldNumber":2
}
}
}
},
{
"name":"validatorRegistered",
"data":{
"$id":"/pos/events/registerValidatorData",
"type":"object",
"required":[
"address",
"name"
],
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"name":{
"dataType":"string",
"fieldNumber":2
}
}
}
},
{
"name":"validatorStaked",
"data":{
"$id":"/pos/events/validatorStakedData",
"type":"object",
"required":[
"senderAddress",
"validatorAddress",
"amount",
"result"
],
"properties":{
"senderAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":2,
"format":"klayr32"
},
"amount":{
"dataType":"sint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"commissionChange",
"data":{
"$id":"/pos/events/commissionChangeData",
"type":"object",
"required":[
"validatorAddress",
"oldCommission",
"newCommission"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"oldCommission":{
"dataType":"uint32",
"fieldNumber":2
},
"newCommission":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
},
{
"name":"rewardsAssigned",
"data":{
"$id":"/pos/events/rewardsAssignedData",
"type":"object",
"required":[
"stakerAddress",
"validatorAddress",
"tokenID",
"amount"
],
"properties":{
"stakerAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"validatorAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
}
}
}
}
],
"stores":[
{
"key":"7160f868a468",
"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":"7160f8689edf",
"data":{
"$id":"/pos/store/genesis",
"type":"object",
"required":[
"height",
"initRounds",
"initValidators"
],
"properties":{
"height":{
"dataType":"uint32",
"fieldNumber":1
},
"initRounds":{
"dataType":"uint32",
"fieldNumber":2
},
"initValidators":{
"type":"array",
"fieldNumber":3,
"items":{
"dataType":"bytes",
"format":"klayr32"
}
}
}
}
},
{
"key":"7160f86890d4",
"data":{
"$id":"/pos/name",
"type":"object",
"required":[
"validatorAddress"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
}
}
}
},
{
"key":"7160f86867bb",
"data":{
"$id":"/pos/store/previousTimestamp",
"type":"object",
"required":[
"timestamp"
],
"properties":{
"timestamp":{
"dataType":"uint32",
"fieldNumber":1
}
}
}
},
{
"key":"7160f8683cbe",
"data":{
"$id":"/pos/store/snapshot",
"type":"object",
"required":[
"validatorWeightSnapshot"
],
"properties":{
"validatorWeightSnapshot":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"address",
"weight"
],
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"weight":{
"dataType":"uint64",
"fieldNumber":2
}
}
}
}
}
}
},
{
"key":"7160f868386f",
"data":{
"$id":"/pos/staker",
"type":"object",
"required":[
"stakes",
"pendingUnlocks"
],
"properties":{
"stakes":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"sharingCoefficients"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"sharingCoefficients":{
"type":"array",
"fieldNumber":3,
"items":{
"type":"object",
"required":[
"tokenID",
"coefficient"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":8,
"maxLength":8
},
"coefficient":{
"dataType":"bytes",
"fieldNumber":2,
"maxLength":24
}
}
}
}
}
}
},
"pendingUnlocks":{
"type":"array",
"fieldNumber":2,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"unstakeHeight":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
}
}
}
},
{
"key":"7160f86831a0",
"data":{
"$id":"/pos/eligibleValidators",
"type":"object",
"required":[
"lastReportMisbehaviorHeight"
],
"properties":{
"lastReportMisbehaviorHeight":{
"dataType":"uint32",
"fieldNumber":1
}
}
}
}
],
"endpoints":[
{
"name":"getAllValidators",
"response":{
"$id":"modules/pos/endpoint/getAllValidatorsResponse",
"type":"object",
"required":[
"validators"
],
"properties":{
"validators":{
"type":"array",
"items":{
"type":"object",
"required":[
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"name":{
"type":"string"
},
"totalStakeReceived":{
"type":"string",
"format":"uint64"
},
"selfStake":{
"type":"string",
"format":"uint64"
},
"lastGeneratedHeight":{
"type":"integer",
"format":"uint32"
},
"isBanned":{
"type":"boolean"
},
"pomHeights":{
"type":"array",
"items":{
"type":"integer",
"format":"uint32"
}
},
"punishmentPeriods":{
"type":"array",
"items":{
"type":"object",
"required":[
"start",
"end"
],
"properties":{
"start":{
"type":"integer",
"format":"uint32"
},
"end":{
"type":"integer",
"format":"uint32"
}
}
}
},
"consecutiveMissedBlocks":{
"type":"integer",
"format":"uint32"
}
}
}
}
}
}
},
{
"name":"getValidator",
"request":{
"$id":"modules/pos/endpoint/getValidatorRequest",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getValidatorResponse",
"type":"object",
"required":[
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"name":{
"type":"string"
},
"totalStakeReceived":{
"type":"string",
"format":"uint64"
},
"selfStake":{
"type":"string",
"format":"uint64"
},
"lastGeneratedHeight":{
"type":"integer",
"format":"uint32"
},
"isBanned":{
"type":"boolean"
},
"pomHeights":{
"type":"array",
"items":{
"type":"integer",
"format":"uint32"
}
},
"punishmentPeriods":{
"type":"array",
"items":{
"type":"object",
"required":[
"start",
"end"
],
"properties":{
"start":{
"type":"integer",
"format":"uint32"
},
"end":{
"type":"integer",
"format":"uint32"
}
}
}
},
"consecutiveMissedBlocks":{
"type":"integer",
"format":"uint32"
}
}
}
},
{
"name":"getStaker",
"request":{
"$id":"modules/pos/endpoint/getValidatorRequest",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getStakerResponse",
"type":"object",
"required":[
"sentStakes",
"pendingUnlocks"
],
"properties":{
"sentStakes":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount"
],
"properties":{
"validatorAddress":{
"type":"string",
"format":"klayr32"
},
"amount":{
"type":"string",
"format":"uint64"
}
}
}
},
"pendingUnlocks":{
"type":"array",
"fieldNumber":2,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties":{
"validatorAddress":{
"type":"string",
"format":"klayr32"
},
"amount":{
"type":"string",
"format":"uint64"
},
"unstakeHeight":{
"type":"integer",
"format":"uint32"
}
}
}
}
}
}
},
{
"name":"getConstants",
"response":{
"$id":"/pos/config",
"type":"object",
"properties":{
"factorSelfStakes":{
"type":"integer",
"format":"uint32"
},
"maxLengthName":{
"type":"integer",
"format":"uint32"
},
"maxNumberSentStakes":{
"type":"integer",
"format":"uint32"
},
"maxNumberPendingUnlocks":{
"type":"integer",
"format":"uint32"
},
"failSafeMissedBlocks":{
"type":"integer",
"format":"uint32"
},
"failSafeInactiveWindow":{
"type":"integer",
"format":"uint32"
},
"punishmentWindow":{
"type":"integer",
"format":"uint32"
},
"roundLength":{
"type":"integer",
"format":"uint32"
},
"minWeightStandby":{
"type":"string",
"format":"uint64"
},
"numberActiveValidators":{
"type":"integer",
"format":"uint32"
},
"numberStandbyValidators":{
"type":"integer",
"format":"uint32"
},
"posTokenID":{
"type":"string",
"format":"hex"
},
"validatorRegistrationFee":{
"type":"string",
"format":"uint64"
},
"maxBFTWeightCap":{
"type":"integer",
"format":"uint32",
"minimum":1,
"maximum":9999
},
"commissionIncreasePeriod":{
"type":"integer",
"format":"uint32"
},
"maxCommissionIncreaseRate":{
"type":"integer",
"format":"uint32"
},
"useInvalidBKLYey":{
"type":"boolean"
}
},
"required":[
"factorSelfStakes",
"maxLengthName",
"maxNumberSentStakes",
"maxNumberPendingUnlocks",
"failSafeMissedBlocks",
"failSafeInactiveWindow",
"punishmentWindow",
"roundLength",
"minWeightStandby",
"numberActiveValidators",
"numberStandbyValidators",
"posTokenID",
"validatorRegistrationFee",
"maxBFTWeightCap",
"useInvalidBKLYey"
]
}
},
{
"name":"getPoSTokenID",
"response":{
"$id":"modules/pos/endpoint/getPoSTokenIDResponse",
"type":"object",
"required":[
"tokenID"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex"
}
}
}
},
{
"name":"getClaimableRewards",
"request":{
"$id":"modules/pos/endpoint/getClaimableRewardsRequest",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getClaimableRewardsResponse",
"type":"object",
"properties":{
"rewards":{
"items":{
"type":"object",
"required":[
"tokenID",
"reward"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex"
},
"reward":{
"type":"string",
"format":"uint64"
}
}
}
}
}
}
},
{
"name":"getLockedReward",
"request":{
"$id":"modules/pos/endpoint/getLockedRewardRequest",
"type":"object",
"required":[
"address",
"tokenID"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"tokenID":{
"type":"string",
"format":"hex"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getLockedRewardResponse",
"type":"object",
"required":[
"reward"
],
"properties":{
"reward":{
"type":"string",
"format":"uint64"
}
}
}
},
{
"name":"getLockedStakedAmount",
"request":{
"$id":"modules/pos/endpoint/getLockedStakedAmountRequest",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getLockedStakedAmountResponse",
"type":"object",
"required":[
"amount"
],
"properties":{
"amount":{
"type":"string",
"format":"uint64"
}
}
}
},
{
"name":"getValidatorsByStake",
"request":{
"$id":"modules/pos/endpoint/getValidatorsByStakeRequest",
"type":"object",
"properties":{
"limit":{
"type":"integer",
"format":"int32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getValidatorsByStakeResponse",
"type":"object",
"required":[
"validators"
],
"properties":{
"validators":{
"type":"array",
"items":{
"type":"object",
"required":[
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"name":{
"type":"string"
},
"totalStakeReceived":{
"type":"string",
"format":"uint64"
},
"selfStake":{
"type":"string",
"format":"uint64"
},
"lastGeneratedHeight":{
"type":"integer",
"format":"uint32"
},
"isBanned":{
"type":"boolean"
},
"pomHeights":{
"type":"array",
"items":{
"type":"integer",
"format":"uint32"
}
},
"punishmentPeriods":{
"type":"array",
"items":{
"type":"object",
"required":[
"start",
"end"
],
"properties":{
"start":{
"type":"integer",
"format":"uint32"
},
"end":{
"type":"integer",
"format":"uint32"
}
}
}
},
"consecutiveMissedBlocks":{
"type":"integer",
"format":"uint32"
}
}
}
}
}
}
},
{
"name":"getPendingUnlocks",
"request":{
"$id":"modules/pos/endpoint/getPendingUnlocksRequest",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"modules/pos/endpoint/getPendingUnlocksResponse",
"type":"object",
"required":[
"amount"
],
"properties":{
"pendingUnlocks":{
"type":"array",
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"unstakeHeight",
"expectedUnlockableHeight",
"unlockable"
],
"properties":{
"validatorAddress":{
"type":"string",
"format":"klayr32"
},
"amount":{
"type":"string",
"format":"uint64"
},
"unstakeHeight":{
"type":"integer",
"format":"uint32"
},
"expectedUnlockableHeight":{
"type":"integer",
"format":"uint32"
},
"unlockable":{
"type":"boolean"
}
}
}
}
}
}
},
{
"name":"getRegistrationFee",
"response":{
"$id":"modules/pos/endpoint/getRegistrationFeeResponse",
"type":"object",
"required":[
"registrationFee"
],
"properties":{
"registrationFee":{
"type":"string"
}
}
}
}
],
"assets":[
{
"version":0,
"data":{
"$id":"/pos/module/genesis",
"type":"object",
"required":[
"validators",
"stakers",
"genesisData"
],
"properties":{
"validators":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"address",
"name",
"blsKey",
"proofOfPossession",
"generatorKey",
"lastGeneratedHeight",
"isBanned",
"reportMisbehaviorHeights",
"consecutiveMissedBlocks",
"commission",
"lastCommissionIncreaseHeight",
"sharingCoefficients"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"name":{
"dataType":"string",
"fieldNumber":2,
"minLength":1,
"maxLength":20
},
"blsKey":{
"dataType":"bytes",
"fieldNumber":3,
"minLength":48,
"maxLength":48
},
"proofOfPossession":{
"dataType":"bytes",
"fieldNumber":4,
"minLength":96,
"maxLength":96
},
"generatorKey":{
"dataType":"bytes",
"fieldNumber":5,
"minLength":32,
"maxLength":32
},
"lastGeneratedHeight":{
"dataType":"uint32",
"fieldNumber":6
},
"isBanned":{
"dataType":"boolean",
"fieldNumber":7
},
"reportMisbehaviorHeights":{
"type":"array",
"fieldNumber":8,
"items":{
"dataType":"uint32"
}
},
"consecutiveMissedBlocks":{
"dataType":"uint32",
"fieldNumber":9
},
"commission":{
"dataType":"uint32",
"fieldNumber":10,
"maximum":10000
},
"lastCommissionIncreaseHeight":{
"dataType":"uint32",
"fieldNumber":11
},
"sharingCoefficients":{
"type":"array",
"fieldNumber":12,
"items":{
"type":"object",
"required":[
"tokenID",
"coefficient"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":1
},
"coefficient":{
"dataType":"bytes",
"maxLength":24,
"fieldNumber":2
}
}
}
}
}
}
},
"stakers":{
"type":"array",
"fieldNumber":2,
"items":{
"type":"object",
"required":[
"address",
"stakes",
"pendingUnlocks"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"stakes":{
"type":"array",
"fieldNumber":2,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"sharingCoefficients"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"sharingCoefficients":{
"type":"array",
"fieldNumber":3,
"items":{
"type":"object",
"required":[
"tokenID",
"coefficient"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":1
},
"coefficient":{
"dataType":"bytes",
"maxLength":24,
"fieldNumber":2
}
}
}
}
}
}
},
"pendingUnlocks":{
"type":"array",
"fieldNumber":3,
"items":{
"type":"object",
"required":[
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties":{
"validatorAddress":{
"dataType":"bytes",
"fieldNumber":1,
"format":"klayr32"
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"unstakeHeight":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
}
}
}
},
"genesisData":{
"type":"object",
"fieldNumber":3,
"required":[
"initRounds",
"initValidators"
],
"properties":{
"initRounds":{
"dataType":"uint32",
"fieldNumber":1
},
"initValidators":{
"type":"array",
"fieldNumber":2,
"items":{
"dataType":"bytes",
"format":"klayr32"
}
}
}
}
}
}
}
],
"name":"pos"
},
{
"commands":[
],
"events":[
],
"stores":[
{
"key":"2441b15f5127",
"data":{
"$id":"/modules/random/seedReveal",
"type":"object",
"required":[
"validatorReveals"
],
"properties":{
"validatorReveals":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"generatorAddress",
"seedReveal",
"height",
"valid"
],
"properties":{
"generatorAddress":{
"dataType":"bytes",
"minLength":20,
"maxLength":20,
"fieldNumber":1
},
"seedReveal":{
"dataType":"bytes",
"minLength":16,
"maxLength":16,
"fieldNumber":2
},
"height":{
"dataType":"uint32",
"fieldNumber":3
},
"valid":{
"dataType":"boolean",
"fieldNumber":4
}
}
}
}
}
}
}
],
"endpoints":[
{
"name":"isSeedRevealValid",
"request":{
"$id":"/modules/random/endpoint/isSeedRevealRequest",
"type":"object",
"required":[
"generatorAddress",
"seedReveal"
],
"properties":{
"generatorAddress":{
"type":"string",
"format":"klayr32"
},
"seedReveal":{
"type":"string",
"format":"hex"
}
}
},
"response":{
"$id":"/modules/random/endpoint/isSeedRevealRequest",
"type":"object",
"required":[
"valid"
],
"properties":{
"valid":{
"type":"boolean"
}
}
}
},
{
"name":"setHashOnion",
"request":{
"$id":"klayr/random/setSeedRequestSchema",
"type":"object",
"title":"Random setSeed request",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"seed":{
"type":"string",
"format":"hex"
},
"count":{
"type":"integer",
"minimum":1
},
"distance":{
"type":"integer",
"minimum":1
}
}
}
},
{
"name":"getHashOnionSeeds",
"response":{
"$id":"klayr/random/setSeedRequestSchema",
"type":"object",
"title":"Random setSeed request",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"seed":{
"type":"string",
"format":"hex"
},
"count":{
"type":"integer",
"minimum":1
},
"distance":{
"type":"integer",
"minimum":1
}
}
}
},
{
"name":"hasHashOnion",
"request":{
"$id":"klayr/random/addressSchema",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"klayr/random/hasHashOnionResponseSchema",
"type":"object",
"required":[
"hasSeed",
"remaining"
],
"properties":{
"hasSeed":{
"type":"boolean"
},
"remaining":{
"type":"integer",
"format":"uint32"
}
}
}
},
{
"name":"getHashOnionUsage",
"request":{
"$id":"klayr/random/addressSchema",
"type":"object",
"required":[
"address"
],
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
}
},
"response":{
"$id":"klayr/random/getHashOnionUsageResponse",
"type":"object",
"required":[
"count",
"height",
"seed"
],
"properties":{
"count":{
"type":"integer",
"format":"uint32"
},
"height":{
"type":"integer",
"format":"uint32"
},
"seed":{
"type":"string",
"format":"hex"
}
}
}
}
],
"assets":[
{
"version":2,
"data":{
"$id":"/modules/random/block/header/asset",
"type":"object",
"properties":{
"seedReveal":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":16,
"maxLength":16
}
},
"required":[
"seedReveal"
]
}
}
],
"name":"random"
},
{
"commands":[
{
"name":"transfer",
"params":{
"$id":"/klayr/transferParams",
"title":"Transfer transaction params",
"type":"object",
"required":[
"tokenID",
"amount",
"recipientAddress",
"data"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":8,
"maxLength":8
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"recipientAddress":{
"dataType":"bytes",
"fieldNumber":3,
"format":"klayr32"
},
"data":{
"dataType":"string",
"fieldNumber":4,
"minLength":0,
"maxLength":64
}
}
}
},
{
"name":"transferCrossChain",
"params":{
"$id":"/klayr/ccTransferParams",
"type":"object",
"required":[
"tokenID",
"amount",
"receivingChainID",
"recipientAddress",
"data",
"messageFee",
"messageFeeTokenID"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":8,
"maxLength":8
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
},
"receivingChainID":{
"dataType":"bytes",
"fieldNumber":3,
"minLength":4,
"maxLength":4
},
"recipientAddress":{
"dataType":"bytes",
"fieldNumber":4,
"format":"klayr32"
},
"data":{
"dataType":"string",
"fieldNumber":5,
"minLength":0,
"maxLength":64
},
"messageFee":{
"dataType":"uint64",
"fieldNumber":6
},
"messageFeeTokenID":{
"dataType":"bytes",
"fieldNumber":7,
"minLength":8,
"maxLength":8
}
}
}
}
],
"events":[
{
"name":"transfer",
"data":{
"$id":"/token/events/transfer",
"type":"object",
"required":[
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"result"
],
"properties":{
"senderAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"recipientAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
},
"result":{
"dataType":"uint32",
"fieldNumber":5
}
}
}
},
{
"name":"transferCrossChain",
"data":{
"$id":"/token/events/transferCrossChain",
"type":"object",
"required":[
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"receivingChainID",
"result"
],
"properties":{
"senderAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"recipientAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
},
"receivingChainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":5
},
"result":{
"dataType":"uint32",
"fieldNumber":6
}
}
}
},
{
"name":"ccmTransfer",
"data":{
"$id":"/token/events/ccmTransfer",
"type":"object",
"required":[
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"receivingChainID",
"result"
],
"properties":{
"senderAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"recipientAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
},
"receivingChainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":5
},
"result":{
"dataType":"uint32",
"fieldNumber":6
}
}
}
},
{
"name":"mint",
"data":{
"$id":"/token/events/mint",
"type":"object",
"required":[
"address",
"tokenID",
"amount",
"result"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"amount":{
"dataType":"uint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"burn",
"data":{
"$id":"/token/events/burn",
"type":"object",
"required":[
"address",
"tokenID",
"amount",
"result"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"amount":{
"dataType":"uint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"lock",
"data":{
"$id":"/token/events/lock",
"type":"object",
"required":[
"address",
"module",
"tokenID",
"amount",
"result"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"module":{
"dataType":"string",
"minLength":1,
"maxLength":32,
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
},
"result":{
"dataType":"uint32",
"fieldNumber":5
}
}
}
},
{
"name":"unlock",
"data":{
"$id":"/token/events/unlock",
"type":"object",
"required":[
"address",
"module",
"tokenID",
"amount",
"result"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"module":{
"dataType":"string",
"minLength":1,
"maxLength":32,
"fieldNumber":2
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":3
},
"amount":{
"dataType":"uint64",
"fieldNumber":4
},
"result":{
"dataType":"uint32",
"fieldNumber":5
}
}
}
},
{
"name":"initializeToken",
"data":{
"$id":"/token/events/initializeTokenEvent",
"type":"object",
"required":[
"tokenID",
"result"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":1
},
"result":{
"dataType":"uint32",
"fieldNumber":2
}
}
}
},
{
"name":"initializeUserAccount",
"data":{
"$id":"/token/events/initializeUserAccount",
"type":"object",
"required":[
"address",
"tokenID",
"initializationFee",
"result"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"initializationFee":{
"dataType":"uint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"initializeEscrowAccount",
"data":{
"$id":"/token/events/initializeEscrowAccount",
"type":"object",
"required":[
"chainID",
"tokenID",
"initializationFee",
"result"
],
"properties":{
"chainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"initializationFee":{
"dataType":"uint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"recover",
"data":{
"$id":"/token/events/recover",
"type":"object",
"required":[
"terminatedChainID",
"tokenID",
"amount",
"result"
],
"properties":{
"terminatedChainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"amount":{
"dataType":"uint64",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"beforeCCCExecution",
"data":{
"$id":"/token/events/beforeCCCExecution",
"type":"object",
"required":[
"ccmID",
"messageFeeTokenID",
"relayerAddress",
"result"
],
"properties":{
"ccmID":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":1
},
"messageFeeTokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"relayerAddress":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":3
},
"result":{
"dataType":"uint32",
"fieldNumber":4
}
}
}
},
{
"name":"beforeCCMForwarding",
"data":{
"$id":"/token/events/beforeCCMForwarding",
"type":"object",
"required":[
"ccmID",
"messageFeeTokenID",
"result"
],
"properties":{
"ccmID":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":1
},
"messageFeeTokenID":{
"dataType":"bytes",
"minLength":8,
"maxLength":8,
"fieldNumber":2
},
"result":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
},
{
"name":"allTokensSupported"
},
{
"name":"allTokensSupportRemoved"
},
{
"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":"3c469e9dab4b",
"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":"3c469e9d82b7",
"data":{
"$id":"/token/store/escrow",
"type":"object",
"required":[
"amount"
],
"properties":{
"amount":{
"dataType":"uint64",
"fieldNumber":1
}
}
}
},
{
"key":"3c469e9d2af3",
"data":{
"$id":"/token/store/supply",
"type":"object",
"required":[
"totalSupply"
],
"properties":{
"totalSupply":{
"dataType":"uint64",
"fieldNumber":1
}
}
}
},
{
"key":"3c469e9dac04",
"data":{
"$id":"/token/store/supportedTokens",
"type":"object",
"required":[
"supportedTokenIDs"
],
"properties":{
"supportedTokenIDs":{
"type":"array",
"fieldNumber":1,
"items":{
"dataType":"bytes",
"minLength":8,
"maxLength":8
}
}
}
}
}
],
"endpoints":[
{
"name":"getBalance",
"request":{
"$id":"/token/endpoint/getBalance",
"type":"object",
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"tokenID":{
"type":"string",
"format":"hex",
"minLength":16,
"maxLength":16
}
},
"required":[
"address",
"tokenID"
]
},
"response":{
"$id":"/token/endpoint/getBalanceResponse",
"type":"object",
"required":[
"availableBalance",
"lockedBalances"
],
"properties":{
"availableBalance":{
"type":"string",
"format":"uint64"
},
"lockedBalances":{
"type":"array",
"items":{
"type":"object",
"required":[
"module",
"amount"
],
"properties":{
"module":{
"type":"string"
},
"amount":{
"type":"string",
"format":"uint64"
}
}
}
}
}
}
},
{
"name":"getBalances",
"request":{
"$id":"/token/endpoint/getBalance",
"type":"object",
"properties":{
"address":{
"type":"string",
"format":"klayr32"
}
},
"required":[
"address"
]
},
"response":{
"$id":"/token/endpoint/getBalancesResponse",
"type":"object",
"required":[
"balances"
],
"properties":{
"balances":{
"type":"array",
"items":{
"type":"object",
"required":[
"availableBalance",
"lockedBalances",
"tokenID"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex"
},
"availableBalance":{
"type":"string",
"format":"uint64"
},
"lockedBalances":{
"type":"array",
"items":{
"type":"object",
"required":[
"module",
"amount"
],
"properties":{
"module":{
"type":"string"
},
"amount":{
"type":"string",
"format":"uint64"
}
}
}
}
}
}
}
}
}
},
{
"name":"getTotalSupply",
"response":{
"$id":"/token/endpoint/getTotalSupplyResponse",
"type":"object",
"properties":{
"totalSupply":{
"type":"array",
"items":{
"type":"object",
"required":[
"totalSupply",
"tokenID"
],
"properties":{
"tokenID":{
"type":"string",
"format":"hex"
},
"totalSupply":{
"type":"string",
"format":"uint64"
}
}
}
}
}
}
},
{
"name":"getSupportedTokens",
"response":{
"$id":"/token/endpoint/getSupportedTokensResponse",
"type":"object",
"properties":{
"tokenIDs":{
"type":"array",
"items":{
"type":"string",
"format":"hex"
}
}
}
}
},
{
"name":"isSupported",
"request":{
"$id":"/token/endpoint/isSupportedRequest",
"type":"object",
"properties":{
"tokenID":{
"type":"string",
"format":"hex",
"minLength":16,
"maxLength":16
}
},
"required":[
"tokenID"
]
},
"response":{
"$id":"/token/endpoint/isSupportedResponse",
"type":"object",
"properties":{
"supported":{
"dataType":"boolean"
}
},
"required":[
"supported"
]
}
},
{
"name":"getEscrowedAmounts",
"response":{
"$id":"/token/endpoint/getEscrowedAmountsResponse",
"type":"object",
"properties":{
"escrowedAmounts":{
"type":"array",
"items":{
"type":"object",
"required":[
"escrowChainID",
"totalSupply",
"tokenID"
],
"properties":{
"escrowChainID":{
"type":"string",
"format":"hex"
},
"tokenID":{
"type":"string",
"format":"hex"
},
"amount":{
"type":"string",
"format":"uint64"
}
}
}
}
}
}
},
{
"name":"getInitializationFees",
"response":{
"$id":"/token/endpoint/getInitializationFees",
"type":"object",
"properties":{
"userAccount":{
"type":"string",
"format":"uint64"
},
"escrowAccount":{
"type":"string",
"format":"uint64"
}
},
"required":[
"userAccount",
"escrowAccount"
]
}
},
{
"name":"hasUserAccount",
"request":{
"$id":"/token/endpoint/hasUserAccountRequest",
"type":"object",
"properties":{
"address":{
"type":"string",
"format":"klayr32"
},
"tokenID":{
"type":"string",
"format":"hex",
"minLength":16,
"maxLength":16
}
},
"required":[
"address",
"tokenID"
]
},
"response":{
"$id":"/token/endpoint/hasUserAccountResponse",
"type":"object",
"properties":{
"exists":{
"type":"boolean"
}
}
}
},
{
"name":"hasEscrowAccount",
"request":{
"$id":"/token/endpoint/hasEscrowAccountRequest",
"type":"object",
"properties":{
"tokenID":{
"type":"string",
"format":"hex",
"minLength":16,
"maxLength":16
},
"escrowChainID":{
"type":"string",
"format":"hex"
}
},
"required":[
"tokenID",
"escrowChainID"
]
},
"response":{
"$id":"/token/endpoint/hasEscrowAccountResponse",
"type":"object",
"properties":{
"exists":{
"type":"boolean"
}
}
}
}
],
"assets":[
{
"version":0,
"data":{
"$id":"/token/module/genesis",
"type":"object",
"required":[
"userSubstore",
"supplySubstore",
"escrowSubstore",
"supportedTokensSubstore"
],
"properties":{
"userSubstore":{
"type":"array",
"fieldNumber":1,
"items":{
"type":"object",
"required":[
"address",
"tokenID",
"availableBalance",
"lockedBalances"
],
"properties":{
"address":{
"dataType":"bytes",
"format":"klayr32",
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"fieldNumber":2,
"minLength":8,
"maxLength":8
},
"availableBalance":{
"dataType":"uint64",
"fieldNumber":3
},
"lockedBalances":{
"type":"array",
"fieldNumber":4,
"items":{
"type":"object",
"required":[
"module",
"amount"
],
"properties":{
"module":{
"dataType":"string",
"minLength":1,
"maxLength":32,
"fieldNumber":1
},
"amount":{
"dataType":"uint64",
"fieldNumber":2
}
}
}
}
}
}
},
"supplySubstore":{
"type":"array",
"fieldNumber":2,
"items":{
"type":"object",
"required":[
"tokenID",
"totalSupply"
],
"properties":{
"tokenID":{
"dataType":"bytes",
"fieldNumber":1,
"minLength":8,
"maxLength":8
},
"totalSupply":{
"dataType":"uint64",
"fieldNumber":2
}
}
}
},
"escrowSubstore":{
"type":"array",
"fieldNumber":3,
"items":{
"type":"object",
"required":[
"escrowChainID",
"tokenID",
"amount"
],
"properties":{
"escrowChainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":1
},
"tokenID":{
"dataType":"bytes",
"fieldNumber":2,
"minLength":8,
"maxLength":8
},
"amount":{
"dataType":"uint64",
"fieldNumber":3
}
}
}
},
"supportedTokensSubstore":{
"type":"array",
"fieldNumber":4,
"items":{
"type":"object",
"required":[
"chainID",
"supportedTokenIDs"
],
"properties":{
"chainID":{
"dataType":"bytes",
"minLength":4,
"maxLength":4,
"fieldNumber":1
},
"supportedTokenIDs":{
"type":"array",
"fieldNumber":2,
"items":{
"dataType":"bytes",
"minLength":8,
"maxLength":8
}
}
}
}
}
}
}
}
],
"name":"token"
},
{
"commands":[
],
"events":[
{
"name":"generatorKeyRegistration",
"data":{
"$id":"/validators/event/generatorKeyRegData",
"type":"object",
"required":[
"generatorKey",
"result"
],
"properties":{
"generatorKey":{
"dataType":"bytes",
"minLength":32,
"maxLength":32,
"fieldNumber":1
},
"result":{
"dataType":"uint32",
"fieldNumber":2
}
}
}
},
{
"name":"blsKeyRegistration",
"data":{
"$id":"/validators/event/blsKeyRegData",
"type":"object",
"required":[
"blsKey",
"result"
],
"properties":{
"blsKey":{
"dataType":"bytes",
"minLength":48,
"maxLength":48,
"fieldNumber":1
},
"proofOfPossession":{
"dataType":"bytes",
"minLength":96,
"maxLength":96,
"fieldNumber":2
},
"result":{
"dataType":"uint32",
"fieldNumber":3
}
}
}
}
],
"stores":[
{
"key":"66d18af49bbe",
"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":"66d18af42e5f",
"data":{
"$id":"/validators/blsKeyData",
"title":"Validators Addresses",
"type":"object",
"properties":{
"address":{
"dataType":"bytes",
"fieldNumber":1
}
},
"required":[
"address"
]
}
},
{
"key":"66d18af43dce",
"data":{
"$id":"/validators/validatorsParams",
"type":"object",
"required":[
"validators",
"preCommitThreshold",
"certificateThreshold"
],
"properties":{
"preCommitThreshold":{
"fieldNumber":1,
"dataType":"uint64"
},
"certificateThreshold":{
"fieldNumber":2,
"dataType":"uint64"
},
"validators":{
"fieldNumber":3,
"type":"array",
"items":{
"type":"object",
"required":[
"address",
"bftWeight",
"generatorKey",
"blsKey"
],
"properties":{
"address":{
"fieldNumber":1,
"dataType":"bytes",
"format":"klayr32"
},
"bftWeight":{
"fieldNumber":2,
"dataType":"uint64"
},
"generatorKey":{
"fieldNumber":3,
"dataType":"bytes"
},
"blsKey":{
"fieldNumber":4,
"dataType":"bytes"
}
}
}
}
}
}
}
],
"endpoints":[
{
"name":"validateBKLYey",
"request":{
"$id":"/validators/endpoint/validateBKLYeyRequest",
"title":"Bls Key Properties",
"type":"object",
"properties":{
"proofOfPossession":{
"type":"string",
"format":"hex"
},
"blsKey":{
"type":"string",
"format":"hex"
}
},
"required":[
"proofOfPossession",
"blsKey"
]
},
"response":{
"$id":"/validators/endpoint/validateBKLYeyResponse",
"title":"Bls Key Properties",
"type":"object",
"properties":{
"valid":{
"type":"boolean"
}
},
"required":[
"valid"
]
}
},
{
"name":"getValidator",
"request":{
"$id":"/validators/endpoint/getValidatorRequest",
"title":"Validator properties",
"type":"object",
"properties":{
"address":{
"dataType":"string",
"format":"klayr32"
}
},
"required":[
"address"
]
},
"response":{
"$id":"/validators/endpoint/getValidatorResponse",
"title":"Validator properties",
"type":"object",
"properties":{
"generatorKey":{
"type":"string",
"format":"hex"
},
"blsKey":{
"type":"string",
"format":"hex"
}
},
"required":[
"generatorKey",
"blsKey"
]
}
}
],
"assets":[
],
"name":"validators"
}
]
}
passphrase
Commands relating to passphrases.
USAGE
$ ./bin/run passphrase:COMMAND
COMMANDS
./bin/run passphrase:decrypt Decrypt the secret passphrase using the password provided at the time of encryption.
./bin/run passphrase:encrypt Encrypt the secret passphrase using password.
passphrase:decrypt
Decrypts the secret passphrase using the password provided at the time of encryption.
USAGE
$ ./bin/run passphrase:decrypt -f <value> [-w <value>]
FLAGS
-f, --file-path=<value> (required) Path of the file to import from
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
DESCRIPTION
Decrypt secret passphrase using the password provided at the time of encryption.
EXAMPLES
passphrase:decrypt --file-path ./my/path/output.json
passphrase:decrypt --file-path ./my/path/output.json --password your-password
Example
./bin/run passphrase:decrypt --file-path ./my/path/keys.json
? Please enter password: [hidden] ? Please re-enter password: [hidden]
{"passphrase":"my secret passphrase"}
passphrase:encrypt
Encrypts the secret passphrase using a password.
USAGE
$ ./bin/run passphrase:encrypt [-w <value>] [-p <value>] [--output-public-key] [-o <value>]
FLAGS
-o, --output=<value> The output directory. Default will set to current working directory.
-p, --passphrase=<value> Specifies a source for your secret passphrase. Command will prompt you for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not important)
-w, --password=<value> Specifies a source for your secret password. Command will prompt you for input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--output-public-key Includes the public key in the output. This option is provided for the convenience of node operators.
DESCRIPTION
Encrypt secret passphrase using password.
EXAMPLES
passphrase:encrypt
passphrase:encrypt --passphrase your-passphrase --output /mypath/keys.json
passphrase:encrypt --password your-password
passphrase:encrypt --password your-password --passphrase your-passphrase --output /mypath/keys.json
passphrase:encrypt --output-public-key --output /mypath/keys.json
Example
./bin/run passphrase:encrypt -p 'my secret passphrase'
? Please enter password: [hidden] ? Please re-enter password: [hidden]
{
"encryptedPassphrase": {
"ciphertext": "f0abd47a3095f288f3b291a883222cd64d7748b0",
"mac": "f88e98d461c9be73bcf8f3b37e5e8123a7f7ce351fcdf3b9c9f226f5e07d9cda",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "a5e440ce3bc216ec8b2bc122155971c9"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "272b5a4caa0b3605ae9837b0",
"tag": "7a0601cc12ca169300aba9a9f53c652b"
},
"version": "1"
}
}
transaction
Commands relating to blockchain transactions.
USAGE
$ ./bin/run transaction:COMMAND
COMMANDS
./bin/run transaction:create Create a transaction that can be broadcasted to the network. Note: The fee and amount should be in Beddows!!
./bin/run transaction:get Get transaction from local node by ID.
./bin/run transaction:send Send the transaction to the local node.
./bin/run transaction:sign Sign encoded transaction.
transaction:create
Creates a transaction that can be broadcast to the network.
The fee and amount are expected in Beddows! |
USAGE
$ ./bin/run transaction:create [MODULE] [COMMAND] [FEE] [-p <value>] [-a <value>] [-j] [--send | [--offline --chain-id <value> --nonce <value>]] [--no-signature -s <value>] [-d <value>] [-k <value>] [--pretty] [-f <value>]
ARGUMENTS
MODULE Registered transaction module.
COMMAND Registered transaction command.
FEE Transaction fee in Beddows.
FLAGS
-a, --params=<value> Creates transaction with specific params information
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-f, --file=<value> The file to upload.
Example:
--file=./myfile.json
-j, --json Print the transaction in JSON format.
-k, --key-derivation-path=<value> [default: m/44'/134'/0'] Key derivation path to use to derive keypair from passphrase
-p, --passphrase=<value> Specifies a source for your secret passphrase. Command will prompt you for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not important)
-s, --sender-public-key=<value> Set a custom senderPublicKey property for the transaction, to be used when account address does not correspond to signer's private key
--chain-id=<value>
--no-signature Creates the transaction without a signature. Your passphrase will therefore not be required
--nonce=<value> Nonce of the transaction.
--offline Specify whether to connect to a local node or not.
--pretty Prints JSON in pretty format rather than condensed.
--send Create and immediately send transaction to a node
DESCRIPTION
Create transaction which can be broadcasted to the network. Note: fee and amount should be in Beddows!!
EXAMPLES
transaction:create token transfer 100000000 --params='{"amount":100000000,"recipientAddress":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'
transaction:create token transfer 100000000 --params='{"amount":100000000,"recipientAddress":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}' --json
transaction:create token transfer 100000000 --offline --network mainnet --chain-id 10000000 --nonce 1 --params='{"amount":100000000,"recipientAddress":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'
transaction:create token transfer 100000000 --file=/txn_params.json
transaction:create token transfer 100000000 --file=/txn_params.json --json
Example
./bin/run transaction:create token transfer 100000000
? Please enter passphrase: [hidden] ? Please re-enter passphrase: [hidden] ? Please enter: tokenID: 0000000000000000 ? Please enter: amount: 100000 ? Please enter: recipientAddress: klyzot8pzdcvjhpjwrhq3dkkbf499ok7mhwkrvsq3 ? Please enter: data: Hello My World
{
"transaction":"0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032340a08000000000000000010a08d061a140326f20343173a4e5e5daa354a1bc96b594717b7220e48656c6c6f204d7920576f726c643a409f1652a5072ce8980e5e151d4c912ec5b3fdaebdf05b6319f088520bfa71651165a0ba6fe7da182038839a32bfd9939de5c6f66823e1c118e29e7ee8a2d58601"
}
transaction:get
Gets a transaction from the local node by ID.
USAGE
$ ./bin/run transaction:get [ID] [-d <value>] [--pretty]
ARGUMENTS
ID Transaction ID in hex format.
FLAGS
-d, --data-path=data-path Directory path to specify where the node data is stored. The environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in a pretty format rather than condensed.
DESCRIPTION
Get transaction from local node by ID.
EXAMPLE
./bin/run transaction:get eab06c6a22e88bca7150e0347a7d976acd070cb9284423e6eabecd657acc1263
Example
$ ./bin/run transaction:get ae9da3f5a3114fc4bc1e2c621455c6485aa2d36038c8217551015aaabdce2dd6 --pretty
{
"module": "token",
"command": "transfer",
"params": {
"tokenID": "0000000000000000",
"amount": "100000",
"recipientAddress": "klyzot8pzdcvjhpjwrhq3dkkbf499ok7mhwkrvsq3",
"data": "Hello"
},
"nonce": "0",
"fee": "100000000",
"senderPublicKey": "a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"signatures": [
"f8ff8d1edae813dcd9c9b3e9f910e7fc398da37c4450385b604bfd626370a4ebd3b85413db766bc0a0fd103260b1ebdca6a2ba200a5ef9688324b71011c7cb01"
],
"id": "ae9da3f5a3114fc4bc1e2c621455c6485aa2d36038c8217551015aaabdce2dd6"
}
transaction:send
Sends a transaction to the local node.
USAGE
$ ./bin/run transaction:send [TRANSACTION] [-d <value>] [--pretty]
ARGUMENTS
TRANSACTION A transaction to be sent to the node encoded as hex string
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Send transaction to the local node.
EXAMPLES
transaction:send 080810011880cab5ee012220fd061b9146691f3c56504be051175d5b76d1b1d0179c5c4370e18534c58821222a2408641214ab0041a7d3f7b2c290b5b834d46bdc7b7eb858151a0a73656e6420746f6b656e324028edd3601cdc35a41bb23415a0d9f3c3e9cf188d9971adf18742cea39d58aa84809aa87bcfe6feaac46211c80472ad9297fd87727709f5d7e7b4134caf106b02
Example
./bin/run transaction:send 0a05746f6b656e12087472616e7366657218002080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0322b0a08000000000000000010a08d061a140326f20343173a4e5e5daa354a1bc96b594717b7220548656c6c6f3a40f8ff8d1edae813dcd9c9b3e9f910e7fc398da37c4450385b604bfd626370a4ebd3b85413db766bc0a0fd103260b1ebdca6a2ba200a5ef9688324b71011c7cb01
Transaction with id: 'ae9da3f5a3114fc4bc1e2c621455c6485aa2d36038c8217551015aaabdce2dd6' received by node.
transaction:sign
Signs an encoded transaction.
USAGE
$ ./bin/run transaction:sign [TRANSACTION] [-p <value>] [-j] [--offline --chain-id <value>] [--mandatory-keys <value>] [--optional-keys <value>] [-d <value>] [-k <value>] [--pretty]
ARGUMENTS
TRANSACTION The transaction to be signed encoded as hex string
FLAGS
-d, --data-path=<value> Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH" can also be used.
-j, --json Print the transaction in JSON format.
-k, --key-derivation-path=<value> [default: m/44'/134'/0'] Key derivation path to use to derive keypair from passphrase
-p, --passphrase=<value> Specifies a source for your secret passphrase. Command will prompt you for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not important)
--chain-id=<value>
--mandatory-keys=<value>... Mandatory publicKey string in hex format.
--offline Specify whether to connect to a local node or not.
--optional-keys=<value>... Optional publicKey string in hex format.
--pretty Prints JSON in pretty format rather than condensed.
DESCRIPTION
Sign encoded transaction.
EXAMPLES
transaction:sign <hex-encoded-binary-transaction>
transaction:sign <hex-encoded-binary-transaction> --network testnet
Example
./bin/run transaction:sign 0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06 --pretty
? Please enter passphrase: [hidden] ? Please re-enter passphrase: [hidden]
{
"transaction": "0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06"
}