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

# Keystore API

Every node has a built-in keystore. Clients create users on the keystore, which act as identities to be used when interacting with blockchains. A keystore exists at the node level, so if you create a user on a node it exists *only* on that node. However, users may be imported and exported using this API.

&#x20;**You should only create a keystore user on a node that you operate, as the node operator has access to your plaintext password.**

### Path <a href="#endpoint" id="endpoint"></a>

```
/ext/keystore
```

### **Example** Method <a href="#methods" id="methods"></a>

#### keystore.createUser <a href="#keystorecreateuser" id="keystorecreateuser"></a>

Create a new user with the specified username and password.

{% hint style="info" %}
Your request will be rejected if the password is too weak. The password should be at least 8 characters and contain upper and lower case letters as well as numbers and symbols. It should not contain the word "Password".
{% endhint %}

### **Example Call**

```
//Request
curl -X POST --data '{
    "jsonrpc":"2.0",
    "id"     :1,
    "method" :"keystore.createUser",
    "params" :{
        "username":"test",
        "password":"Test1234!"
    }
}' -H 'content-type:application/json;' https://ava-api.bwarelabs.com/<your-endpoint-id>/ext/keystore

//Response
{
    "jsonrpc":"2.0",
    "id"     :1,
    "result" :{
        "success":true
    }
}
```
