Skip to content

CLI for ERC-5564 compliant stealth address management on evm chains

License

Notifications You must be signed in to change notification settings

kassandraoftroy/stealthereum-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stealthereum-cli

This is a bare bones CLI written in rust for ERC-5564 compliant stealth address management on evm chains

It's currently the easiest way to interact with the eth-stealth-addresses rust library which implements the basic cryptographic operations necessary for a stealth addresses scheme over the secp256k1 curve (with view tags) as outlined here

For now it's extremely rough and low level! More improvements soon

NOT AUDITED - HOMEROLLED CRYPTO - USE AT YOUR OWN RISK

Installation

cargo install stealthereum-cli

Make sure you add $HOME/.cargo/bin to your PATH

Usage

Below is the list of basic commands and arguments for the CLI

keygen

generate a stealth meta address and store the keys

stealthereum keygen -o path/to/keyfile.json

stealth-address

generate all the components of a stealth address as defined in ERC-5564 given a target receiver's stealth meta address to privately send to

stealthereum stealth-address -r 0xReceiverStealthMetaAddres

reveal-stealth-key

compute the private key for a stealth address you control

stealthereum reveal-stealth-key -k path/to/keyfile.json -s 0xStealthAddress -e 0xEphemeralPub

note that this requires you to know in advance what [stealth_address, ephemeral_pubkey] pairs are actually payments meant for your stealth meta address (process will panic otherwise). See scan below for more info on how to scan for private payments to your stealth meta address

scan

scan announced stealth transfers for payments to your stealth meta address

stealthereum scan -k path/to/keyfile.json -s path/to/scanfile.json

this will log the [stealth_address, ephemeral_pubkey] pairs of all stealth transfers that are claimable by you in the scanfile.

For now a scanfile has to be precomputed into a JSON format like so

{
    "announcements": [
        {
            "stealth_address": "0xSomeStealthAddress",
            "ephemeral_pubkey": "0xSomeEphemeralPubkey",
            "view_tag": 116
        },
        {
            "stealth_address": "0xSomeOtherAddress",
            "ephemeral_pubkey": "0xSomeOtherPubkey",
            "view_tag": 94
        }
    ]
}

show-meta-address

recompute your stealth meta address from keyfile

stealthereum show-meta-address -k path/to/keyfile.json

About

CLI for ERC-5564 compliant stealth address management on evm chains

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages