Vain

An open marketplace for mining vanity ETH addresses! Fully secure using ECC offsets of public keys to allow for miners to mine vanity addresses without access to the vanity address private key! Supports user wallet EOAs, contracts and create2 for leading 0s and custom vanity like 0x1337b33f!

Contract

0x000000000001F04A9533e92d7AD4dDe7DC19a8F3

Create a bounty

  1. Approve Scry for Vain

https://optimistic.etherscan.io/address/0x64ba55A341EC586A4C5d58d6297CdE5125aB55bC#writeContract

Approve 0x000000000001F04A9533e92d7AD4dDe7DC19a8F3 for your desired bounty amount

You Can Get Scry On Optimism Here https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x64ba55A341EC586A4C5d58d6297CdE5125aB55bC

Go to https://optimistic.etherscan.io/address/0x000000000001F04A9533e92d7AD4dDe7DC19a8F3#readContract

  1. Use createBounty

createBounty

Set to 0

pubkey (bytes)

Your pubkey goes here. Check https://github.com/pr0toshi/profanity2/ for how to get your public key.

custom (bytes)

For addresses that arent simply for n leading 0s, ie, 0x1337----. custom=0x1337

n (uint8)

For n leading 0s, ie, 0x00000000, n=8

flag (uint8)

0 user wallet EOA with n leading 0s

1 contract with n leading 0s

2 create2 contract with n leading 0s

3 user wallet EOA custom

4 contract custom

5 create2 contract custom

locked (uint8) Set to 0

amount (uint256) How much SCRY for the miner as a bounty.

Notes

Recommended Bounty

250 SCRY <10 characters

2500 SCRY 11-12 characters

  1. Once one has been found you can add your private key to the offset to get your new vanity addresses private key securely!

How to

Open Source tool for getting public keys and adding private keys (Do not use for wallets with large value)

https://codepen.io/Pro-Pro-the-scripter/pen/zYyyNbJ

Getting public key for mandatory -z parameter

Generate private key and public key via openssl in terminal (remove prefix "04" from public key):

$ openssl ecparam -genkey -name secp256k1 -text -noout -outform DER | xxd -p -c 1000 | sed 's/41534e31204f49443a20736563703235366b310a30740201010420/Private Key: /' | sed 's/a00706052b8104000aa144034200/\'$'\nPublic Key: /'

Derive public key from existing private key via openssl in terminal (remove prefix "04" from public key):

$ openssl ec -inform DER -text -noout -in <(cat <(echo -n "302e0201010420") <(echo -n "PRIVATE_KEY_HEX") <(echo -n "a00706052b8104000a") | xxd -r -p) 2>/dev/null | tail -6 | head -5 | sed 's/[ :]//g' | tr -d '\n' && echo

Adding private keys (never use online calculators!)

Terminal:

Use private keys as 64-symbol hexadecimal string WITHOUT 0x prefix:

(echo 'ibase=16;obase=10' && (echo '(PRIVATE_KEY_A + PRIVATE_KEY_B) % FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F' | tr '[:lower:]' '[:upper:]')) | bc

Python

Use private keys as 64-symbol hexadecimal string WITH 0x prefix:

$ python3
>>> hex((PRIVATE_KEY_A + PRIVATE_KEY_B) % 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F)

Get Scry on Optimism

https://app.uniswap.org/swap?inputCurrency=ETH&outputCurrency=0x64ba55A341EC586A4C5d58d6297CdE5125aB55bC

For info

https://github.com/pr0toshi/profanity2/

Chat

https://discord.gg/49qDUcPy6t

Last updated