Skip to main content

Secure wallet and development enviroment

Project description

Secure Web3

About

This is a simple, secure command-line wallet for EVM compatible wallets. Additionally, it is a secure framework for developers to manage their private keys with. It contains a setup wizard that encrypts your wallet and saves it into a json file for secure storage. I wrote it because I have a lot of web3 projects and I do not like storing private keys in plaintext on disc.

Use as a wallet

Sw3 is a command line wallet which is compatable with any EVM chain. Currently it supports sending both eth and erc20 tokens. I will be adding more features in time.

usage: Secure Web3 Cli [-h] [-i INIT_WALLET] [-o [OPEN_WALLET]] [-l] [-n {ethereum,polygon,bsc,aurora,goerli}] [-it IMPORT_TOKEN] [-b] [-r BROADCAST_RAW] [-s {eth,erc20}] [-L]

options:
  -h, --help            show this help message and exit

  Wallet managment options.

  -i INIT_WALLET, --init INIT_WALLET
                        Initialize this new wallet
  -o [OPEN_WALLET], --open [OPEN_WALLET]
                        Unlock a wallet, use default wallet if not specified.
  -l, --lock            Lock all open wallets.
  -n {ethereum,polygon,bsc,aurora,goerli}, --network {ethereum,polygon,bsc,aurora,goerli}

  Wallet configuration options and functions

  -it IMPORT_TOKEN, --import-token IMPORT_TOKEN
                        Add this token to the specified wallet.

  EVM State-Reading functions.

  -b, --balance         Get wallet balance info.

  EVM State-Writing related options.

  -r BROADCAST_RAW, --raw BROADCAST_RAW
                        Load a json tx from this file to sign and broadcast.
  -s {eth,erc20}, --send {eth,erc20}
                        Open interactive shell to send ethereum.
  -L, --legacy          Use legacy gas protocol.


As a development framework

See main.py for example use.

Installation

To install with pip:

pip3 install secure-web3==1.2.8

You can also install from source by cloning this repo, installing the dependencies in requirements.txt, and running `setup.py build` and then `setup.py install`.

Configuration

secure-web3 expects to find your rpc endpoints in the .env file. It will look for these names:

{network}_http_endpoint {network}_ws_endpoint

Example:

ethereum_http_endpoint ethereum_ws_endpoint

If pycryptodome crashes ...

Run $ pip3 install --upgrade pycryptodome

If web3 crashes,

run $pip3 install web3 --upgrade

from secure_web3 import sw3 manager = sw3.wallet_manager.WalletManager(wallet_file) priv_key = manager.decrypt_load_wallet()

Changelog

  • January 28th, 2023 -- Added support for flashbots RPC and private transactions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secure_web3-1.3.2.tar.gz (14.7 kB view hashes)

Uploaded Source

Built Distribution

secure_web3-1.3.2-py3-none-any.whl (16.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page