Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

Automated Steem voting.

Project Description
# Steemvote

This is a program that votes for posts on Steem. It uses piston and thus requires Python 3.

The included script, `steemvoter`, works by monitoring all comments on Steem.
If a comment is eligible for voting, it is stored in a database. The eligible comments
are periodically pulled from the database and voted on after they are a pre-set age.

## Installation

$ sudo python3 install

The above command will install all required dependencies.
You can run steemvoter like so: `steemvoter -c path/to/config.json`.

## Configuration

A configuration file specifies the authors to vote on, the key to sign votes with, etc.
Your configuration file can be supplied with a command-line argument (`steemvoter -c path/to/config.json`).
If not supplied, steemvoter will look for the file `steemvote-config.json` or `steemvote-config.yaml` in the current directory.

Example configuration files are located in the [example-configs](./example-configs) directory.

The following config values are required:

- `authors`: A list of authors, and optional values for each (see below).
- `voter_account_name`: The name of your account.
- `vote_key`: The private key used to sign votes with (This should be your "Posting" key).

### Authors

The `authors` list in your config file contains a list of objects.
Each object needs a `name` value, which is the name of the author.

Optional values for each author:

- `priority`: The priority (explained below) that the author has (Default: `normal`).
- `vote_replies`: Whether to vote on all replies the author makes, in addition to their regular posts (Default: `false`).
- `weight`: The weight to vote with. `100.0` represents an upvote, and `-100.0` represents a downvote (Default: `100.0`).

*NOTE* that if you just want to add an author and use the default values, a string can be used instead of an object.

### Delegates

Delegates are other Steem accounts. Steemvoter will watch for votes that your delegates cast,
and will vote for the comments that they vote on.

The `delegates` config list is similar to the `authors` list. However, delegates do not have a `vote_replies` value.

Optional values for each delegate:

- `priority`: The priority (explained below) that comments this delegate votes for have (Default: `normal`).
- `weight`: The weight to vote with. `100.0` represents an upvote, and `-100.0` represents a downvote (Default: `100.0`).

Also like authors, you can use a string instead of an object and the default optional values will be filled in for you.

### Voting Rules

These voting rules are optional, and specify how to vote.

The value `blacklist_categories` can be specified with a list of categories. Comments in those categories will
never be voted for (Default: `[spam]`). Likewise, the value `blacklist_authors` can be specified with a list of author names.
Posts by those authors will never be voted for, even if delegates vote for them.

The following values can be specified as seconds or as human-readable strings (e.g. `"max_post_age": "2 days"`):

- `max_post_age`: The maximum age a post can be for it to be voted on (Default: `2 days`).
- `min_post_age`: The age a post must be before it is voted on (Default: `1 minute`).
- `vote_interval`: The timespan that steemvoter waits between collecting and voting on eligible comments (Default: `10 seconds`).

The following values can be specified as decimals or as human-readable percentages (e.g. `"priority_high": "75%"`):

- `priority_high`: The minimum fraction of voting power that you must have to vote for high priority comments (Default: `80%`).
- `priority_normal`: The minimum fraction of voting power that you must have to vote for normal priority comments (Default: `90%`).
- `priority_low`: The minimum fraction of voting power that you must have to vote for low priority comments (Default: `95%`).

### Database

Steemvoter uses a sqlite database to store data.

By default, the database will be a file called `database.db` in the current directory.
This behavior can be changed using the `database_path` config value.

### RPC

If no RPC options are specified, a public node will be used.

Available RPC options:

- `rpc_node`: The URL of the node to connect to.
- `rpc_user`: RPC username to use.
- `rpc_pass`: RPC password to use.

## Example Configurations

Upvote every post by [@klye](, including his replies to other posts.
Wait until posts are 30 seconds old to upvote them.

"authors": [
{"name": "klye", "vote_replies": true}
"vote_key": "5XX...",
"voter_account_name": "myname",
"min_post_age": 30

Upvote the posts by [@klye](, but not his replies to other posts.
Do not vote if his post is more than 2 hours old.

"authors": [
"max_post_age": "2 hours",
"vote_key": "5XX...",
"voter_account_name": "myname"
Release History

Release History

This version
History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Steemvote-0.3.0.tar.gz (23.6 kB) Copy SHA256 Checksum SHA256 Source Sep 9, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting