Core CLI
The Core CLI is a command-line interface that is available for every Klayr Core node.
A complete CLI reference of a mainchain node is summarized on this page.
Commands
help
Displays a summary of all available CLI commands of Klayr Core.
Klayr blockchain application platform
VERSION
klayr-core/4.1.5 darwin-arm64 node-v18.20.2
USAGE
$ klayr-core [COMMAND]
TOPICS
block Commands relating to Klayr Core blocks.
blockchain Commands relating to Klayr Core blockchain data.
config Commands relating to Klayr Core node configuration.
endpoint Invokes the provided endpoint.
generator Disable block generation for given validator address.
genesis-block Creates genesis block file.
keys Return keys corresponding to the given passphrase.
system Commands relating to Klayr Core node.
passphrase Commands relating to Klayr Core passphrases.
sdk Commands relating to Klayr SDK development.
transaction Commands relating to Klayr Core transactions.
COMMANDS
autocomplete Display autocomplete installation instructions
console Klayr interactive REPL session to run commands.
hash-onion Create hash onions to be used by the forger.
help Display help for klayr-core.
start Start Blockchain Node.
version
autocomplete
Displays autocomplete installation instructions.
USAGE
$ klayr-core autocomplete [SHELL]
ARGUMENTS
SHELL shell type
OPTIONS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
EXAMPLES
$ klayr-core autocomplete
$ klayr-core autocomplete bash
$ klayr-core autocomplete zsh
$ klayr-core autocomplete --refresh-cache
Example
klayr-core autocomplete
Building the autocomplete cache... done
Setup Instructions for KLAYR-CORE CLI Autocomplete ---
1) Add the autocomplete env var to your zsh profile and source it
$ printf "eval $(klayr-core autocomplete:script zsh)" >> ~/.zshrc; source ~/.zshrc
NOTE: After sourcing, you can run `$ compaudit -D` to ensure no permissions conflicts are present
2) Test it out, e.g.:
$ klayr-core <TAB> # Command completion
$ klayr-core command --<TAB> # Flag completion
Enjoy!
console
Provides an interactive Javascript REPL session to run KLAYR commands.
USAGE
$ klayr-core console
OPTIONS
--api-ipc=api-ipc Enable api-client with IPC communication.
--api-ws=api-ws Enable api-client with Websocket communication.
EXAMPLES
console
console --api-ws=ws://localhost:8080
console --api-ipc=/path/to/server
Example
klayr-core console
Entering Klayr REPL: type `Ctrl+C` or `.exit` to exit
klayr-core >
hash-onion
Creates hash onions to be used by a generator.
USAGE
$ klayr-core hash-onion
OPTIONS
-c, --count=count [default: 1000000] Total number of hashes to produce
-d, --distance=distance [default: 1000] Distance between each hash
-o, --output=output Output file path
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
hash-onion --count=1000000 --distance=2000 --pretty
hash-onion --count=1000000 --distance=2000 --output ~/my_onion.json
Example
klayr-core hash-onion --count=10 --distance=2 --pretty
{
"count": 10,
"distance": 2,
"hashes": [
"e27512a5720052cd61308bef373e9312",
"3cef453ee632c86651e54ce79614c05e",
"7ceaefaa0c13111ca93e811a78b26c4e",
"625b905e51992a1b5a018bca8e37cf4a",
"6652faaab3427351a8a6c4ac26a19968",
"eafe02868d94dcedbcf8630776311454"
]
}
start
Starts the blockchain node.
USAGE
$ klayr-core start
OPTIONS
-c, --config=config File path to a custom config. Environment variable
"KLAYR_CONFIG_FILE" can also be used.
-d, --data-path=data-path Directory path to specify where node data is stored. Environment
variable "KLAYR_DATA_PATH" can also be used.
-l, --log=trace|debug|info|warn|error|fatal Log level. Environment variable "KLAYR_LOG_LEVEL" can also be
used.
-n, --network=network [default: mainnet] Default network config to use. Environment
variable "KLAYR_NETWORK" can also be used.
-p, --port=port Open port for the peer to peer incoming connections. Environment
variable "KLAYR_PORT" can also be used.
-u, --genesis-block-url=genesis-block-url The URL to download the genesis block. Environment variable
"KLAYR_GENESIS_BLOCK_URL" can also be used. Kindly ensure that the
provided URL downloads the genesis block 'blob' in the tarball
format.
--api-host=api-host Host to be used for api-client. Environment variable
"KLAYR_API_HOST" can also be used.
--api-http Enable HTTP communication for api-client. Environment variable
"KLAYR_API_HTTP" can also be used.
--api-ipc Enable IPC communication. This will load plugins as a child
process and communicate over IPC. Environment variable
"KLAYR_API_IPC" can also be used.
--api-port=api-port Port to be used for api-client. Environment variable
"KLAYR_API_PORT" can also be used.
--api-ws Enable websocket communication for api-client. Environment
variable "KLAYR_API_WS" can also be used.
--dashboard-plugin-port=dashboard-plugin-port Port to be used for Dashboard Plugin. Environment variable
"KLAYR_DASHBOARD_PLUGIN_PORT" can also be used.
--enable-chain-connector-plugin Enable Chain Connector Plugin. Environment variable
"KLAYR_ENABLE_CHAIN_CONNECTOR_PLUGIN" can also be used.
--enable-dashboard-plugin Enable Dashboard Plugin. Environment variable
"KLAYR_ENABLE_DASHBOARD_PLUGIN" can also be used.
--enable-faucet-plugin Enable Faucet Plugin. Environment variable
"KLAYR_ENABLE_FAUCET_PLUGIN" can also be used.
--enable-forger-plugin Enable Forger Plugin. Environment variable
"KLAYR_ENABLE_FORGER_PLUGIN" can also be used.
--enable-monitor-plugin Enable Monitor Plugin. Environment variable
"KLAYR_ENABLE_MONITOR_PLUGIN" can also be used.
--enable-report-misbehavior-plugin Enable ReportMisbehavior Plugin. Environment variable
"KLAYR_ENABLE_REPORT_MISBEHAVIOR_PLUGIN" can also be used.
--faucet-plugin-port=faucet-plugin-port Port to be used for Faucet Plugin. Environment variable
"KLAYR_FAUCET_PLUGIN_PORT" can also be used.
--monitor-plugin-port=monitor-plugin-port Port to be used for Monitor Plugin. Environment variable
"KLAYR_MONITOR_PLUGIN_PORT" can also be used.
--monitor-plugin-whitelist=monitor-plugin-whitelist List of IPs in comma separated value to allow the connection.
Environment variable "KLAYR_MONITOR_PLUGIN_WHITELIST" can also be
used.
--overwrite-config Overwrite network configs if they exist already
--overwrite-genesis-block Download and overwrite existing genesis block. Environment
variable "KLAYR_GENESIS_BLOCK_OVERWRITE" can also be used.
--seed-peers=seed-peers Seed peers to initially connect to in format of comma separated
"ip:port". IP can be DNS name or IPV4 format. Environment
variable "KLAYR_SEED_PEERS" can also be used.
EXAMPLES
start
start --network devnet --data-path /path/to/data-dir --log debug
start --network devnet --api-ws
start --network devnet --api-ws --api-port 8888
start --network devnet --port 9000
start --network devnet --port 9002 --seed-peers 127.0.0.1:9001,127.0.0.1:9000
start --network testnet --overwrite-config
start --network testnet --config ~/my_custom_config.json
Example
klayr-core start --network devnet --api-ws
Starting Klayr klayr-core at /Users/XYZ/.klayr/klayr-core
Starting the app at /Users/XYZ/.klayr/klayr-core
If you experience any type of error, please open an issue on Klayr GitHub: https://github.com/KlayrHQ/klayr-sdk/issues
Contribution guidelines can be found at Klayr-sdk: https://github.com/KlayrHQ/klayr-sdk/blob/development/docs/CONTRIBUTING.md
...
Topics
block
Commands relating to Klayr Core blocks.
USAGE
$ klayr-core block
COMMANDS
block:get Get block information for a given id or height.
block:get
Gets block information for a given id or height.
USAGE
$ klayr-core block:get INPUT
ARGUMENTS
INPUT Height in number or block id in hex format.
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
block:get e082e79d01016632c451c9df9276e486cb7f460dc793ff5b10d8f71eecec28b4
block:get 2
Example
klayr-core block:get 2 --pretty
{
"header": {
"version": 2,
"timestamp": 1680868980,
"height": 2,
"previousBlockID": "9e442947fda74955dea2e6a490b1158a78655bd5fb6875cd945bdc02841523fd",
"stateRoot": "2211e781083d5def0da750cf96f75abd3b27d68e944ba01728ddfb4fb18fa5d2",
"assetRoot": "8fb5ed936653eba7fb8e05fa7ad87a75e10347ca544574326dd11d159bcd015d",
"eventRoot": "15caa254f64d161c61daede6f2fec75451381a1268b83997ebe86887c81ca2c8",
"transactionRoot": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"validatorsHash": "8438b6d8c70e18c79a9215f53b6c4677e2f4bab793479a35c03d8f514f3389b3",
"aggregateCommit": {
"height": 0,
"aggregationBits": "",
"certificateSignature": ""
},
"generatorAddress": "klyet9bd2coqrbbojp2fnj744atmuk6ys6yumu384",
"maxHeightPrevoted": 0,
"maxHeightGenerated": 0,
"impliesMaxPrevotes": true,
"signature": "dd76712757a43d1324e2f3e40adea505f8a48a30760301d379321ff483fb2ff136f83877b6a4c12bfd23dd374461be1bc8212ccb07ba3fc4dbbb6f58babc6004",
"id": "f74a3057308ef04fbececeda16b2cb65226f076bb8d2bf026e3982b860758b6d"
},
"transactions": [],
"assets": [
{
"module": "random",
"data": {
"seedReveal": "efb5d9ada0e8e85cb4f97efa61a1e5ee"
}
}
]
}
blockchain
Commands relating to Klayr Core blockchain data.
USAGE
$ klayr-core blockchain
COMMANDS
blockchain:download Download snapshot from <URL>.
blockchain:export Export to <FILE>.
blockchain:hash Generate SHA256 hash from <PATH>.
blockchain:import Import from <FILE>.
blockchain:reset Reset the blockchain data.
blockchain:download
Download the snapshot from the given <URL>.
USAGE
$ klayr-core blockchain:download
OPTIONS
-n, --network=network [default: mainnet] Default network config to use. Environment variable "KLAYR_NETWORK" can also
be used.
-o, --output=output Directory path to specify where snapshot is downloaded. By default outputs the files to current
working directory.
-u, --url=url The url to the snapshot.
EXAMPLES
download
download --network betanet
download --url https://snapshots.klayr.xyz/mainnet/blockchain.db.tar.gz --output ./downloads
Example
klayr-core blockchain:download
Downloading snapshot from https://snapshots.klayr.xyz/mainnet/blockchain.db.tar.gz to /Users/XYZ
Downloaded to path: /Users/XYZ
blockchain:export
Exports the blockchain’s data to a file.
USAGE
$ klayr-core blockchain:export
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-o, --output=output The output directory. Default will set to current working directory.
EXAMPLES
blockchain:export
blockchain:export --data-path ./data --output ./my/path/
Example
klayr-core blockchain:export
Exporting blockchain:
/Users/XYZ/.klayr/klayr-core/data
Export completed:
/Users/XYZ/blockchain.tar.gz
blockchain:hash
Generates SHA256 hash from the blockchain's data.
USAGE
$ klayr-core blockchain:hash
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
EXAMPLES
blockchain:hash
blockchain:hash --data-path ./data
Example
klayr-core blockchain:hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
blockchain:import
Imports the blockchain’s data from a file.
USAGE
$ klayr-core blockchain:import FILEPATH
ARGUMENTS
FILEPATH Path to the gzipped blockchain data.
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-f, --force Delete and overwrite existing blockchain data
EXAMPLES
blockchain:import ./path/to/blockchain.tar.gz
blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/
blockchain:import ./path/to/blockchain.tar.gz --data-path ./klayr/ --force
Example
klayr-core blockchain:import /Users/XYZ/blockchain.tar.gz --force
Importing blockchain from /Users/XYZ/blockchain.tar.gz
Import completed.
/Users/XYZ/.klayr/klayr-core
blockchain:reset
Resets the blockchain’s data.
USAGE
$ klayr-core blockchain:reset
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-y, --yes Skip confirmation prompt.
EXAMPLES
blockchain:reset
blockchain:reset --data-path ./klayr
blockchain:reset --yes
Example
klayr-core blockchain:reset
? Are you sure you want to reset the db? yes
Blockchain data has been reset.
config
Commands relating to the configuration of the blockchain client.
USAGE
$ klayr-core config
COMMANDS
config:create Creates network configuration file.
config:show Show application config.
config:create
Creates a configuration file for the blockchain application.
USAGE
$ klayr-core config:create
OPTIONS
-i, --chain-id=chain-id (required) ChainID in hex format. For example, Klayr mainnet mainchain is 00000000
-l, --label=label [default: beta-sdk-app] App Label
-o, --output=output [default: /Users/sameer/Documents/Klayr/github/klayr-core] Directory where the config file is
saved
EXAMPLES
config:create --output mydir
config:create --output mydir --label beta-sdk-app
config:create --output mydir --label beta-sdk-app --community-identifier sdk
Example
klayr-core config:create --chain-id 04000000
config:show
Shows the application’s config.
USAGE
$ klayr-core config:show
OPTIONS
-c, --config=config File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can also be used.
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
config:show
config:show --pretty
config:show --config ./custom-config.json --data-path ./data
Example
klayr-core config:show --pretty
{
"system": {
"dataPath": "/Users/XYZ/.klayr/klayr-core",
"logLevel": "info",
"keepEventsForHeights": -1
},
"rpc": {
"modes": [
"ipc",
"ws",
"http"
],
"port": 7887,
"host": "0.0.0.0"
},
"genesis": {
"block": {
"fromFile": "./config/genesis_block.blob"
},
"blockTime": 7,
"chainID": "04000000",
"maxTransactionsSize": 15360
},
"generator": {
"keys": {
"fromFile": "./config/dev-validators.json"
}
},
"network": {
"version": "1.0",
"seedPeers": [],
"port": 7667
},
"transactionPool": {
"maxTransactions": 4096,
"maxTransactionsPerAccount": 64,
"transactionExpiryTime": 10800000,
"minEntranceFeePriority": "0",
"minReplacementFeeDifference": "10"
},
"modules": {
"dynamicReward": {
"tokenID": "0400000000000000",
"offset": 360,
"distance": 1000,
"brackets": [
"500000000",
"400000000",
"300000000",
"200000000",
"100000000"
]
},
"fee": {
"feeTokenID": "0400000000000000"
},
"pos": {
"useInvalidBKLYey": false
},
"token": {
"feeTokenID": "0400000000000000"
}
},
"plugins": {
}
}
endpoint
Commands relating to invoking and listing the endpoints.
USAGE
$ klayr-core endpoint
COMMANDS
endpoint:invoke Invokes the provided endpoint.
endpoint:list Lists registered endpoints.
endpoint:invoke
Invokes the provided endpoint.
USAGE
$ klayr-core endpoint:invoke ENDPOINT [PARAMS]
ARGUMENTS
ENDPOINT Endpoint to invoke
PARAMS Endpoint parameters (Optional)
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-f, --file=file Input file.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
endpoint:invoke {endpoint} {parameters}
endpoint:invoke --data-path --file
endpoint:invoke generator_getAllKeys
endpoint:invoke consensus_getBFTParameters '{"height": 2}' -d ~/.klayr/pos-mainchain --pretty
endpoint:invoke consensus_getBFTParameters -f ./input.json
Example
klayr-core endpoint:invoke system_getNodeInfo --pretty
{
"version": "4.1.5",
"networkVersion": "1.0",
"chainID": "04000000",
"lastBlockID": "dd207c37a76c453e4b718f2bf238b84186f6e673679915b197ce1fdf94d3c180",
"height": 49,
"finalizedHeight": 0,
"syncing": false,
"unconfirmedTransactions": 0,
"genesisHeight": 0,
"genesis": {
"block": {
"fromFile": "./config/genesis_block.blob"
},
"blockTime": 7,
"maxTransactionsSize": 15360,
"chainID": "04000000"
},
"network": {
"version": "1.0",
"port": 7667,
"seedPeers": []
}
}
endpoint:list
Returns the list of all the module endpoints
USAGE
$ klayr-core endpoint:list [ENDPOINT]
ARGUMENTS
ENDPOINT Endpoint name (Optional)
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-i, --info Prints additional info; Request and Response objects.
-m, --module=module Parent module.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
endpoint:list
endpoint:list {endpoint} -m {module}
endpoint:list {endpoint} -m {module} -i
endpoint:list -m validator
endopint:list getBalance
endpoint:list get -m token
endpoint:list getBalances -m token -i --pretty
endpoint:list getBalances -m token -d ~/.klayr/pos-mainchain
Example
klayr-core endpoint:list --pretty
[
"auth_getAuthAccount",
"auth_isValidNonce",
"auth_isValidSignature",
"auth_getMultiSigRegMsgSchema",
"auth_sortMultisignatureGroup",
"auth_getMultiSigRegMsgTag",
"dynamicReward_getDefaultRewardAtHeight",
"dynamicReward_getAnnualInflation",
"dynamicReward_getRewardTokenID",
"fee_getMinFeePerByte",
"fee_getFeeTokenID",
"interoperability_getChainAccount",
"interoperability_getAllChainAccounts",
"interoperability_getChannel",
"interoperability_getOwnChainAccount",
"interoperability_getTerminatedStateAccount",
"interoperability_getTerminatedOutboxAccount",
"interoperability_getRegistrationFee",
"interoperability_getMinimumMessageFee",
"interoperability_getChainValidators",
"interoperability_isChainIDAvailable",
"interoperability_isChainNameAvailable",
"legacy_getLegacyAccount",
"pos_getAllValidators",
"pos_getValidator",
"pos_getStaker",
"pos_getConstants",
"pos_getPoSTokenID",
"pos_getClaimableRewards",
"pos_getLockedReward",
"pos_getLockedStakedAmount",
"pos_getValidatorsByStake",
"pos_getPendingUnlocks",
"pos_getRegistrationFee",
"random_isSeedRevealValid",
"random_setHashOnion",
"random_getHashOnionSeeds",
"random_hasHashOnion",
"random_getHashOnionUsage",
"token_getBalance",
"token_getBalances",
"token_getTotalSupply",
"token_getSupportedTokens",
"token_isSupported",
"token_getEscrowedAmounts",
"token_getInitializationFees",
"token_hasUserAccount",
"token_hasEscrowAccount",
"validators_validateBKLYey",
"validators_getValidator"
]
generator
Commands relating to the block generation and generator-info of a blockchain.
USAGE
$ klayr-core generator
COMMANDS
generator:disable Disable block generation for given validator address.
generator:enable Enable block generation for given validator address.
generator:export Export to <FILE>.
generator:import Import from <FILE>.
generator:status Get forging information for the locally running node.
generator:disable
Disables block generation for a given generator’s address.
USAGE
$ klayr-core generator:disable ADDRESS
ARGUMENTS
ADDRESS Address of an account in a klayr32 format.
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-w, --password=password Specifies a source for your secret password. Command will prompt you for input if this
option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data
generator:disable klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz --data-path ./data --password your_password
Example
$ klayr-core generator:disable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
? Enter password to decrypt the encrypted passphrase: ********
Disabled block generation for klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3
generator:enable
Enables block generation for a given generator's address.
USAGE
$ klayr-core generator:enable ADDRESS
ARGUMENTS
ADDRESS Address of an account in a klayr32 format.
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable
"KLAYR_DATA_PATH" can also be used.
-w, --password=password Specifies a source for your secret password. Command will prompt you for
input if this option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not
important)
--height=height Last generated block height.
--max-height-generated=max-height-generated Validator's largest previously generated height.
--max-height-prevoted=max-height-prevoted Validator's largest prevoted height for a block.
--pretty Prints JSON in pretty format rather than condensed.
--use-status-value Use status value from the connected node
EXAMPLES
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --use-status-value
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
--max-height-prevoted=10
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
--max-height-prevoted=10 --data-path ./data
generator:enable kly24cd35u4jdq8szo3pnsqe5dsxwrnazyqqqg5eu --height=100 --max-height-generated=30
--max-height-prevoted=10 --data-path ./data --password your_password
Example
klayr-core generator:enable klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 --use-status-value
Current block generation status for validator account klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3 is:
{"height":14814092,"maxHeightPrevoted":14814017,"maxHeightGenerated":14814025}
? Do you want to use the above values to enable block generation? yes
? Enter password to decrypt the encrypted passphrase: ********
Updated block generation status:
{"address":"klyqaxxmj78frvgpjgwvf4yqjjkcrr9yhn2sxxwm3","enabled":true}
generator:export
Exports generator’s data to a file.
USAGE
$ klayr-core generator:export
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-o, --output=output The output directory. Default will set to current working directory.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
generator:export
generator:export --output /mypath/generator_info.json
generator:export --output /mypath/generator_info.json --data-path ./data
Example
klayr-core generator:export --output /Users/XYZ/genInfo.json
Generator info is exported to /Users/XYZ/genInfo.json
generator:import
Imports generator’s data from a file.
USAGE
$ klayr-core generator:import
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-f, --file-path=file-path (required) Path of the file to import from
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
generator:import --file-path ./my/path/genInfo.json
generator:import --file-path ./my/path/genInfo.json --data-path ./data
Example
klayr-core generator:import --file-path /Users/XYZ/genInfo.json
generator:status
Gets block generation information for the locally running node.
USAGE
$ klayr-core generator:status
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
generator:status
generator:status --data-path ./sample --pretty
Example
klayr-core generator:status --pretty
{
"info": {
"status":
[{
"address": "klyzpvesvp7p9odszcp3s4dffnj4ozqz7b79tonqp",
"height": 574,
"maxHeightPrevoted": 487,
"maxHeightGenerated": 459,
"enabled": true
}
]}
}
genesis-block
Commands relating to the genesis block.
USAGE
$ klayr-core genesis-block
COMMANDS
genesis-block:create Creates genesis block file.
genesis-block:download Download genesis block.
genesis-block:create
Creates a genesis block file and the corresponding generator's configuration data and accounts information.
USAGE
$ klayr-core genesis-block:create
OPTIONS
-c, --config=config File path to a custom config. Environment variable "KLAYR_CONFIG_FILE" can
also be used.
-f, --assets-file=assets-file (required) Path to file which contains genesis block asset in JSON format
-h, --height=height Genesis block height
-n, --network=network [default: default] Default network config to use. Environment variable
"KLAYR_NETWORK" can also be used.
-o, --output=output [default: config] Output folder path of the generated genesis block
-p, --previous-block-id=previous-block-id Previous block id
-t, --timestamp=timestamp Timestamp
--export-json Export genesis block as JSON format along with blob
EXAMPLES
genesis-block:create --output mydir
genesis-block:create --output mydir --assets-file ./assets.json
genesis-block:create --output mydir --assets-file ./assets.json --height 2 --timestamp 1592924699 --previous-block-id
085d7c9b7bddc8052be9eefe185f407682a495f1b4498677df1480026b74f2e9
Example
klayr-core genesis-block:create --assets-file genesis_assets.json --output ./devnet
2023-04-07T16:47:08.874Z INFO XYZ.local application 55996 Registered and initialized fee module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized auth module
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered auth module has command registerMultisignature
2023-04-07T16:47:08.875Z INFO XYZ.local application 55996 Registered and initialized validators module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered and initialized token module
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transfer
2023-04-07T16:47:08.876Z INFO XYZ.local application 55996 Registered token module has command transferCrossChain
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized dynamicReward module
2023-04-07T16:47:08.878Z INFO XYZ.local application 55996 Registered and initialized random module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized pos module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command registerValidator
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command reportMisbehavior
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command unlock
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command updateGeneratorKey
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command stake
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command changeCommission
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered pos module has command claimRewards
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized interoperability module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command submitMainchainCrossChainUpdate
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command initializeMessageRecovery
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverMessage
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command registerSidechain
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command recoverState
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered interoperability module has command terminateSidechainForLiveness
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered and initialized legacy module
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered legacy module has command reclaimKLY
2023-04-07T16:47:08.881Z INFO XYZ.local application 55996 Registered legacy module has command registerKeys
Genesis block files saved at: /Users/XYZ/.nvm/versions/node/v18.19.1/lib/node_modules/klayr-core/config/devnet/devnet
genesis-block:download
Download genesis block.
USAGE
$ klayr-core genesis-block:download
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-f, --force Delete and overwrite existing genesis block.
-n, --network=network Default network config to use. Environment variable "KLAYR_NETWORK" can also be used.
-u, --url=url The url to download the genesis block from.
EXAMPLES
genesis-block:download --network mainnet -f
genesis-block:download --network --data-path ./klayr/
genesis-block:download --url http://mydomain.com/genesis_block.blob.tar.gz --data-path ./klayr/ --force
Example
klayr-core genesis-block:download --network mainnet -f
Downloading genesis block from https://downloads.klayr.xyz/klayr/mainnet/genesis_block.blob.tar.gz
Downloaded to path: /Users/XYZ/.klayr/klayr-core/config/mainnet/genesis_block.blob.tar.gz.
Verified checksum: a69fe85969ce8727b6490a07ced612bbc36a5c377a54f2b6fab58c058d1663b5.
Extracting genesis block file.
Removing downloaded genesis block
Download completed.
/Users/XYZ/.klayr/klayr-core/config/mainnet/genesis_block.blob
keys
Return keys corresponding to the given passphrase.
USAGE
$ klayr-core keys
COMMANDS
keys:create Return keys corresponding to the given passphrase.
keys:encrypt Encrypt keys from a file and overwrite the file
keys:export Export to <FILE>.
keys:import Import from <FILE>.
keys:create
Return keys corresponding to the given passphrase.
USAGE
$ klayr-core keys:create
OPTIONS
-c, --count=count [default: 1] Number of keys to create
-f, --offset=offset [default: 0] Offset for the key derivation path
-i, --chainid=chainid [default: 0] Chain id
-n, --no-encrypt No encrypted message object to be created
-o, --output=output The output directory. Default will set to current working directory.
-p, --passphrase=passphrase Specifies a source for your secret passphrase. Command will prompt you for input if this
option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not
important)
-w, --password=password Specifies a source for your secret password. Command will prompt you for input if this
option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--add-legacy Add legacy key derivation path to the result
EXAMPLES
keys:create
keys:create --passphrase your-passphrase
keys:create --passphrase your-passphrase --no-encrypt
keys:create --passphrase your-passphrase --password your-password
keys:create --passphrase your-passphrase --password your-password --count 2
keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1
keys:create --passphrase your-passphrase --no-encrypt --count 2 --offset 1 --chainid 1
keys:create --passphrase your-passphrase --password your-password --count 2 --offset 1 --chainid 1 --output
/mypath/keys.json
Example
klayr-core keys:create
? Please enter passphrase: [hidden]
? Please re-enter passphrase: [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter password: [hidden]
? Please re-enter password: [hidden]
{
"keys": [
{
"address": "klyguo9kqnea2zsfo3a6qppozsxsg92nuuma3p7ad",
"keyPath": "m/44'/134'/0'",
"publicKey": "3972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
"privateKey": "e655ee58490c66dee3f6761f3b69fdcb65def01615efcddde09c791d6fc2a5223972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
"plain": {
"generatorKeyPath": "m/25519'/134'/0'/0'",
"generatorKey": "7da039d08ca35bc7c7e3583f2544754b9fdd8877edb82da02cbe1fde8ab7c113",
"generatorPrivateKey": "e35c5fb116704d11309ad9a96b36c8bb20acb1c435bfe44cfef6b6aa2111c1b87da039d08ca35bc7c7e3583f2544754b9fdd8877edb82da02cbe1fde8ab7c113",
"blsKeyPath": "m/12381/134/0/0",
"blsKey": "82ecd08a07380c29e656527d339ffe1fe306f0f97cd077335afb3c1c1bdb73918a40f15c410bdc4facca9172088c9262",
"blsProofOfPossession": "9950069539cf1baec7b7629eb45d618fd052fd15da108a6b8e6018a7ec8d4957b777b858f6e194a336a4a51c0d709409045646f9588b2be49f11563c549a711957337b2589370cabb2d795cb44f68c7507ca84a9d3a354df2d82f2d158f9e504",
"blsPrivateKey": "3a2ca861b00aa00a3c1ae00ed0252cb944a6b9dba37d8882ca4f757aafd6f2fe"
},
"encrypted": {
"ciphertext": "291bbb535b7eb9dbfc300f13b5e031a684392f35a37618d76917073e57ddfe63351f953301a7b7ac986d13c080f5b1fcbae968084a29fae5e621b60f1ec1f600c48a24bd7fe8b25c9dc7f8be68e26fe664d20b36e5da86784413a42b2400f84725bf2180be37b2d1a14d4b02a1ebe977bad08d360fd5e1488b85311e64e7d4b5534653fdf90874a706c34c06b1774e30a4dea544067927cd4ff8e74d08ab39ba2c1855739be6dd85ffd2ce298a012a54fbc129797a8f6cf7",
"mac": "33b6e7ae77b87ff7eb569fdcfd206e63fd719106635cfd6f09eaba8cdd02df39",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "7920fdf927717ec27463416fd44e83ac"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "fc9c300aacd987b71bc45354",
"tag": "033470f223f59f40462647055203ff74"
},
"version": "1"
}
}
]
}
keys:encrypt
Encrypt keys from a file and overwrite the file.
USAGE
$ klayr-core keys:encrypt
OPTIONS
-f, --file-path=file-path (required) Path of the file to encrypt from
-w, --password=password Specifies a source for your secret password. Command will prompt you for input if this
option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
EXAMPLES
keys:encrypt --file-path ./my/path/keys.json
keys:encrypt --file-path ./my/path/keys.json --password mypass
Example
klayr-core keys:encrypt --file-path ./my/path/keys.json --password mypass
{
"keys": [
{
"address": "klye5sqed53fdcs4m9et28f2k7u9fk6hno9bauday",
"keyPath": "m/44'/134'/0'",
"publicKey": "a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"privateKey": "d0b159fe5a7cc3d5f4b39a97621b514bc55b0a0f1aca8adeed2dd1899d93f103a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f0",
"plain": {
"generatorKeyPath": "m/25519'/134'/0'/0'",
"generatorKey": "b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"generatorPrivateKey": "b3c4de7f7932275b7a465045e918337ffd7b7b229cef8eba28f706de8759da95b9e54121e5346cc04cc84bcf286d5e40d586ba5d39571daf57bd31bac3861a4a",
"blsKeyPath": "m/12381/134/0/0",
"blsKey": "92f020ce5e37befb86493a82686b0eedddb264350b0873cf1eeaa1fefe39d938f05f272452c1ef5e6ceb4d9b23687e31",
"blsProofOfPosession": "b92b11d66348e197c62d14af1453620d550c21d59ce572d95a03f0eaa0d0d195efbb2f2fd1577dc1a04ecdb453065d9d168ce7648bc5328e5ea47bb07d3ce6fd75f35ee51064a9903da8b90f7dc8ab4f2549b834cb5911b883097133f66b9ab9",
"blsPrivateKey": "463dd3413051366ee658c2524dd0bec85f8459bf6d70439685746406604f950d"
},
"encrypted": {
"ciphertext": "d340438fde7b744d7482f01531415ffc0bda70dac36257571bb0dab703771e83152428b4a4dddc77dff1a983f07b0f3cba688fab2e46abe970ae4131c616e6cbf613952786f5749e94531641f07fcdef38a001a44f56f5de69e0976964ea13cbaff0682b5e0eaf9ff01a00f5b2215a3a1d9e3f0d5b78c876b157213367f7f90a468937c0baf9904189c21870c396b43b53422422bd61a3e1c8cb3126e1a5d60545aa06ee789c89dfb9155b560c327a88af5f9b04b4c6d4e9",
"mac": "d476a90c1fb057a1e4ece0d725f40f67ae36efcc166aede5380115d2a7532833",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "ecc014a7619b7f179b3fa32d2fed5d6c"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "328cf25fdda6988ed9f1101e",
"tag": "1862fde73a2a7b71979773bf620872ef"
},
"version": "1"
}
}
]
}
keys:export
Export keys to a file.
USAGE
$ klayr-core keys:export
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-o, --output=output (required) The output directory. Default will set to current working directory.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
keys:export --output /mypath/keys.json
keys:export --output /mypath/keys.json --data-path ./data
Example
klayr-core keys:export --output ~/mypath/mykeys.json
keys:import
Import keys from a file.
USAGE
$ klayr-core keys:import
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
-f, --file-path=file-path (required) Path of the file to import from
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
keys:import --file-path ./my/path/keys.json
keys:import --file-path ./my/path/keys.json --data-path ./data
Example
klayr-core keys:import --file-path ~/mykeys.json
system
Commands relating to a Klayr Core node.
USAGE
$ klayr-core system
COMMANDS
system:node-info Get node information from a running application.
system:metadata Get node metadata from a running application.
system:node-info
Gets a node’s information from a running Klayr application.
USAGE
$ klayr-core system:node-info
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
system:node-info
system:node-info --data-path ./klayr
Example
klayr-core system:node-info --pretty
{
"version": "4.1.4",
"networkVersion": "1.0",
"chainID": "04000000",
"lastBlockID": "6f00e6bccb1868bcdd7167fe25c4ce5cf49c40687e454b7c855ff1eed401919c",
"height": 2877,
"finalizedHeight": 2765,
"syncing": false,
"unconfirmedTransactions": 0,
"genesisHeight": 0,
"genesis": {
"block": {
"fromFile": "./config/genesis_block.blob"
},
"blockTime": 7,
"maxTransactionsSize": 15360,
"chainID": "04000000"
},
"network": {
"version": "1.0",
"port": 7667,
"seedPeers": []
}
}
system:metadata
Gets a node’s metadata from a running Klayr application.
USAGE
$ klayr-core system:metadata
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
system:metadata
system:metadata --data-path ./klayr
Example
klayr-core system:metadata --pretty
{
"modules": [
{
"commands": [
{
"name": "registerMultisignature",
"params": {
"$id": "/auth/command/regMultisig",
"type": "object",
"properties": {
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 1,
"minimum": 1,
"maximum": 64
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 2,
"minItems": 0,
"maxItems": 64
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 3,
"minItems": 0,
"maxItems": 64
},
"signatures": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 64,
"maxLength": 64
},
"fieldNumber": 4
}
},
"required": [
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys",
"signatures"
]
}
}
],
"events": [
{
"name": "multisignatureRegistration",
"data": {
"$id": "/auth/events/multisigRegData",
"type": "object",
"required": [
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
],
"properties": {
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 1
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 2
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 3
}
}
}
},
{
"name": "invalidSignature",
"data": {
"$id": "/auth/events/invalidSigData",
"type": "object",
"required": [
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys",
"failingPublicKey",
"failingSignature"
],
"properties": {
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 1
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 2
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 3
},
"failingPublicKey": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
},
"failingSignature": {
"dataType": "bytes",
"minLength": 64,
"maxLength": 64,
"fieldNumber": 5
}
}
}
}
],
"stores": [
{
"key": "3df49c3c0000",
"data": {
"$id": "/auth/account",
"type": "object",
"properties": {
"nonce": {
"dataType": "uint64",
"fieldNumber": 1
},
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 2,
"minimum": 0,
"maximum": 64
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"minItems": 0,
"maxItems": 64,
"fieldNumber": 3
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"minItems": 0,
"maxItems": 64,
"fieldNumber": 4
}
},
"required": [
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
]
}
}
],
"endpoints": [
{
"name": "getAuthAccount",
"request": {
"$id": "/auth/addressRequest",
"type": "object",
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
},
"required": [
"address"
]
},
"response": {
"$id": "/auth/account",
"type": "object",
"properties": {
"nonce": {
"dataType": "uint64",
"fieldNumber": 1
},
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 2,
"minimum": 0,
"maximum": 64
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"minItems": 0,
"maxItems": 64,
"fieldNumber": 3
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"minItems": 0,
"maxItems": 64,
"fieldNumber": 4
}
},
"required": [
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
]
}
},
{
"name": "isValidNonce",
"request": {
"$id": "/auth/transactionRequest",
"type": "object",
"properties": {
"transaction": {
"type": "string",
"format": "hex"
}
},
"required": [
"transaction"
]
},
"response": {
"$id": "/auth/verifyResult",
"type": "object",
"properties": {
"verified": {
"type": "boolean"
}
},
"required": [
"verified"
]
}
},
{
"name": "isValidSignature",
"request": {
"$id": "/auth/transactionRequest",
"type": "object",
"properties": {
"transaction": {
"type": "string",
"format": "hex"
}
},
"required": [
"transaction"
]
},
"response": {
"$id": "/auth/verifyResult",
"type": "object",
"properties": {
"verified": {
"type": "boolean"
}
},
"required": [
"verified"
]
}
},
{
"name": "getMultiSigRegMsgSchema",
"response": {
"$id": "/auth/command/regMultisigMsg",
"type": "object",
"required": [
"address",
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
],
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 20,
"maxLength": 20
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 2
},
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 3
},
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 4
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 5
}
}
}
},
{
"name": "sortMultisignatureGroup",
"request": {
"$id": "/auth/command/sortMultisig",
"required": [
"mandatory",
"optional"
],
"type": "object",
"properties": {
"mandatory": {
"type": "array",
"items": {
"type": "object",
"properties": {
"publicKey": {
"type": "string",
"minLength": 64,
"maxLength": 64,
"fieldNumber": 1
},
"signature": {
"type": "string",
"minLength": 128,
"maxLength": 128,
"fieldNumber": 2
}
}
},
"minItems": 1,
"maxItems": 64
},
"optional": {
"type": "array",
"items": {
"type": "object",
"properties": {
"publicKey": {
"type": "string",
"minLength": 64,
"maxLength": 64,
"fieldNumber": 3
},
"signature": {
"type": "string",
"minLength": 0,
"maxLength": 128,
"fieldNumber": 4
}
}
},
"minItems": 0,
"maxItems": 64
}
}
},
"response": {
"$id": "/auth/sortMultisignatureGroupResponse",
"type": "object",
"properties": {
"mandatoryKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1,
"minItems": 0,
"maxItems": 64
},
"optionalKeys": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 2,
"minItems": 0,
"maxItems": 64
},
"signatures": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 64,
"maxLength": 64
},
"fieldNumber": 3
}
},
"required": [
"mandatoryKeys",
"optionalKeys",
"signatures"
]
}
},
{
"name": "getMultiSigRegMsgTag",
"response": {
"$id": "/auth/mutliSignatureRegistrationSignatureMessageTagResponse",
"type": "object",
"properties": {
"tag": {
"type": "string"
}
},
"required": [
"tag"
]
}
}
],
"assets": [
{
"version": 0,
"data": {
"$id": "/auth/module/genesis",
"type": "object",
"required": [
"authDataSubstore"
],
"properties": {
"authDataSubstore": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"type": "object",
"fieldNumber": 2,
"required": [
"nonce",
"numberOfSignatures",
"mandatoryKeys",
"optionalKeys"
],
"properties": {
"nonce": {
"dataType": "uint64",
"fieldNumber": 1
},
"numberOfSignatures": {
"dataType": "uint32",
"fieldNumber": 2
},
"mandatoryKeys": {
"type": "array",
"fieldNumber": 3,
"items": {
"dataType": "bytes"
}
},
"optionalKeys": {
"type": "array",
"fieldNumber": 4,
"items": {
"dataType": "bytes"
}
}
}
}
}
}
}
}
}
}
],
"name": "auth"
},
{
"commands": [],
"events": [
{
"name": "rewardMinted",
"data": {
"$id": "/reward/events/rewardMintedData",
"type": "object",
"required": [
"amount",
"reduction"
],
"properties": {
"amount": {
"dataType": "uint64",
"fieldNumber": 1
},
"reduction": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
}
],
"stores": [
{
"key": "054253ec0000",
"data": {
"$id": "/dynamicRewards/endOfRoundTimestamp",
"type": "object",
"properties": {
"timestamp": {
"dataType": "uint32",
"fieldNumber": 1
}
},
"required": [
"timestamp"
]
}
}
],
"endpoints": [
{
"name": "getDefaultRewardAtHeight",
"request": {
"$id": "/reward/endpoint/height",
"type": "object",
"required": [
"height"
],
"properties": {
"height": {
"type": "integer",
"format": "uint32"
}
}
},
"response": {
"$id": "/reward/endpoint/getDefaultRewardAtHeightResponse",
"type": "object",
"required": [
"reward"
],
"properties": {
"reward": {
"type": "string",
"format": "uint64"
}
}
}
},
{
"name": "getAnnualInflation",
"request": {
"$id": "/reward/endpoint/height",
"type": "object",
"required": [
"height"
],
"properties": {
"height": {
"type": "integer",
"format": "uint32"
}
}
},
"response": {
"$id": "/reward/endpoint/getAnnualInflationResponse",
"type": "object",
"required": [
"tokenID",
"rate"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex"
},
"rate": {
"type": "string",
"format": "uint64",
"minLength": 16,
"maxLength": 16
}
}
}
},
{
"name": "getRewardTokenID",
"response": {
"$id": "/reward/endpoint/getRewardTokenID",
"type": "object",
"required": [
"tokenID"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex",
"minLength": 16,
"maxLength": 16
}
}
}
}
],
"assets": [],
"name": "dynamicReward"
},
{
"commands": [],
"events": [
{
"name": "generatorFeeProcessed",
"data": {
"$id": "/fee/events/generatorFeeProcessed",
"type": "object",
"required": [
"senderAddress",
"generatorAddress",
"burntAmount",
"generatorAmount"
],
"properties": {
"senderAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"generatorAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"burntAmount": {
"dataType": "uint64",
"fieldNumber": 3
},
"generatorAmount": {
"dataType": "uint64",
"fieldNumber": 4
}
}
}
},
{
"name": "relayerFeeProcessed",
"data": {
"$id": "/fee/events/relayerFeeProcessed",
"type": "object",
"required": [
"ccmID",
"relayerAddress",
"burntAmount",
"relayerAmount"
],
"properties": {
"ccmID": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"relayerAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"burntAmount": {
"dataType": "uint64",
"fieldNumber": 3
},
"relayerAmount": {
"dataType": "uint64",
"fieldNumber": 4
}
}
}
},
{
"name": "insufficientFee",
"data": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
}
],
"stores": [],
"endpoints": [
{
"name": "getMinFeePerByte",
"response": {
"$id": "/fee/endpoint/getMinFeePerByteResponse",
"type": "object",
"properties": {
"minFeePerByte": {
"type": "integer",
"format": "uint32"
}
},
"required": [
"minFeePerByte"
]
}
},
{
"name": "getFeeTokenID",
"response": {
"$id": "/fee/endpoint/getFeeTokenIDResponseSchema",
"type": "object",
"properties": {
"feeTokenID": {
"type": "string",
"format": "hex"
}
},
"required": [
"feeTokenID"
]
}
}
],
"assets": [],
"name": "fee"
},
{
"commands": [
{
"name": "submitMainchainCrossChainUpdate",
"params": {
"$id": "/modules/interoperability/ccu",
"type": "object",
"required": [
"sendingChainID",
"certificate",
"activeValidatorsUpdate",
"certificateThreshold",
"inboxUpdate"
],
"properties": {
"sendingChainID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 4,
"maxLength": 4
},
"certificate": {
"dataType": "bytes",
"fieldNumber": 2
},
"activeValidatorsUpdate": {
"type": "object",
"fieldNumber": 3,
"required": [
"blsKeysUpdate",
"bftWeightsUpdate",
"bftWeightsUpdateBitmap"
],
"properties": {
"blsKeysUpdate": {
"type": "array",
"fieldNumber": 1,
"items": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48
}
},
"bftWeightsUpdate": {
"type": "array",
"fieldNumber": 2,
"items": {
"dataType": "uint64"
}
},
"bftWeightsUpdateBitmap": {
"dataType": "bytes",
"fieldNumber": 3
}
}
},
"certificateThreshold": {
"dataType": "uint64",
"fieldNumber": 4
},
"inboxUpdate": {
"type": "object",
"fieldNumber": 5,
"required": [
"crossChainMessages",
"messageWitnessHashes",
"outboxRootWitness"
],
"properties": {
"crossChainMessages": {
"type": "array",
"fieldNumber": 1,
"items": {
"dataType": "bytes"
}
},
"messageWitnessHashes": {
"type": "array",
"fieldNumber": 2,
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
}
},
"outboxRootWitness": {
"type": "object",
"fieldNumber": 3,
"required": [
"bitmap",
"siblingHashes"
],
"properties": {
"bitmap": {
"dataType": "bytes",
"fieldNumber": 1
},
"siblingHashes": {
"type": "array",
"fieldNumber": 2,
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
}
}
}
}
}
}
}
}
},
{
"name": "initializeMessageRecovery",
"params": {
"$id": "/modules/interoperability/mainchain/messageRecoveryInitialization",
"type": "object",
"required": [
"chainID",
"channel",
"bitmap",
"siblingHashes"
],
"properties": {
"chainID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 4,
"maxLength": 4
},
"channel": {
"dataType": "bytes",
"fieldNumber": 2
},
"bitmap": {
"dataType": "bytes",
"fieldNumber": 3
},
"siblingHashes": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 4
}
}
}
},
{
"name": "recoverMessage",
"params": {
"$id": "/modules/interoperability/mainchain/messageRecovery",
"type": "object",
"required": [
"chainID",
"crossChainMessages",
"idxs",
"siblingHashes"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
},
"crossChainMessages": {
"type": "array",
"items": {
"dataType": "bytes"
},
"fieldNumber": 2
},
"idxs": {
"type": "array",
"items": {
"dataType": "uint32"
},
"fieldNumber": 3
},
"siblingHashes": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 4
}
}
}
},
{
"name": "registerSidechain",
"params": {
"$id": "/modules/interoperability/mainchain/sidechainRegistration",
"type": "object",
"required": [
"chainID",
"name",
"sidechainValidators",
"sidechainCertificateThreshold"
],
"properties": {
"chainID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 4,
"maxLength": 4
},
"name": {
"dataType": "string",
"fieldNumber": 2,
"minLength": 1,
"maxLength": 32
},
"sidechainValidators": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"blsKey",
"bftWeight"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 48,
"maxLength": 48
},
"bftWeight": {
"dataType": "uint64",
"fieldNumber": 2
}
}
},
"minItems": 1,
"maxItems": 199
},
"sidechainCertificateThreshold": {
"dataType": "uint64",
"fieldNumber": 4
}
}
}
},
{
"name": "recoverState",
"params": {
"$id": "/modules/interoperability/mainchain/commands/stateRecovery",
"type": "object",
"required": [
"chainID",
"module",
"storeEntries",
"siblingHashes"
],
"properties": {
"chainID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 4,
"maxLength": 4
},
"module": {
"dataType": "string",
"fieldNumber": 2,
"minLength": 1,
"maxLength": 32
},
"storeEntries": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"properties": {
"substorePrefix": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 2,
"maxLength": 2
},
"storeKey": {
"dataType": "bytes",
"fieldNumber": 2
},
"storeValue": {
"dataType": "bytes",
"fieldNumber": 3
},
"bitmap": {
"dataType": "bytes",
"fieldNumber": 4
}
},
"required": [
"substorePrefix",
"storeKey",
"storeValue",
"bitmap"
]
}
},
"siblingHashes": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 4
}
}
}
},
{
"name": "terminateSidechainForLiveness",
"params": {
"$id": "/modules/interoperability/mainchain/terminateSidechainForLiveness",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 4,
"maxLength": 4
}
}
}
}
],
"events": [
{
"name": "chainAccountUpdated",
"data": {
"$id": "/modules/interoperability/chainData",
"type": "object",
"required": [
"name",
"lastCertificate",
"status"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"lastCertificate": {
"type": "object",
"fieldNumber": 2,
"required": [
"height",
"timestamp",
"stateRoot",
"validatorsHash"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"timestamp": {
"dataType": "uint32",
"fieldNumber": 2
},
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"validatorsHash": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
}
}
},
"status": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "ccmProcessed",
"data": {
"$id": "/interoperability/events/ccmProcessed",
"type": "object",
"required": [
"ccm",
"result",
"code"
],
"properties": {
"ccm": {
"fieldNumber": 1,
"type": "object",
"required": [
"module",
"crossChainCommand",
"nonce",
"fee",
"sendingChainID",
"receivingChainID",
"params",
"status"
],
"properties": {
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 1
},
"crossChainCommand": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
},
"fee": {
"dataType": "uint64",
"fieldNumber": 4
},
"sendingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 5
},
"receivingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 6
},
"params": {
"dataType": "bytes",
"fieldNumber": 7
},
"status": {
"dataType": "uint32",
"fieldNumber": 8
}
}
},
"result": {
"dataType": "uint32",
"fieldNumber": 2
},
"code": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "ccmSendSuccess",
"data": {
"$id": "/interoperability/events/ccmSendSuccess",
"type": "object",
"required": [
"ccm"
],
"properties": {
"ccm": {
"fieldNumber": 1,
"type": "object",
"required": [
"module",
"crossChainCommand",
"nonce",
"fee",
"sendingChainID",
"receivingChainID",
"params",
"status"
],
"properties": {
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 1
},
"crossChainCommand": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
},
"fee": {
"dataType": "uint64",
"fieldNumber": 4
},
"sendingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 5
},
"receivingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 6
},
"params": {
"dataType": "bytes",
"fieldNumber": 7
},
"status": {
"dataType": "uint32",
"fieldNumber": 8
}
}
}
}
}
},
{
"name": "ccmSentFailed",
"data": {
"$id": "/interoperability/events/ccmSendFail",
"type": "object",
"required": [
"ccm",
"code"
],
"properties": {
"ccm": {
"$id": "/modules/interoperability/ccm",
"type": "object",
"required": [
"module",
"crossChainCommand",
"nonce",
"fee",
"sendingChainID",
"receivingChainID",
"params",
"status"
],
"properties": {
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 1
},
"crossChainCommand": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
},
"fee": {
"dataType": "uint64",
"fieldNumber": 4
},
"sendingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 5
},
"receivingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 6
},
"params": {
"dataType": "bytes",
"fieldNumber": 7
},
"status": {
"dataType": "uint32",
"fieldNumber": 8
}
},
"fieldNumber": 1
},
"code": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
},
{
"name": "invalidRegistrationSignature",
"data": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
},
{
"name": "terminatedStateCreated",
"data": {
"$id": "/modules/interoperability/terminatedState",
"type": "object",
"required": [
"stateRoot",
"mainchainStateRoot",
"initialized"
],
"properties": {
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"mainchainStateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 2
},
"initialized": {
"dataType": "boolean",
"fieldNumber": 3
}
}
}
},
{
"name": "terminatedOutboxCreated",
"data": {
"$id": "/modules/interoperability/terminatedOutbox",
"type": "object",
"required": [
"outboxRoot",
"outboxSize",
"partnerChainInboxSize"
],
"properties": {
"outboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"outboxSize": {
"dataType": "uint32",
"fieldNumber": 2
},
"partnerChainInboxSize": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "invalidCertificateSignature",
"data": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
}
],
"stores": [
{
"key": "83ed0d250000",
"data": {
"$id": "/modules/interoperability/outbox",
"type": "object",
"required": [
"root"
],
"properties": {
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
}
}
}
},
{
"key": "83ed0d258000",
"data": {
"$id": "/modules/interoperability/chainData",
"type": "object",
"required": [
"name",
"lastCertificate",
"status"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"lastCertificate": {
"type": "object",
"fieldNumber": 2,
"required": [
"height",
"timestamp",
"stateRoot",
"validatorsHash"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"timestamp": {
"dataType": "uint32",
"fieldNumber": 2
},
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"validatorsHash": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
}
}
},
"status": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"key": "83ed0d25b000",
"data": {
"$id": "/modules/interoperability/ownChainAccount",
"type": "object",
"required": [
"name",
"chainID",
"nonce"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
}
}
}
},
{
"key": "83ed0d25a000",
"data": {
"$id": "/modules/interoperability/channel",
"type": "object",
"required": [
"inbox",
"outbox",
"partnerChainOutboxRoot",
"messageFeeTokenID",
"minReturnFeePerByte"
],
"properties": {
"inbox": {
"type": "object",
"fieldNumber": 1,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"outbox": {
"type": "object",
"fieldNumber": 2,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"partnerChainOutboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"messageFeeTokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 4
},
"minReturnFeePerByte": {
"dataType": "uint64",
"fieldNumber": 5
}
}
}
},
{
"key": "83ed0d259000",
"data": {
"$id": "/modules/interoperability/chainValidators",
"type": "object",
"required": [
"activeValidators",
"certificateThreshold"
],
"properties": {
"activeValidators": {
"type": "array",
"fieldNumber": 1,
"minItems": 1,
"maxItems": 199,
"items": {
"type": "object",
"required": [
"blsKey",
"bftWeight"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48,
"fieldNumber": 1
},
"bftWeight": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
"certificateThreshold": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
{
"key": "83ed0d25c000",
"data": {
"$id": "/modules/interoperability/terminatedState",
"type": "object",
"required": [
"stateRoot",
"mainchainStateRoot",
"initialized"
],
"properties": {
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"mainchainStateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 2
},
"initialized": {
"dataType": "boolean",
"fieldNumber": 3
}
}
}
},
{
"key": "83ed0d25d000",
"data": {
"$id": "/modules/interoperability/terminatedOutbox",
"type": "object",
"required": [
"outboxRoot",
"outboxSize",
"partnerChainInboxSize"
],
"properties": {
"outboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"outboxSize": {
"dataType": "uint32",
"fieldNumber": 2
},
"partnerChainInboxSize": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"key": "83ed0d25e000",
"data": {
"$id": "/modules/interoperability/chainId",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
}
}
}
}
],
"endpoints": [
{
"name": "getChainAccount",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/chainData",
"type": "object",
"required": [
"name",
"lastCertificate",
"status"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"lastCertificate": {
"type": "object",
"fieldNumber": 2,
"required": [
"height",
"timestamp",
"stateRoot",
"validatorsHash"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"timestamp": {
"dataType": "uint32",
"fieldNumber": 2
},
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"validatorsHash": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
}
}
},
"status": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "getAllChainAccounts",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/allChainAccounts",
"type": "object",
"required": [
"chains"
],
"properties": {
"chains": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"lastCertificate",
"status"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"lastCertificate": {
"type": "object",
"fieldNumber": 2,
"required": [
"height",
"timestamp",
"stateRoot",
"validatorsHash"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"timestamp": {
"dataType": "uint32",
"fieldNumber": 2
},
"stateRoot": {
"dataType": "string",
"format": "hex",
"fieldNumber": 3
},
"validatorsHash": {
"dataType": "string",
"format": "hex",
"fieldNumber": 4
}
}
},
"status": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
}
}
}
},
{
"name": "getChannel",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/channel",
"type": "object",
"required": [
"inbox",
"outbox",
"partnerChainOutboxRoot",
"messageFeeTokenID",
"minReturnFeePerByte"
],
"properties": {
"inbox": {
"type": "object",
"fieldNumber": 1,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"outbox": {
"type": "object",
"fieldNumber": 2,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"partnerChainOutboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"messageFeeTokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 4
},
"minReturnFeePerByte": {
"dataType": "uint64",
"fieldNumber": 5
}
}
}
},
{
"name": "getOwnChainAccount",
"response": {
"$id": "/modules/interoperability/ownChainAccount",
"type": "object",
"required": [
"name",
"chainID",
"nonce"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
}
}
}
},
{
"name": "getTerminatedStateAccount",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/terminatedState",
"type": "object",
"required": [
"stateRoot",
"mainchainStateRoot",
"initialized"
],
"properties": {
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"mainchainStateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 2
},
"initialized": {
"dataType": "boolean",
"fieldNumber": 3
}
}
}
},
{
"name": "getTerminatedOutboxAccount",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/terminatedOutbox",
"type": "object",
"required": [
"outboxRoot",
"outboxSize",
"partnerChainInboxSize"
],
"properties": {
"outboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"outboxSize": {
"dataType": "uint32",
"fieldNumber": 2
},
"partnerChainInboxSize": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "getRegistrationFee",
"response": {
"$id": "/modules/interoperability/mainchain/registrationFee",
"type": "object",
"required": [
"registrationFee"
],
"properties": {
"registrationFee": {
"type": "string"
}
}
}
},
{
"name": "getMinimumMessageFee",
"response": {
"$id": "/modules/interoperability/mainchain/minimumMessageFeeResponse",
"type": "object",
"required": [
"fee"
],
"properties": {
"fee": {
"type": "string"
}
}
}
},
{
"name": "getChainValidators",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/validatorsHashInput",
"type": "object",
"required": [
"activeValidators",
"certificateThreshold"
],
"properties": {
"activeValidators": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"blsKey",
"bftWeight"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"bftWeight": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
"certificateThreshold": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
{
"name": "isChainIDAvailable",
"request": {
"$id": "/modules/interoperability/endpoint/getChainAccountRequest",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/interoperability/endpoint/isChainIDAvailableResponseSchema",
"type": "object",
"required": [
"result"
],
"properties": {
"result": {
"type": "boolean"
}
}
}
},
{
"name": "isChainNameAvailable",
"request": {
"$id": "/modules/interoperability/endpoint/isChainNameAvailableRequest",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
}
}
},
"response": {
"$id": "/modules/interoperability/endpoint/isChainNameAvailableResponseSchema",
"type": "object",
"required": [
"result"
],
"properties": {
"result": {
"type": "boolean"
}
}
}
}
],
"assets": [
{
"version": 0,
"data": {
"$id": "/interoperability/module/genesis",
"type": "object",
"required": [
"outboxRootSubstore",
"chainDataSubstore",
"channelDataSubstore",
"chainValidatorsSubstore",
"ownChainDataSubstore",
"terminatedStateSubstore",
"terminatedOutboxSubstore",
"registeredNamesSubstore"
],
"properties": {
"outboxRootSubstore": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/outbox",
"type": "object",
"required": [
"root"
],
"properties": {
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
}
},
"fieldNumber": 2
}
}
}
},
"chainDataSubstore": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/chainData",
"type": "object",
"required": [
"name",
"lastCertificate",
"status"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"lastCertificate": {
"type": "object",
"fieldNumber": 2,
"required": [
"height",
"timestamp",
"stateRoot",
"validatorsHash"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"timestamp": {
"dataType": "uint32",
"fieldNumber": 2
},
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"validatorsHash": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
}
}
},
"status": {
"dataType": "uint32",
"fieldNumber": 3
}
},
"fieldNumber": 2
}
}
}
},
"channelDataSubstore": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/channel",
"type": "object",
"required": [
"inbox",
"outbox",
"partnerChainOutboxRoot",
"messageFeeTokenID",
"minReturnFeePerByte"
],
"properties": {
"inbox": {
"type": "object",
"fieldNumber": 1,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"outbox": {
"type": "object",
"fieldNumber": 2,
"required": [
"appendPath",
"size",
"root"
],
"properties": {
"appendPath": {
"type": "array",
"items": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32
},
"fieldNumber": 1
},
"size": {
"dataType": "uint32",
"fieldNumber": 2
},
"root": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
},
"partnerChainOutboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
},
"messageFeeTokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 4
},
"minReturnFeePerByte": {
"dataType": "uint64",
"fieldNumber": 5
}
},
"fieldNumber": 2
}
}
}
},
"chainValidatorsSubstore": {
"type": "array",
"fieldNumber": 4,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"fieldNumber": 2,
"$id": "/modules/interoperability/chainValidators",
"type": "object",
"required": [
"activeValidators",
"certificateThreshold"
],
"properties": {
"activeValidators": {
"type": "array",
"fieldNumber": 1,
"minItems": 1,
"maxItems": 199,
"items": {
"type": "object",
"required": [
"blsKey",
"bftWeight"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48,
"fieldNumber": 1
},
"bftWeight": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
"certificateThreshold": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
}
}
},
"ownChainDataSubstore": {
"type": "array",
"fieldNumber": 5,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/ownChainAccount",
"type": "object",
"required": [
"name",
"chainID",
"nonce"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 2
},
"nonce": {
"dataType": "uint64",
"fieldNumber": 3
}
},
"fieldNumber": 2
}
}
}
},
"terminatedStateSubstore": {
"type": "array",
"fieldNumber": 6,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/terminatedState",
"type": "object",
"required": [
"stateRoot",
"mainchainStateRoot",
"initialized"
],
"properties": {
"stateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"mainchainStateRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 2
},
"initialized": {
"dataType": "boolean",
"fieldNumber": 3
}
},
"fieldNumber": 2
}
}
}
},
"terminatedOutboxSubstore": {
"type": "array",
"fieldNumber": 7,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/terminatedOutbox",
"type": "object",
"required": [
"outboxRoot",
"outboxSize",
"partnerChainInboxSize"
],
"properties": {
"outboxRoot": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"outboxSize": {
"dataType": "uint32",
"fieldNumber": 2
},
"partnerChainInboxSize": {
"dataType": "uint32",
"fieldNumber": 3
}
},
"fieldNumber": 2
}
}
}
},
"registeredNamesSubstore": {
"type": "array",
"fieldNumber": 8,
"items": {
"type": "object",
"required": [
"storeKey",
"storeValue"
],
"properties": {
"storeKey": {
"dataType": "bytes",
"fieldNumber": 1
},
"storeValue": {
"$id": "/modules/interoperability/chainId",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
}
},
"fieldNumber": 2
}
}
}
}
}
}
}
],
"name": "interoperability"
},
{
"endpoints": [
{
"name": "getLegacyAccount",
"request": {
"$id": "/legacy/endpoint/legacyAccountRequest",
"type": "object",
"required": [
"publicKey"
],
"properties": {
"publicKey": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/legacy/store/genesis",
"type": "object",
"required": [
"balance"
],
"properties": {
"balance": {
"dataType": "uint64",
"fieldNumber": 1
}
}
}
}
],
"commands": [
{
"name": "reclaimKLY",
"params": {
"$id": "/legacy/command/reclaimKLYParams",
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"dataType": "uint64",
"fieldNumber": 1
}
}
}
},
{
"name": "registerKeys",
"params": {
"$id": "/legacy/command/registerKeysParams",
"type": "object",
"required": [
"blsKey",
"proofOfPossession",
"generatorKey"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48,
"fieldNumber": 1
},
"proofOfPossession": {
"dataType": "bytes",
"minLength": 96,
"maxLength": 96,
"fieldNumber": 2
},
"generatorKey": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 3
}
}
}
}
],
"events": [
{
"name": "accountReclaimed",
"data": {
"$id": "klayr/legacy/accountReclaimedEventData",
"type": "object",
"required": [
"legacyAddress",
"address",
"amount"
],
"properties": {
"legacyAddress": {
"dataType": "bytes",
"maxLength": 8,
"fieldNumber": 1
},
"address": {
"dataType": "bytes",
"maxLength": 20,
"fieldNumber": 2
},
"amount": {
"dataType": "uint64",
"fieldNumber": 3
}
}
}
},
{
"name": "keysRegistered",
"data": {
"$id": "klayr/legacy/keysRegisteredEventData",
"type": "object",
"required": [
"address",
"generatorKey",
"blsKey"
],
"properties": {
"address": {
"dataType": "bytes",
"maxLength": 20,
"fieldNumber": 1
},
"generatorKey": {
"dataType": "bytes",
"maxLength": 32,
"fieldNumber": 2
},
"blsKey": {
"dataType": "bytes",
"maxLength": 48,
"fieldNumber": 3
}
}
}
}
],
"assets": [
{
"version": 0,
"data": {
"$id": "/legacy/module/genesis",
"type": "object",
"required": [
"accounts"
],
"properties": {
"accounts": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"address",
"balance"
],
"properties": {
"address": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
},
"balance": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
}
}
}
}
],
"stores": [],
"name": "legacy"
},
{
"commands": [
{
"name": "registerValidator",
"params": {
"$id": "/pos/command/registerValidatorParams",
"type": "object",
"required": [
"name",
"blsKey",
"proofOfPossession",
"generatorKey"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"blsKey": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48,
"fieldNumber": 2
},
"proofOfPossession": {
"dataType": "bytes",
"minLength": 96,
"maxLength": 96,
"fieldNumber": 3
},
"generatorKey": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 4
}
}
}
},
{
"name": "reportMisbehavior",
"params": {
"$id": "/pos/command/reportMisbehaviorParams",
"type": "object",
"required": [
"header1",
"header2"
],
"properties": {
"header1": {
"dataType": "bytes",
"fieldNumber": 1
},
"header2": {
"dataType": "bytes",
"fieldNumber": 2
}
}
}
},
{
"name": "unlock",
"params": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
},
{
"name": "updateGeneratorKey",
"params": {
"$id": "/pos/command/updateGeneratorKeyParams",
"type": "object",
"required": [
"generatorKey"
],
"properties": {
"generatorKey": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 32,
"maxLength": 32
}
}
}
},
{
"name": "stake",
"params": {
"$id": "/pos/command/stakeValidatorParams",
"type": "object",
"required": [
"stakes"
],
"properties": {
"stakes": {
"type": "array",
"fieldNumber": 1,
"minItems": 1,
"maxItems": 20,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"amount": {
"dataType": "sint64",
"fieldNumber": 2
}
}
}
}
}
}
},
{
"name": "changeCommission",
"params": {
"$id": "/pos/command/changeCommissionCommandParams",
"type": "object",
"required": [
"newCommission"
],
"properties": {
"newCommission": {
"dataType": "uint32",
"fieldNumber": 1,
"maximum": 10000
}
}
}
},
{
"name": "claimRewards",
"params": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
}
],
"events": [
{
"name": "validatorBanned",
"data": {
"$id": "/pos/events/validatorBannedData",
"type": "object",
"required": [
"address",
"height"
],
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"height": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
},
{
"name": "validatorPunished",
"data": {
"$id": "/pos/events/punishValidatorData",
"type": "object",
"required": [
"address",
"height"
],
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"height": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
},
{
"name": "validatorRegistered",
"data": {
"$id": "/pos/events/registerValidatorData",
"type": "object",
"required": [
"address",
"name"
],
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"name": {
"dataType": "string",
"fieldNumber": 2
}
}
}
},
{
"name": "validatorStaked",
"data": {
"$id": "/pos/events/validatorStakedData",
"type": "object",
"required": [
"senderAddress",
"validatorAddress",
"amount",
"result"
],
"properties": {
"senderAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 2,
"format": "klayr32"
},
"amount": {
"dataType": "sint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "commissionChange",
"data": {
"$id": "/pos/events/commissionChangeData",
"type": "object",
"required": [
"validatorAddress",
"oldCommission",
"newCommission"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"oldCommission": {
"dataType": "uint32",
"fieldNumber": 2
},
"newCommission": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "rewardsAssigned",
"data": {
"$id": "/pos/events/rewardsAssignedData",
"type": "object",
"required": [
"stakerAddress",
"validatorAddress",
"tokenID",
"amount"
],
"properties": {
"stakerAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"validatorAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
}
}
}
}
],
"stores": [
{
"key": "7160f8680000",
"data": {
"$id": "/pos/staker",
"type": "object",
"required": [
"stakes",
"pendingUnlocks"
],
"properties": {
"stakes": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"sharingCoefficients"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"sharingCoefficients": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"tokenID",
"coefficient"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 8,
"maxLength": 8
},
"coefficient": {
"dataType": "bytes",
"fieldNumber": 2,
"maxLength": 24
}
}
}
}
}
}
},
"pendingUnlocks": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"unstakeHeight": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
}
}
}
},
{
"key": "7160f8688000",
"data": {
"$id": "/pos/validator",
"type": "object",
"required": [
"name",
"totalStake",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"reportMisbehaviorHeights",
"consecutiveMissedBlocks",
"commission",
"lastCommissionIncreaseHeight",
"sharingCoefficients"
],
"properties": {
"name": {
"dataType": "string",
"fieldNumber": 1
},
"totalStake": {
"dataType": "uint64",
"fieldNumber": 2
},
"selfStake": {
"dataType": "uint64",
"fieldNumber": 3
},
"lastGeneratedHeight": {
"dataType": "uint32",
"fieldNumber": 4
},
"isBanned": {
"dataType": "boolean",
"fieldNumber": 5
},
"reportMisbehaviorHeights": {
"type": "array",
"fieldNumber": 6,
"items": {
"dataType": "uint32"
}
},
"consecutiveMissedBlocks": {
"dataType": "uint32",
"fieldNumber": 7
},
"commission": {
"dataType": "uint32",
"fieldNumber": 8
},
"lastCommissionIncreaseHeight": {
"dataType": "uint32",
"fieldNumber": 9
},
"sharingCoefficients": {
"type": "array",
"fieldNumber": 10,
"items": {
"type": "object",
"required": [
"tokenID",
"coefficient"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 8,
"maxLength": 8
},
"coefficient": {
"dataType": "bytes",
"fieldNumber": 2,
"maxLength": 24
}
}
}
}
}
}
},
{
"key": "7160f8684000",
"data": {
"$id": "/pos/name",
"type": "object",
"required": [
"validatorAddress"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
}
}
}
},
{
"key": "7160f868c000",
"data": {
"$id": "/pos/store/snapshot",
"type": "object",
"required": [
"validatorWeightSnapshot"
],
"properties": {
"validatorWeightSnapshot": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"address",
"weight"
],
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"weight": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
}
}
}
},
{
"key": "7160f8682000",
"data": {
"$id": "/pos/store/genesis",
"type": "object",
"required": [
"height",
"initRounds",
"initValidators"
],
"properties": {
"height": {
"dataType": "uint32",
"fieldNumber": 1
},
"initRounds": {
"dataType": "uint32",
"fieldNumber": 2
},
"initValidators": {
"type": "array",
"fieldNumber": 3,
"items": {
"dataType": "bytes",
"format": "klayr32"
}
}
}
}
},
{
"key": "7160f868a000",
"data": {
"$id": "/pos/store/previousTimestamp",
"type": "object",
"required": [
"timestamp"
],
"properties": {
"timestamp": {
"dataType": "uint32",
"fieldNumber": 1
}
}
}
},
{
"key": "7160f8686000",
"data": {
"$id": "/pos/eligibleValidators",
"type": "object",
"required": [
"lastReportMisbehaviorHeight"
],
"properties": {
"lastReportMisbehaviorHeight": {
"dataType": "uint32",
"fieldNumber": 1
}
}
}
}
],
"endpoints": [
{
"name": "getAllValidators",
"response": {
"$id": "modules/pos/endpoint/getAllValidatorsResponse",
"type": "object",
"required": [
"validators"
],
"properties": {
"validators": {
"type": "array",
"items": {
"type": "object",
"required": [
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"name": {
"type": "string"
},
"totalStakeReceived": {
"type": "string",
"format": "uint64"
},
"selfStake": {
"type": "string",
"format": "uint64"
},
"lastGeneratedHeight": {
"type": "integer",
"format": "uint32"
},
"isBanned": {
"type": "boolean"
},
"pomHeights": {
"type": "array",
"items": {
"type": "integer",
"format": "uint32"
}
},
"punishmentPeriods": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "integer",
"format": "uint32"
},
"end": {
"type": "integer",
"format": "uint32"
}
}
}
},
"consecutiveMissedBlocks": {
"type": "integer",
"format": "uint32"
}
}
}
}
}
}
},
{
"name": "getValidator",
"request": {
"$id": "modules/pos/endpoint/getValidatorRequest",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getValidatorResponse",
"type": "object",
"required": [
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"name": {
"type": "string"
},
"totalStakeReceived": {
"type": "string",
"format": "uint64"
},
"selfStake": {
"type": "string",
"format": "uint64"
},
"lastGeneratedHeight": {
"type": "integer",
"format": "uint32"
},
"isBanned": {
"type": "boolean"
},
"pomHeights": {
"type": "array",
"items": {
"type": "integer",
"format": "uint32"
}
},
"punishmentPeriods": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "integer",
"format": "uint32"
},
"end": {
"type": "integer",
"format": "uint32"
}
}
}
},
"consecutiveMissedBlocks": {
"type": "integer",
"format": "uint32"
}
}
}
},
{
"name": "getStaker",
"request": {
"$id": "modules/pos/endpoint/getValidatorRequest",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getStakerResponse",
"type": "object",
"required": [
"stakes",
"pendingUnlocks"
],
"properties": {
"stakes": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount"
],
"properties": {
"validatorAddress": {
"type": "string",
"format": "klayr32"
},
"amount": {
"type": "string",
"format": "uint64"
}
}
}
},
"pendingUnlocks": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties": {
"validatorAddress": {
"type": "string",
"format": "klayr32"
},
"amount": {
"type": "string",
"format": "uint64"
},
"unstakeHeight": {
"type": "integer",
"format": "uint32"
}
}
}
}
}
}
},
{
"name": "getConstants",
"response": {
"$id": "/pos/config",
"type": "object",
"properties": {
"factorSelfStakes": {
"type": "integer",
"format": "uint32"
},
"maxLengthName": {
"type": "integer",
"format": "uint32"
},
"maxNumberSentStakes": {
"type": "integer",
"format": "uint32"
},
"maxNumberPendingUnlocks": {
"type": "integer",
"format": "uint32"
},
"failSafeMissedBlocks": {
"type": "integer",
"format": "uint32"
},
"failSafeInactiveWindow": {
"type": "integer",
"format": "uint32"
},
"punishmentWindow": {
"type": "integer",
"format": "uint32"
},
"roundLength": {
"type": "integer",
"format": "uint32"
},
"minWeightStandby": {
"type": "string",
"format": "uint64"
},
"numberActiveValidators": {
"type": "integer",
"format": "uint32"
},
"numberStandbyValidators": {
"type": "integer",
"format": "uint32"
},
"posTokenID": {
"type": "string",
"format": "hex"
},
"validatorRegistrationFee": {
"type": "string",
"format": "uint64"
},
"maxBFTWeightCap": {
"type": "integer",
"format": "uint32",
"minimum": 1,
"maximum": 9999
},
"commissionIncreasePeriod": {
"type": "integer",
"format": "uint32"
},
"maxCommissionIncreaseRate": {
"type": "integer",
"format": "uint32"
},
"useInvalidBKLYey": {
"type": "boolean"
}
},
"required": [
"factorSelfStakes",
"maxLengthName",
"maxNumberSentStakes",
"maxNumberPendingUnlocks",
"failSafeMissedBlocks",
"failSafeInactiveWindow",
"punishmentWindow",
"roundLength",
"minWeightStandby",
"numberActiveValidators",
"numberStandbyValidators",
"posTokenID",
"validatorRegistrationFee",
"maxBFTWeightCap",
"useInvalidBKLYey"
]
}
},
{
"name": "getPoSTokenID",
"response": {
"$id": "modules/pos/endpoint/getPoSTokenIDResponse",
"type": "object",
"required": [
"tokenID"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex"
}
}
}
},
{
"name": "getClaimableRewards",
"request": {
"$id": "modules/pos/endpoint/getClaimableRewardsRequest",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getClaimableRewardsResponse",
"type": "object",
"properties": {
"rewards": {
"items": {
"type": "object",
"required": [
"tokenID",
"reward"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex"
},
"reward": {
"type": "string",
"format": "uint64"
}
}
}
}
}
}
},
{
"name": "getLockedReward",
"request": {
"$id": "modules/pos/endpoint/getLockedRewardRequest",
"type": "object",
"required": [
"address",
"tokenID"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"tokenID": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getLockedRewardResponse",
"type": "object",
"required": [
"reward"
],
"properties": {
"reward": {
"type": "string",
"format": "uint64"
}
}
}
},
{
"name": "getLockedStakedAmount",
"request": {
"$id": "modules/pos/endpoint/getLockedStakedAmountRequest",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getLockedStakedAmountResponse",
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "string",
"format": "uint64"
}
}
}
},
{
"name": "getValidatorsByStake",
"request": {
"$id": "modules/pos/endpoint/getValidatorsByStakeRequest",
"type": "object",
"properties": {
"limit": {
"type": "integer",
"format": "int32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getValidatorsByStakeResponse",
"type": "object",
"required": [
"validators"
],
"properties": {
"validators": {
"type": "array",
"items": {
"type": "object",
"required": [
"address",
"name",
"totalStakeReceived",
"selfStake",
"lastGeneratedHeight",
"isBanned",
"pomHeights",
"punishmentPeriods",
"consecutiveMissedBlocks"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"name": {
"type": "string"
},
"totalStakeReceived": {
"type": "string",
"format": "uint64"
},
"selfStake": {
"type": "string",
"format": "uint64"
},
"lastGeneratedHeight": {
"type": "integer",
"format": "uint32"
},
"isBanned": {
"type": "boolean"
},
"pomHeights": {
"type": "array",
"items": {
"type": "integer",
"format": "uint32"
}
},
"punishmentPeriods": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "integer",
"format": "uint32"
},
"end": {
"type": "integer",
"format": "uint32"
}
}
}
},
"consecutiveMissedBlocks": {
"type": "integer",
"format": "uint32"
}
}
}
}
}
}
},
{
"name": "getPendingUnlocks",
"request": {
"$id": "modules/pos/endpoint/getPendingUnlocksRequest",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "modules/pos/endpoint/getPendingUnlocksResponse",
"type": "object",
"required": [
"amount"
],
"properties": {
"pendingUnlocks": {
"type": "array",
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"unstakeHeight",
"expectedUnlockableHeight",
"unlockable"
],
"properties": {
"validatorAddress": {
"type": "string",
"format": "klayr32"
},
"amount": {
"type": "string",
"format": "uint64"
},
"unstakeHeight": {
"type": "integer",
"format": "uint32"
},
"expectedUnlockableHeight": {
"type": "integer",
"format": "uint32"
},
"unlockable": {
"type": "boolean"
}
}
}
}
}
}
},
{
"name": "getRegistrationFee",
"response": {
"$id": "modules/pos/endpoint/getRegistrationFeeResponse",
"type": "object",
"required": [
"registrationFee"
],
"properties": {
"registrationFee": {
"type": "string"
}
}
}
}
],
"assets": [
{
"version": 0,
"data": {
"$id": "/pos/module/genesis",
"type": "object",
"required": [
"validators",
"stakers",
"genesisData"
],
"properties": {
"validators": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"address",
"name",
"blsKey",
"proofOfPossession",
"generatorKey",
"lastGeneratedHeight",
"isBanned",
"reportMisbehaviorHeights",
"consecutiveMissedBlocks",
"commission",
"lastCommissionIncreaseHeight",
"sharingCoefficients"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"name": {
"dataType": "string",
"fieldNumber": 2,
"minLength": 1,
"maxLength": 20
},
"blsKey": {
"dataType": "bytes",
"fieldNumber": 3,
"minLength": 48,
"maxLength": 48
},
"proofOfPossession": {
"dataType": "bytes",
"fieldNumber": 4,
"minLength": 96,
"maxLength": 96
},
"generatorKey": {
"dataType": "bytes",
"fieldNumber": 5,
"minLength": 32,
"maxLength": 32
},
"lastGeneratedHeight": {
"dataType": "uint32",
"fieldNumber": 6
},
"isBanned": {
"dataType": "boolean",
"fieldNumber": 7
},
"reportMisbehaviorHeights": {
"type": "array",
"fieldNumber": 8,
"items": {
"dataType": "uint32"
}
},
"consecutiveMissedBlocks": {
"dataType": "uint32",
"fieldNumber": 9
},
"commission": {
"dataType": "uint32",
"fieldNumber": 10,
"maximum": 10000
},
"lastCommissionIncreaseHeight": {
"dataType": "uint32",
"fieldNumber": 11
},
"sharingCoefficients": {
"type": "array",
"fieldNumber": 12,
"items": {
"type": "object",
"required": [
"tokenID",
"coefficient"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
},
"coefficient": {
"dataType": "bytes",
"maxLength": 24,
"fieldNumber": 2
}
}
}
}
}
}
},
"stakers": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"address",
"stakes",
"pendingUnlocks"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"stakes": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"sharingCoefficients"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"sharingCoefficients": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"tokenID",
"coefficient"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
},
"coefficient": {
"dataType": "bytes",
"maxLength": 24,
"fieldNumber": 2
}
}
}
}
}
}
},
"pendingUnlocks": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"validatorAddress",
"amount",
"unstakeHeight"
],
"properties": {
"validatorAddress": {
"dataType": "bytes",
"fieldNumber": 1,
"format": "klayr32"
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"unstakeHeight": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
}
}
}
},
"genesisData": {
"type": "object",
"fieldNumber": 3,
"required": [
"initRounds",
"initValidators"
],
"properties": {
"initRounds": {
"dataType": "uint32",
"fieldNumber": 1
},
"initValidators": {
"type": "array",
"fieldNumber": 2,
"items": {
"dataType": "bytes",
"format": "klayr32"
}
}
}
}
}
}
}
],
"name": "pos"
},
{
"commands": [],
"events": [],
"stores": [
{
"key": "2441b15f0000",
"data": {
"$id": "/modules/random/seedReveal",
"type": "object",
"required": [
"validatorReveals"
],
"properties": {
"validatorReveals": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"generatorAddress",
"seedReveal",
"height",
"valid"
],
"properties": {
"generatorAddress": {
"dataType": "bytes",
"minLength": 20,
"maxLength": 20,
"fieldNumber": 1
},
"seedReveal": {
"dataType": "bytes",
"minLength": 16,
"maxLength": 16,
"fieldNumber": 2
},
"height": {
"dataType": "uint32",
"fieldNumber": 3
},
"valid": {
"dataType": "boolean",
"fieldNumber": 4
}
}
}
}
}
}
}
],
"endpoints": [
{
"name": "isSeedRevealValid",
"request": {
"$id": "/modules/random/endpoint/isSeedRevealRequest",
"type": "object",
"required": [
"generatorAddress",
"seedReveal"
],
"properties": {
"generatorAddress": {
"type": "string",
"format": "klayr32"
},
"seedReveal": {
"type": "string",
"format": "hex"
}
}
},
"response": {
"$id": "/modules/random/endpoint/isSeedRevealRequest",
"type": "object",
"required": [
"valid"
],
"properties": {
"valid": {
"type": "boolean"
}
}
}
},
{
"name": "setHashOnion",
"request": {
"$id": "klayr/random/setSeedRequestSchema",
"type": "object",
"title": "Random setSeed request",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"seed": {
"type": "string",
"format": "hex"
},
"count": {
"type": "integer",
"minimum": 1
},
"distance": {
"type": "integer",
"minimum": 1
}
}
}
},
{
"name": "getHashOnionSeeds",
"response": {
"$id": "klayr/random/setSeedRequestSchema",
"type": "object",
"title": "Random setSeed request",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"seed": {
"type": "string",
"format": "hex"
},
"count": {
"type": "integer",
"minimum": 1
},
"distance": {
"type": "integer",
"minimum": 1
}
}
}
},
{
"name": "hasHashOnion",
"request": {
"$id": "klayr/random/addressSchema",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "klayr/random/hasHashOnionResponseSchema",
"type": "object",
"required": [
"hasSeed",
"remaining"
],
"properties": {
"hasSeed": {
"type": "boolean"
},
"remaining": {
"type": "integer",
"format": "uint32"
}
}
}
},
{
"name": "getHashOnionUsage",
"request": {
"$id": "klayr/random/addressSchema",
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
}
},
"response": {
"$id": "klayr/random/getHashOnionUsageResponse",
"type": "object",
"required": [
"count",
"height",
"seed"
],
"properties": {
"count": {
"type": "integer",
"format": "uint32"
},
"height": {
"type": "integer",
"format": "uint32"
},
"seed": {
"type": "string",
"format": "hex"
}
}
}
}
],
"assets": [
{
"version": 2,
"data": {
"$id": "/modules/random/block/header/asset",
"type": "object",
"properties": {
"seedReveal": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 16,
"maxLength": 16
}
},
"required": [
"seedReveal"
]
}
}
],
"name": "random"
},
{
"commands": [
{
"name": "transfer",
"params": {
"$id": "/klayr/transferParams",
"title": "Transfer transaction params",
"type": "object",
"required": [
"tokenID",
"amount",
"recipientAddress",
"data"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 8,
"maxLength": 8
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"recipientAddress": {
"dataType": "bytes",
"fieldNumber": 3,
"format": "klayr32"
},
"data": {
"dataType": "string",
"fieldNumber": 4,
"minLength": 0,
"maxLength": 64
}
}
}
},
{
"name": "transferCrossChain",
"params": {
"$id": "/klayr/ccTransferParams",
"type": "object",
"required": [
"tokenID",
"amount",
"receivingChainID",
"recipientAddress",
"data",
"messageFee",
"messageFeeTokenID"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 8,
"maxLength": 8
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
},
"receivingChainID": {
"dataType": "bytes",
"fieldNumber": 3,
"minLength": 4,
"maxLength": 4
},
"recipientAddress": {
"dataType": "bytes",
"fieldNumber": 4,
"format": "klayr32"
},
"data": {
"dataType": "string",
"fieldNumber": 5,
"minLength": 0,
"maxLength": 64
},
"messageFee": {
"dataType": "uint64",
"fieldNumber": 6
},
"messageFeeTokenID": {
"dataType": "bytes",
"fieldNumber": 7,
"minLength": 8,
"maxLength": 8
}
}
}
}
],
"events": [
{
"name": "transfer",
"data": {
"$id": "/token/events/transfer",
"type": "object",
"required": [
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"result"
],
"properties": {
"senderAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"recipientAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
},
"result": {
"dataType": "uint32",
"fieldNumber": 5
}
}
}
},
{
"name": "transferCrossChain",
"data": {
"$id": "/token/events/transferCrossChain",
"type": "object",
"required": [
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"receivingChainID",
"result"
],
"properties": {
"senderAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"recipientAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
},
"receivingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 5
},
"result": {
"dataType": "uint32",
"fieldNumber": 6
}
}
}
},
{
"name": "ccmTransfer",
"data": {
"$id": "/token/events/ccmTransfer",
"type": "object",
"required": [
"senderAddress",
"recipientAddress",
"tokenID",
"amount",
"receivingChainID",
"result"
],
"properties": {
"senderAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"recipientAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
},
"receivingChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 5
},
"result": {
"dataType": "uint32",
"fieldNumber": 6
}
}
}
},
{
"name": "mint",
"data": {
"$id": "/token/events/mint",
"type": "object",
"required": [
"address",
"tokenID",
"amount",
"result"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"amount": {
"dataType": "uint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "burn",
"data": {
"$id": "/token/events/burn",
"type": "object",
"required": [
"address",
"tokenID",
"amount",
"result"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"amount": {
"dataType": "uint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "lock",
"data": {
"$id": "/token/events/lock",
"type": "object",
"required": [
"address",
"module",
"tokenID",
"amount",
"result"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
},
"result": {
"dataType": "uint32",
"fieldNumber": 5
}
}
}
},
{
"name": "unlock",
"data": {
"$id": "/token/events/unlock",
"type": "object",
"required": [
"address",
"module",
"tokenID",
"amount",
"result"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 2
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 3
},
"amount": {
"dataType": "uint64",
"fieldNumber": 4
},
"result": {
"dataType": "uint32",
"fieldNumber": 5
}
}
}
},
{
"name": "initializeToken",
"data": {
"$id": "/token/events/initializeTokenEvent",
"type": "object",
"required": [
"tokenID",
"result"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
},
"result": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
},
{
"name": "initializeUserAccount",
"data": {
"$id": "/token/events/initializeUserAccount",
"type": "object",
"required": [
"address",
"tokenID",
"initializationFee",
"result"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"initializationFee": {
"dataType": "uint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "initializeEscrowAccount",
"data": {
"$id": "/token/events/initializeEscrowAccount",
"type": "object",
"required": [
"chainID",
"tokenID",
"initializationFee",
"result"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"initializationFee": {
"dataType": "uint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "recover",
"data": {
"$id": "/token/events/recover",
"type": "object",
"required": [
"terminatedChainID",
"tokenID",
"amount",
"result"
],
"properties": {
"terminatedChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"amount": {
"dataType": "uint64",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "beforeCCCExecution",
"data": {
"$id": "/token/events/beforeCCCExecution",
"type": "object",
"required": [
"ccmID",
"messageFeeTokenID",
"relayerAddress",
"result"
],
"properties": {
"ccmID": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"messageFeeTokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"relayerAddress": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 3
},
"result": {
"dataType": "uint32",
"fieldNumber": 4
}
}
}
},
{
"name": "beforeCCMForwarding",
"data": {
"$id": "/token/events/beforeCCMForwarding",
"type": "object",
"required": [
"ccmID",
"messageFeeTokenID",
"result"
],
"properties": {
"ccmID": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"messageFeeTokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 2
},
"result": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
},
{
"name": "allTokensSupported",
"data": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
},
{
"name": "allTokensSupportRemoved",
"data": {
"$id": "/klayr/empty",
"type": "object",
"properties": {}
}
},
{
"name": "allTokensFromChainSupported",
"data": {
"$id": "/token/events/allTokensFromChainSupported",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
}
}
}
},
{
"name": "allTokensFromChainSupportRemoved",
"data": {
"$id": "/token/events/allTokensFromChainSupportRemoved",
"type": "object",
"required": [
"chainID"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
}
}
}
},
{
"name": "tokenIDSupported",
"data": {
"$id": "/token/events/tokenIDSupported",
"type": "object",
"required": [
"tokenID"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
}
}
}
},
{
"name": "tokenIDSupportRemoved",
"data": {
"$id": "/token/events/tokenIDSupportRemoved",
"type": "object",
"required": [
"tokenID"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8,
"fieldNumber": 1
}
}
}
}
],
"stores": [
{
"key": "3c469e9d0000",
"data": {
"$id": "/token/store/user",
"type": "object",
"required": [
"availableBalance",
"lockedBalances"
],
"properties": {
"availableBalance": {
"dataType": "uint64",
"fieldNumber": 1
},
"lockedBalances": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"module",
"amount"
],
"properties": {
"module": {
"dataType": "string",
"fieldNumber": 1,
"minLength": 1,
"maxLength": 32
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
}
}
}
},
{
"key": "3c469e9d8000",
"data": {
"$id": "/token/store/supply",
"type": "object",
"required": [
"totalSupply"
],
"properties": {
"totalSupply": {
"dataType": "uint64",
"fieldNumber": 1
}
}
}
},
{
"key": "3c469e9d4000",
"data": {
"$id": "/token/store/escrow",
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"dataType": "uint64",
"fieldNumber": 1
}
}
}
},
{
"key": "3c469e9dc000",
"data": {
"$id": "/token/store/supportedTokens",
"type": "object",
"required": [
"supportedTokenIDs"
],
"properties": {
"supportedTokenIDs": {
"type": "array",
"fieldNumber": 1,
"items": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8
}
}
}
}
}
],
"endpoints": [
{
"name": "getBalance",
"request": {
"$id": "/token/endpoint/getBalance",
"type": "object",
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"tokenID": {
"type": "string",
"format": "hex",
"minLength": 16,
"maxLength": 16
}
},
"required": [
"address",
"tokenID"
]
},
"response": {
"$id": "/token/endpoint/getBalanceResponse",
"type": "object",
"required": [
"availableBalance",
"lockedBalances"
],
"properties": {
"availableBalance": {
"type": "string",
"format": "uint64"
},
"lockedBalances": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"amount"
],
"properties": {
"module": {
"type": "string"
},
"amount": {
"type": "string",
"format": "uint64"
}
}
}
}
}
}
},
{
"name": "getBalances",
"request": {
"$id": "/token/endpoint/getBalance",
"type": "object",
"properties": {
"address": {
"type": "string",
"format": "klayr32"
}
},
"required": [
"address"
]
},
"response": {
"$id": "/token/endpoint/getBalancesResponse",
"type": "object",
"required": [
"balances"
],
"properties": {
"balances": {
"type": "array",
"items": {
"type": "object",
"required": [
"availableBalance",
"lockedBalances",
"tokenID"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex"
},
"availableBalance": {
"type": "string",
"format": "uint64"
},
"lockedBalances": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"amount"
],
"properties": {
"module": {
"type": "string"
},
"amount": {
"type": "string",
"format": "uint64"
}
}
}
}
}
}
}
}
}
},
{
"name": "getTotalSupply",
"response": {
"$id": "/token/endpoint/getTotalSupplyResponse",
"type": "object",
"properties": {
"totalSupply": {
"type": "array",
"items": {
"type": "object",
"required": [
"totalSupply",
"tokenID"
],
"properties": {
"tokenID": {
"type": "string",
"format": "hex"
},
"totalSupply": {
"type": "string",
"format": "uint64"
}
}
}
}
}
}
},
{
"name": "getSupportedTokens",
"response": {
"$id": "/token/endpoint/getSupportedTokensResponse",
"type": "object",
"properties": {
"tokenIDs": {
"type": "array",
"items": {
"type": "string",
"format": "hex"
}
}
}
}
},
{
"name": "isSupported",
"request": {
"$id": "/token/endpoint/isSupportedRequest",
"type": "object",
"properties": {
"tokenID": {
"type": "string",
"format": "hex",
"minLength": 16,
"maxLength": 16
}
},
"required": [
"tokenID"
]
},
"response": {
"$id": "/token/endpoint/isSupportedResponse",
"type": "object",
"properties": {
"supported": {
"dataType": "boolean"
}
},
"required": [
"supported"
]
}
},
{
"name": "getEscrowedAmounts",
"response": {
"$id": "/token/endpoint/getEscrowedAmountsResponse",
"type": "object",
"properties": {
"escrowedAmounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"escrowChainID",
"totalSupply",
"tokenID"
],
"properties": {
"escrowChainID": {
"type": "string",
"format": "hex"
},
"tokenID": {
"type": "string",
"format": "hex"
},
"amount": {
"type": "string",
"format": "uint64"
}
}
}
}
}
}
},
{
"name": "getInitializationFees",
"response": {
"$id": "/token/endpoint/getInitializationFees",
"type": "object",
"properties": {
"userAccount": {
"type": "string",
"format": "uint64"
},
"escrowAccount": {
"type": "string",
"format": "uint64"
}
},
"required": [
"userAccount",
"escrowAccount"
]
}
},
{
"name": "hasUserAccount",
"request": {
"$id": "/token/endpoint/hasUserAccountRequest",
"type": "object",
"properties": {
"address": {
"type": "string",
"format": "klayr32"
},
"tokenID": {
"type": "string",
"format": "hex",
"minLength": 16,
"maxLength": 16
}
},
"required": [
"address",
"tokenID"
]
},
"response": {
"$id": "/token/endpoint/hasUserAccountResponse",
"type": "object",
"properties": {
"exists": {
"type": "boolean"
}
}
}
},
{
"name": "hasEscrowAccount",
"request": {
"$id": "/token/endpoint/hasEscrowAccountRequest",
"type": "object",
"properties": {
"tokenID": {
"type": "string",
"format": "hex",
"minLength": 16,
"maxLength": 16
},
"escrowChainID": {
"type": "string",
"format": "hex"
}
},
"required": [
"tokenID",
"escrowChainID"
]
},
"response": {
"$id": "/token/endpoint/hasEscrowAccountResponse",
"type": "object",
"properties": {
"exists": {
"type": "boolean"
}
}
}
}
],
"assets": [
{
"version": 0,
"data": {
"$id": "/token/module/genesis",
"type": "object",
"required": [
"userSubstore",
"supplySubstore",
"escrowSubstore",
"supportedTokensSubstore"
],
"properties": {
"userSubstore": {
"type": "array",
"fieldNumber": 1,
"items": {
"type": "object",
"required": [
"address",
"tokenID",
"availableBalance",
"lockedBalances"
],
"properties": {
"address": {
"dataType": "bytes",
"format": "klayr32",
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"fieldNumber": 2,
"minLength": 8,
"maxLength": 8
},
"availableBalance": {
"dataType": "uint64",
"fieldNumber": 3
},
"lockedBalances": {
"type": "array",
"fieldNumber": 4,
"items": {
"type": "object",
"required": [
"module",
"amount"
],
"properties": {
"module": {
"dataType": "string",
"minLength": 1,
"maxLength": 32,
"fieldNumber": 1
},
"amount": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
}
}
}
},
"supplySubstore": {
"type": "array",
"fieldNumber": 2,
"items": {
"type": "object",
"required": [
"tokenID",
"totalSupply"
],
"properties": {
"tokenID": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 8,
"maxLength": 8
},
"totalSupply": {
"dataType": "uint64",
"fieldNumber": 2
}
}
}
},
"escrowSubstore": {
"type": "array",
"fieldNumber": 3,
"items": {
"type": "object",
"required": [
"escrowChainID",
"tokenID",
"amount"
],
"properties": {
"escrowChainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
},
"tokenID": {
"dataType": "bytes",
"fieldNumber": 2,
"minLength": 8,
"maxLength": 8
},
"amount": {
"dataType": "uint64",
"fieldNumber": 3
}
}
}
},
"supportedTokensSubstore": {
"type": "array",
"fieldNumber": 4,
"items": {
"type": "object",
"required": [
"chainID",
"supportedTokenIDs"
],
"properties": {
"chainID": {
"dataType": "bytes",
"minLength": 4,
"maxLength": 4,
"fieldNumber": 1
},
"supportedTokenIDs": {
"type": "array",
"fieldNumber": 2,
"items": {
"dataType": "bytes",
"minLength": 8,
"maxLength": 8
}
}
}
}
}
}
}
}
],
"name": "token"
},
{
"commands": [],
"events": [
{
"name": "generatorKeyRegistration",
"data": {
"$id": "/validators/event/generatorKeyRegData",
"type": "object",
"required": [
"generatorKey",
"result"
],
"properties": {
"generatorKey": {
"dataType": "bytes",
"minLength": 32,
"maxLength": 32,
"fieldNumber": 1
},
"result": {
"dataType": "uint32",
"fieldNumber": 2
}
}
}
},
{
"name": "blsKeyRegistration",
"data": {
"$id": "/validators/event/blsKeyRegData",
"type": "object",
"required": [
"blsKey",
"result"
],
"properties": {
"blsKey": {
"dataType": "bytes",
"minLength": 48,
"maxLength": 48,
"fieldNumber": 1
},
"proofOfPossession": {
"dataType": "bytes",
"minLength": 96,
"maxLength": 96,
"fieldNumber": 2
},
"result": {
"dataType": "uint32",
"fieldNumber": 3
}
}
}
}
],
"stores": [
{
"key": "66d18af40000",
"data": {
"$id": "/validators/validatorAccountSubStore",
"title": "Validators Account Keys",
"type": "object",
"properties": {
"generatorKey": {
"dataType": "bytes",
"fieldNumber": 1,
"minLength": 32,
"maxLength": 32
},
"blsKey": {
"dataType": "bytes",
"fieldNumber": 2,
"minLength": 48,
"maxLength": 48
}
},
"required": [
"generatorKey",
"blsKey"
]
}
},
{
"key": "66d18af48000",
"data": {
"$id": "/validators/validatorsParams",
"type": "object",
"required": [
"validators",
"preCommitThreshold",
"certificateThreshold"
],
"properties": {
"preCommitThreshold": {
"fieldNumber": 1,
"dataType": "uint64"
},
"certificateThreshold": {
"fieldNumber": 2,
"dataType": "uint64"
},
"validators": {
"fieldNumber": 3,
"type": "array",
"items": {
"type": "object",
"required": [
"address",
"bftWeight",
"generatorKey",
"blsKey"
],
"properties": {
"address": {
"fieldNumber": 1,
"dataType": "bytes",
"format": "klayr32"
},
"bftWeight": {
"fieldNumber": 2,
"dataType": "uint64"
},
"generatorKey": {
"fieldNumber": 3,
"dataType": "bytes"
},
"blsKey": {
"fieldNumber": 4,
"dataType": "bytes"
}
}
}
}
}
}
},
{
"key": "66d18af44000",
"data": {
"$id": "/validators/blsKeyData",
"title": "Validators Addresses",
"type": "object",
"properties": {
"address": {
"dataType": "bytes",
"fieldNumber": 1
}
},
"required": [
"address"
]
}
}
],
"endpoints": [
{
"name": "validateBKLYey",
"request": {
"$id": "/validators/endpoint/validateBKLYeyRequest",
"title": "Bls Key Properties",
"type": "object",
"properties": {
"proofOfPossession": {
"type": "string",
"format": "hex"
},
"blsKey": {
"type": "string",
"format": "hex"
}
},
"required": [
"proofOfPossession",
"blsKey"
]
},
"response": {
"$id": "/validators/endpoint/validateBKLYeyResponse",
"title": "Bls Key Properties",
"type": "object",
"properties": {
"valid": {
"type": "boolean"
}
},
"required": [
"valid"
]
}
},
{
"name": "getValidator",
"request": {
"$id": "/validators/endpoint/getValidatorRequest",
"title": "Validator properties",
"type": "object",
"properties": {
"address": {
"dataType": "string",
"format": "klayr32"
}
},
"required": [
"address"
]
},
"response": {
"$id": "/validators/endpoint/getValidatorResponse",
"title": "Validator properties",
"type": "object",
"properties": {
"generatorKey": {
"type": "string",
"format": "hex"
},
"blsKey": {
"type": "string",
"format": "hex"
}
},
"required": [
"generatorKey",
"blsKey"
]
}
}
],
"assets": [],
"name": "validators"
}
]
}
passphrase
Commands relating to Klayr Core passphrases.
USAGE
$ klayr-core passphrase
COMMANDS
passphrase:create Returns a randomly generated 24 words mnemonic passphrase.
passphrase:decrypt Decrypt secret passphrase using the password provided at the time of encryption.
passphrase:encrypt Encrypt secret passphrase using password.
passphrase:create
Decrypts the secret passphrase using the password provided at the time of encryption.
USAGE
$ klayr-core passphrase:create
OPTIONS
-o, --output=output The output directory. Default will set to current working directory.
EXAMPLES
passphrase:create
passphrase:create --output /mypath/passphrase.json
Example
klayr-core passphrase:create
{
"passphrase": "lava empower laundry taxi believe cute boss stairs bicycle vivid dirt vendor accuse identify general run knock medal chief space remain flush extra bike"
}
passphrase:decrypt
Decrypts the secret passphrase using the password provided at the time of encryption.
USAGE
$ klayr-core passphrase:decrypt
OPTIONS
-f, --file-path=file-path (required) Path of the file to import from
-w, --password=password Specifies a source for your secret password. Command will prompt you for input if this
option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
EXAMPLES
passphrase:decrypt --file-path ./my/path/output.json
passphrase:decrypt --file-path ./my/path/output.json --password your-password
Example
klayr-core passphrase:decrypt --file-path ./my/path/keys.json
? Please enter password: [hidden]
? Please re-enter password: [hidden]
{"passphrase":"my secret passphrase"}
passphrase:encrypt
Encrypts the secret passphrase using a password.
USAGE
$ klayr-core passphrase:encrypt
OPTIONS
-o, --output=output The output directory. Default will set to current working directory.
-p, --passphrase=passphrase Specifies a source for your secret passphrase. Command will prompt you for input if this
option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where security is not
important)
-w, --password=password Specifies a source for your secret password. Command will prompt you for input if this
option is not set.
Examples:
- --password=pass:password123 (should only be used where security is not important)
--output-public-key Includes the public key in the output. This option is provided for the convenience of
node operators.
EXAMPLES
passphrase:encrypt
passphrase:encrypt --passphrase your-passphrase --output /mypath/keys.json
passphrase:encrypt --password your-password
passphrase:encrypt --password your-password --passphrase your-passphrase --output /mypath/keys.json
passphrase:encrypt --output-public-key --output /mypath/keys.json
Example
klayr-core passphrase:encrypt -p 'my secret passphrase'
? Please enter password: [hidden]
? Please re-enter password: [hidden]
{
"encryptedPassphrase": {
"ciphertext": "f0abd47a3095f288f3b291a883222cd64d7748b0",
"mac": "f88e98d461c9be73bcf8f3b37e5e8123a7f7ce351fcdf3b9c9f226f5e07d9cda",
"kdf": "argon2id",
"kdfparams": {
"parallelism": 4,
"iterations": 1,
"memorySize": 2024,
"salt": "a5e440ce3bc216ec8b2bc122155971c9"
},
"cipher": "aes-256-gcm",
"cipherparams": {
"iv": "272b5a4caa0b3605ae9837b0",
"tag": "7a0601cc12ca169300aba9a9f53c652b"
},
"version": "1"
}
}
sdk
Commands relating to Klayr SDK development.
USAGE
$ klayr-core sdk
COMMANDS
sdk:link Symlink specific SDK folder during development.
sdk:link
Creates a symbolic link to the specified SDK folder during development.
USAGE
$ klayr-core sdk:link TARGETSDKFOLDER
ARGUMENTS
TARGETSDKFOLDER The path to the klayr SDK folder
EXAMPLE
sdk:link /path/to/klayr-sdk/sdk
Example
klayr-core sdk:link ~/XYZ/Documents/GitHub/klayr-sdk
Linked /Users/XYZ/Documents/GitHub/klayr-sdk to /klayr-sdk.
transaction
Commands relating to Klayr Core transactions.
USAGE
$ klayr-core transaction
COMMANDS
transaction:create Create transaction which can be broadcasted to the network. Note: fee and amount should be in Beddows!!
transaction:get Get transaction from local node by ID.
transaction:send Send transaction to the local node.
transaction:sign Sign encoded transaction.
transaction:create
Creates a transaction that can be broadcast to the network.
The fee and amount are expected in Beddows! |
USAGE
$ klayr-core transaction:create MODULE COMMAND FEE
ARGUMENTS
MODULE Registered transaction module.
COMMAND Registered transaction command.
FEE Transaction fee in Beddows.
OPTIONS
-a, --params=params Creates transaction with specific params information
-d, --data-path=data-path Directory path to specify where node data is stored. Environment
variable "KLAYR_DATA_PATH" can also be used.
-f, --file=file The file to upload.
Example:
--file=./myfile.json
-j, --json Print the transaction in JSON format.
-k, --key-derivation-path=key-derivation-path [default: m/44'/134'/0'] Key derivation path to use to derive keypair
from passphrase
-p, --passphrase=passphrase Specifies a source for your secret passphrase. Command will prompt you
for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where
security is not important)
-s, --sender-public-key=sender-public-key Set a custom senderPublicKey property for the transaction, to be used
when account address does not correspond to signer's private key
--chain-id=chain-id
--no-signature Creates the transaction without a signature. Your passphrase will
therefore not be required
--nonce=nonce Nonce of the transaction.
--offline Specify whether to connect to a local node or not.
--pretty Prints JSON in pretty format rather than condensed.
--send Create and immediately send transaction to a node
EXAMPLES
transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
ss":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}'
transaction:create token transfer 100000000 --params='{"amount":100000000,"tokenID":"0400000000000000","recipientAddre
ss":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send token"}' --json
transaction:create token transfer 100000000 --offline --network mainnet --chain-id 10000000 --nonce 1 --params='{"amou
nt":100000000,"tokenID":"0400000000000000","recipientAddress":"klyycz7hvr8yfu74bcwxy2n4mopfmjancgdvxq8xz","data":"send
token"}'
transaction:create token transfer 100000000 --file=/txn_params.json
transaction:create token transfer 100000000 --file=/txn_params.json --json
Example
klayr-core transaction:create token transfer 100000000
? Please enter passphrase: [hidden]
Warning: Passphrase contains 24 words instead of expected 12. Passphrase contains 23 whitespaces instead of expected 11.
? Please enter: tokenID: 0400000000000000
? Please enter: amount: 1
? Please enter: recipientAddress: klyz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp
? Please enter: data: Sending tokens
{"transaction":"0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"}
transaction:get
Gets a transaction from the local node by ID.
USAGE
$ klayr-core transaction:get ID
ARGUMENTS
ID Transaction ID in hex format.
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLE
transaction:get eab06c6a22e88bca7150e0347a7d976acd070cb9284423e6eabecd657acc1263
Example
klayr-core transaction:get ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31 --pretty
{
"module": "token",
"command": "transfer",
"params": {
"tokenID": "0400000000000000",
"amount": "1",
"recipientAddress": "klyz6x7dzjr547cv42gk7suw76ojpwhu8q43ydhdp",
"data": "Sending tokens"
},
"nonce": "0",
"fee": "100000000",
"senderPublicKey": "3972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c",
"signatures": [
"497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109"
],
"id": "ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31"
}
transaction:send
Sends a transaction to the local node.
USAGE
$ klayr-core transaction:send TRANSACTION
ARGUMENTS
TRANSACTION A transaction to be sent to the node encoded as hex string
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment variable "KLAYR_DATA_PATH"
can also be used.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLE
transaction:send 080810011880cab5ee012220fd061b9146691f3c56504be051175d5b76d1b1d0179c5c4370e18534c58821222a2408641214a
b0041a7d3f7b2c290b5b834d46bdc7b7eb858151a0a73656e6420746f6b656e324028edd3601cdc35a41bb23415a0d9f3c3e9cf188d9971adf1874
2cea39d58aa84809aa87bcfe6feaac46211c80472ad9297fd87727709f5d7e7b4134caf106b02
Example
klayr-core transaction:send 0a05746f6b656e12087472616e7366657218002080c2d72f2a203972849f2ab66376a68671c10a00e8b8b67d880434cc65b04c6ed886dfa91c2c32320a08040000000000000010011a140282ed03925a5c31271fa3b70bb94ce12fd83ea9220e53656e64696e6720746f6b656e733a40497ee511d6537fd9e05e1615bae8d9e186af8b871a9bc1ae8d317cfe3da3669e1cdf36e3d12e16639cb49d727a230f0a8254f9bb8b9630f3aca3aa91e5517109
Transaction with id: 'ef9296e17308d99c012597cb5d0f90539a5bd87ae6a2a2ce4f64c0529bcc3c31' received by node.
transaction:sign
Signs an encoded transaction.
USAGE
$ klayr-core transaction:sign TRANSACTION
ARGUMENTS
TRANSACTION The transaction to be signed encoded as hex string
OPTIONS
-d, --data-path=data-path Directory path to specify where node data is stored. Environment
variable "KLAYR_DATA_PATH" can also be used.
-j, --json Print the transaction in JSON format.
-k, --key-derivation-path=key-derivation-path [default: m/44'/134'/0'] Key derivation path to use to derive keypair
from passphrase
-p, --passphrase=passphrase Specifies a source for your secret passphrase. Command will prompt you
for input if this option is not set.
Examples:
- --passphrase='my secret passphrase' (should only be used where
security is not important)
--chain-id=chain-id
--mandatory-keys=mandatory-keys Mandatory publicKey string in hex format.
--offline Specify whether to connect to a local node or not.
--optional-keys=optional-keys Optional publicKey string in hex format.
--pretty Prints JSON in pretty format rather than condensed.
EXAMPLES
transaction:sign <hex-encoded-binary-transaction>
transaction:sign <hex-encoded-binary-transaction> --network testnet
Example
klayr-core transaction:sign 0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06 --pretty
? Please enter passphrase: [hidden]
? Please re-enter passphrase: [hidden]
{
"transaction": "0a05746f6b656e12087472616e7366657218012080c2d72f2a20a3f96c50d0446220ef2f98240898515cbba8155730679ca35326d98dcfb680f032250a08000000000000000010011a140326f20343173a4e5e5daa354a1bc96b594717b722014c3a4008174cd6816439265bff92ce93687ce4d6a65877d69d6c43dd1c1696312cf4c74962c0be7f047fd21482877e21d5ae56f638323ece64bc92a14386f96fe41c06"
}