jaxvanity

package module
v0.0.0-...-725c82e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2022 License: MIT Imports: 5 Imported by: 0

README

jax-vanity

Build Status Go Report Card GoDoc License MIT

Generate Jaxnet Vanity Address

This is fork of http://github.com/MarinX/btc-vanity project

What is jaxnet vanity address?

Vanity addresses are valid bitcoin addresses that contain human-readable messages.

For example, 1JAXeBPzzD72PUXLzCkYAtGFYmK5vYNR33 is a valid address that contains the letters forming the word "JAX" as the first 3 Base-58 letters. Vanity addresses require generating and testing billions of candidate private keys, until one derives a jaxnet address with the desired pattern...reference

Length of address

The frequency of a vanity pattern (1KidsCharity) and average time-to-find on a desktop PC

Length Pattern Frequency Average search time
1 1K 1 in 58 keys < 1 milliseconds
2 1Ki 1 in 3,364 50 milliseconds
3 1Kid 1 in 195,000 < 2 seconds
4 1Kids 1 in 11 million 1 minute
5 1KidsC 1 in 656 million 1 hour
6 1KidsCh 1 in 38 billion 2 days
7 1KidsCha 1 in 2.2 trillion 3–4 months
8 1KidsChar 1 in 128 trillion 13–18 years
9 1KidsChari 1 in 7 quadrillion 800 years
10 1KidsCharit 1 in 400 quadrillion 46,000 years
11 1KidsCharity 1 in 23 quintillion 2.5 million years

Using library

Install
go get github.com/tjaxer/jax-vanity
Use it as library
package main

import (
	"fmt"

	"github.com/tjaxer/jax-vanity"
)

func main() {

	// create configuration
	cfg := &jaxvanity.Config{
		// buffered channel, more buffer, faster to find matching pattern
		Buffer: 5,
		// if you want to use testnet, set true
		TestNet: false,
	}

	btc := jaxvanity.New(cfg)

	// find a patters eg adddress which starts with "ab"
	address, err := btc.Find("JAX", true)
	if err != nil {
		panic(err)
	}
	
	fmt.Println("ADDRESS\n%s\n", address.Address())
	fmt.Printf("PUBLIC KEY\n%s\n", address.PublicKey())
	fmt.Printf("PRIVATE KEY\n%s\n", address.PrivateKey()) // RAW Hex format
}

Use it as a CLI tool
go get github.com/tjaxer/jax-vanity/cmd/jaxvanity
Usage: ./jaxvanity [OPTIONS] pattern
Example: ./jaxvanity

  -help
        Show usage message
  -testnet
        Use testnet
  -threads int
        How many threads you want to spawn (default 16)
  -uncompressed
        Use uncompressed public key 

Tests

No magic, just run

go test -v

Credits

License

This library is under the MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BTCVanity

type BTCVanity struct {
	// contains filtered or unexported fields
}

BTCVanity library holder

func New

func New(config *Config) *BTCVanity

New creates a new BTCVanity service

func (*BTCVanity) Find

func (b *BTCVanity) Find(pattern string, compressed bool) (IWallet, error)

Find runs a service to find matching pattern

func (*BTCVanity) Stop

func (b *BTCVanity) Stop()

Stop stops the process

type Config

type Config struct {
	Buffer  int
	TestNet bool
}

Config hold configuration for package

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Generator hold the logic for generating bitcoin address Depending on chain configuration, it can generate main/test net versions of wallet

func (*Generator) Generate

func (g *Generator) Generate(compressed bool) (IWallet, error)

Generate generates bitcoin wallet interface

type IGenerator

type IGenerator interface {
	Generate(bool) (IWallet, error)
}

IGenerator is interface for generator

type IWallet

type IWallet interface {
	PublicKey() string
	PrivateKey() string
	Address() string
}

IWallet is interface to our internal wallet

type Wallet

type Wallet struct {
	// contains filtered or unexported fields
}

Wallet is our private/public key holder

func (Wallet) Address

func (w Wallet) Address() string

Address returns encoded address

func (Wallet) PrivateKey

func (w Wallet) PrivateKey() string

PrivateKey returns private key, ready for import in most bitcoin wallets

func (Wallet) PublicKey

func (w Wallet) PublicKey() string

PublicKey returns encoded public key

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL