stealthereum-cli

Crates.iostealthereum-cli
lib.rsstealthereum-cli
version0.3.0
sourcesrc
created_at2023-09-17 11:15:57.797246
updated_at2024-11-08 01:22:03.250193
descriptionCLI for ERC-5564 compliant stealth address management on evm chains
homepagehttps://github.com/kassandraoftroy/stealthereum-cli
repositoryhttps://github.com/kassandraoftroy/stealthereum-cli
max_upload_size
id975035
size38,081
κασσάνδρα.eth (kassandraoftroy)

documentation

README

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
Commit count: 12

cargo fmt