> For the complete documentation index, see [llms.txt](https://docs.slingnode.com/slingnode.ethereum_node_mgmt/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.slingnode.com/slingnode.ethereum_node_mgmt/api-key-import.md).

# API key import

The role supports importing keystores using the Key manager API. This is a standard Ethereum API supported by all clients. In most cases this is the preferred way to import keys. It allows importing the keys along with the slashing protection DB.  This requires that the Validator client API are enabled - refer to [slindnode.ethereum role documentation](https://docs.slingnode.com/slingnode.ethereum/enabling-validator-client-api) for details on how to do it. The tasks will dynamically retrieve the authentication token and use it for the API call.&#x20;

There are two separate tasks:

* Import keystores without slashing protection db (requires [keystores\_without\_slashing\_protection](/slingnode.ethereum_node_mgmt/role-variables.md#keystores_without_slashing_protection) variable)&#x20;
* Import keystores with slashing protection db (requires [keystores\_with\_slashing\_protection](/slingnode.ethereum_node_mgmt/role-variables.md#keystores_with_slashing_protection) variable)

As the task naming implies, one is used to import keys without slashing protection DB and other with it. Implementing this kind of logic in Ansible is cumbersome and separating it in two tasks makes them simpler.&#x20;
