> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# KMS - Key Management System

> Tendermint KMS is a key management service that allows separating key management from Tendermint nodes. In addition it provides other advantages such as:

[Tendermint KMS](https://github.com/iqlusioninc/tmkms) is a key management service that allows separating key management from Tendermint nodes. In addition it provides other advantages such as:

* Improved security and risk management policies
* Unified API and support for various HSM (hardware security modules)
* Double signing protection (software or hardware based)

It is recommended that the KMS service runs in a separate physical hosts.

## Building

Detailed build instructions can be found [here](https://github.com/iqlusioninc/tmkms#installation).

<Tip>
  When compiling the KMS, ensure you have enabled the applicable features:
</Tip>

| Backend               | Recommended Command line          |
| --------------------- | --------------------------------- |
| YubiHSM               | `cargo build --features yubihsm`  |
| Ledger+Tendermint App | `cargo build --features ledgertm` |

## Configuration

A KMS can be configured in various ways:

### Using a YubiHSM

Detailed information on how to setup a KMS with YubiHSM2 can be found [here](https://github.com/iqlusioninc/tmkms/blob/master/README.yubihsm.md)

### Using a Ledger device running the Tendermint app

Detailed information on how to setup a KMS with Ledger Tendermint App can be found [here](/hub/latest/validators/kms/kms_ledger)
