Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ndelvalle/nakatoshi

🦀 Bitcoin vanity address generator
https://github.com/ndelvalle/nakatoshi

address bitcoin vanity-address

Last synced: about 2 months ago
JSON representation

🦀 Bitcoin vanity address generator

Awesome Lists containing this project

README

        

# nakatoshi

[![](https://github.com/ndelvalle/nakatoshi/workflows/Rust/badge.svg)](https://github.com/ndelvalle/nakatoshi/actions?query=workflow%3ARust)

A [Bitcoin Vanity Address](https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch04.asciidoc#vanity-addresses) generator.

nakatoshi accepts as input a prefix string (Or a file with multiple prefixes) to search for and produce
a Bitcoin address and private / public keys. The amount of time required to find a given pattern depends
on how long the string is, the speed of your computer, and whether you get lucky.

## Install

### MacOS

```
$ brew tap ndelvalle/utilities
$ brew install nakatoshi
```

### Cargo

```
$ cargo install nakatoshi
```

### Manually

Download the latest [released binary](https://github.com/ndelvalle/nakatoshi/releases)
and add executable permissions:

```bash
# Linux example:
$ wget -O nakatoshi "https://github.com/ndelvalle/nakatoshi/releases/download/v0.2.4/nakatoshi-linux-amd64"
$ chmod +x nakatoshi
```

## CLI

```
USAGE:
nakatoshi [FLAGS] [OPTIONS] --input-file

FLAGS:
-b, --bech32 Use Bech32 addresses. Starting with bc1q (Lowercase address)
-c, --case-sensitive Use case sensitive comparison to match addresses
-h, --help Prints help information
-u, --uncompressed Use uncompressed private an public keys
-V, --version Prints version information

OPTIONS:
-i, --input-file File with prefixes to match addresses with
-t, --threads Number of threads to be used [default: The number of CPUs available on the current
system]

ARGS:
Prefix used to match addresses
```

## Examples:

#### Generate a vanity address

```shell
nakatoshi 1Kids
```

#### Generate a vanity address and parse JSON response

```shell
nakatoshi 1Bitc | jq
```

#### Use a file with multiple prefixes

A file with one address prefix on each newline can be used to search for a vanity
address. This reduces the time to find a result.

Example:

```shell
nakatoshi --input-file input.txt
```

The contents of the `input.txt` file looks like this:
```
1Kids
1Love
```

#### Bech32 addresses

```shell
nakatoshi -b bc1qki
```

Note: There is no need to search with the `case-sensitive` flag because `bc1q` addresses are
always lowercase.

## Development

```shell
# Build
$ cargo build

# Help
$ cargo run -- -help
```

Note: `Cargo run` creates an unoptimized executable with debug info. When testing
the speed/throughput of the application, make sure to use `cargo run --release`.