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

# Vanity Address Generator

> Generate addresses with a defined prefix and/or suffix.

<Card title="GitHub Repository" icon="github" horizontal={true} href="https://github.com/sava-software/sava/tree/main/sava-vanity#vanity-address-generator" />

## Configuration

<Info>
  **GitHub Access Token**: [Generate a classic token](https://github.com/settings/tokens) with the `read:packages` scope to access
  dependencies hosted on GitHub Package Repository.
</Info>

```properties .gradle/gradle.properties theme={null}
savaGithubPackagesUsername=GITHUB_USERNAME
savaGithubPackagesPassword=GITHUB_TOKEN
```

## Compile

```shell theme={null}
./vanity/compile.sh
```

## Run

```shell theme={null}
./vanity/genKeys.sh --prefix="abc"
```

## Args

* A `prefix` and/or `suffix` must be provided.
* `numThreads` defaults to half of the systems CPU's.
* Each thread will check every `checkFound` iterations if `numKeys` have been found.
* `p1337Letters` allows alphabetic characters to be replaced by visually similar numbers.
* `1337Numbers` allows numbers to be replaced by visually similar alphabetic characters.
* `screen` may be enabled to manage the session so that it can be re-attached if a remote session is disconnected.
  * `ctrl+a -> d` to detach
  * `screen -r` to re-attach

### Run Control

* jvmArgs="-server -Xms64M -Xmx128M"
* screen=0
* \[nt | numThreads]=
* \[nk | numKeys]=1
* \[cf | checkFound]=131072
* \[ld | logDelay]="5S"
* \[o | outDir]='.keys'
* \[sv | sigVerify]=false

### Prefix

* \[p | prefix]=""
* \[pc | pCaseSensitive]=false
* \[pn | p1337Numbers]=true
* \[pl | p1337Letters]=true

### Suffix

* \[s | suffix]=""
* \[sc | sCaseSensitive]=false
* \[sn | s1337Numbers]=true
* \[sl | s1337Letters]=true
