tmkms 0.9.0-rc1

Tendermint Key Management System
Documentation
# Example KMS configuration file
#
# This is just an example for reference. You can now use the following command
# to generate a customizable configuration based on your preferences:
#
#     $ tmkms init [-n cosmoshub,irishub,...] /path/to/tmkms/homedir

# Information about Tendermint blockchain networks this KMS services
#
# - id: The chain ID for this chain
# - key_format: How this chain handles serialization. Type may be "bech32" or "hex"
# - state_file (optional): path to where the state of the last signing operation is persisted
# - state_hook (optional): user-specified command to run on startup to obtain the current height
#   of this chain. The command should output JSON which looks like the following:
#   {"latest_block_height": "347290"}
[[chain]]
id = "cosmoshub-1"
key_format = { type = "bech32", account_key_prefix = "cosmospub", consensus_key_prefix = "cosmosvalconspub" }
# state_file = "/path/to/cosmoshub_priv_validator_state.json"
# state_hook = { cmd = ["/path/to/block/height_script", "--example-arg", "cosmoshub"] }

[[chain]]
id = "irishub"
key_format = { type = "bech32", account_key_prefix = "iap", consensus_key_prefix = "icp" }
# state_file = "/path/to/irishub_priv_validator_state.json"

## Validator configuration
[[validator]]
addr = "tcp://f88883b673fc69d7869cab098de3bafc2ff76eb8@example1.example.com:26658"
# or addr = "unix:///path/to/socket"
chain_id = "cosmoshub-1"
reconnect = true # true is the default
secret_key = "path/to/secret_connection.key"
# max_height = "500000"
protocol_version = "v0.33" # "legacy" is the default

## Signing provider configuration

# enable the `yubihsm` feature to use this backend
[[providers.yubihsm]]
adapter = { type = "usb" }
auth = { key = 1, password_file = "/path/to/password" } # or pass raw password as `password`
keys = [
    { chain_ids = ["cosmoshub-1"], key = 1, type = "consensus" }
    # { chain_ids = ["irishub"], key = 2, type = "account" }
]
#serial_number = "0123456789" # identify serial number of a specific YubiHSM to connect to
#connector_server = { laddr = "tcp://127.0.0.1:12345", cli = { auth_key = 2 } } # run yubihsm-connector compatible server

# enable the `ledger` feature to use this backend
#[[providers.ledgertm]]
#chain_ids = ["cosmoshub-1"]

# enable the `softsign` feature to use this backend
# note: the `yubihsm` or `ledger` backends are preferred over this one
[[providers.softsign]]
chain_ids = ["cosmoshub-1"]
key_type = "consensus"
path = "path/to/consensus-ed25519.key" # generate using `tmkms softsign keygen -t consensus consensus-ed25519.key`

# the `softsign` backend also supports account keys
#[[providers.softsign]]
#chain_ids = ["irishub"]
#key_type = "account"
#path = "path/to/account-secp256k1.key" # generate using `tmkms softsign keygen -t account account-secp256k1.key`

## (Optional) Transaction signer configuration

# example transaction signer: sign StdTx-strucutred transactions with a KMS-managed key
# [[tx_signer]]
# chain_id = "irishub"
# schema = "iris_tx_schema.toml" # See example TERRA_SCHEMA at https://docs.rs/stdtx#usage
# account_number = 101072
# account_address = "iap1qqqsyqcyq5rqwzqfpg9scrgwpugpzysnfxh53h" # must be in the keyring for this chain
# acl = { msg_type = ["oracle/MsgExchangeRatePrevote", "oracle/MsgExchangeRateVote"] }
# poll_interval = { blocks = 5 }
# source = { protocol = "jsonrpc", uri = "http://127.0.0.1:23456" }
# rpc = { addr = "tcp://127.0.0.1:26657" }
# seq_file = "irishub-account-seq.json"