# Signer Tool

Signer registry is a centralized place where you can store your development keys.

Each signer in registry has an unique user defined name. All everdev commands that require signing or encryption refer to the signer by name.

You can mark one of the signers as a default. It can be used in signing commands without providing signer option.

Signer repository management in everdev is accessible through the `signer` tool.

**Note:** If you need to generate an unsigned message, you may use the option `--signer none` in any relevant commands in other controllers. Omitting the signer option altogether always means using the default signer.

**Note:** Keys in the repository are stored unencrypted.

## Add a signer with randomly generated keys

This command adds a signer with randomly generated keys.

```bash
everdev signer generate signer_name
```

See other available generation options with help command:

```bash
everdev signer generate -h
EverDev Version: 0.5.0
Use: everdev signer generate name [options]
Args:
    name  Signer name
Options:
    --help, -h        Show command usage
    --mnemonic, -m    Use mnemonic phrase
    --dictionary, -d  Mnemonic dictionary
                      0  TON
                      1  English
                      2  Chinese Simplified
                      3  Chinese Traditional
                      4  French
                      5  Italian
                      6  Japanese
                      7  Korean
                      8  Spanish
    --words, -w       Number of mnemonic words
    --force, -f       Overwrite signer if already exists
```

## Add a signer with specific keys

This command adds a signer with previously generated (e.g. with tonos-cli) keys.

```bash
everdev signer add signer_name signer_secret_key_or_seed_phrase_in_quotes
```

See other available signer addition options with help command:

```bash
everdev signer add -h
EverDev Version: 0.5.0
Use: everdev signer add name secret [options]
Args:
    name    Signer name
    secret  Secret key or seed phrase
Options:
    --help, -h        Show command usage
    --dictionary, -d  Mnemonic dictionary
                      0  TON
                      1  English
                      2  Chinese Simplified
                      3  Chinese Traditional
                      4  French
                      5  Italian
                      6  Japanese
                      7  Korean
                      8  Spanish
    --force, -f       Overwrite signer if already exists
```

**Note:** By default the dictionary is set to english, which allows using seed phrases generated by other TONOS tools, such as tonos-cli.

## List registered signers

This command lists all registered signers with their public keys.

```bash
everdev signer list
```

Result:

```bash
$ everdev signer list

Signer           Public Key
---------------  ----------------------------------------------------------------
sign1 (Default)  cffd3a2f1d241807b2205220a7d6df980e67a3cc7c47eba2766cdc1bbddfc0e3
sign2            0fc4e781720d80f76257db333c6b6934090562418652cf30352878c87707aa94
```

## Get signer details

This command lists all information (including secret data) for a specified signer.

```bash
everdev signer info signer_name
```

Result:

```bash
$ everdev signer info sign2
{
    "name": "sign2",
    "description": "",
    "keys": {
        "public": "760d69964d038997d891fca0a0407c2ffefb701e7cb2f9ff0a87fbbf1e8098f2",
        "secret": "72571b5a9392e6bb215b460ca3c0545c34d790e185f66f5b2e7564329ffea86c"
    }
}
```

## Set default signer

This command sets a previously added signer as default (initially the first added signer is used by default).

```bash
everdev signer default signer_name
```

## Delete a signer

This command deletes a previously added signer from signer registry.

```bash
everdev signer delete signer_name
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.everos.dev/everdev/command-line-interface/signer-tool.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
