Edit on GitHub

communex

The CommuneX library package.

Submodules:

CommuneX

License: MIT Discord Chat PyPI version

Why CommuneX

CommuneX serves as an alternative library/SDK to the original Commune Ai codebase, offering a streamlined and user-friendly experience. It is designed for simplicity and scalable development. To learn more visit docs

Installation with pip

Requirements: Python 3.10+

Install the communex Python package directly with pip:

pip install communex

Or add it to your Poetry project with:

poetry add communex

Installation with Nix

To install communex the communex cli with Nix

nix profile install .

Features

  • Commands
    • Key management
    • Transfering and staking tokens
    • Module management
    • Client to interact with served modules
    • Module class and server
    • Governance participation

Planned

  • Module API extraction and documentation generator

CLI Usage

The CLI commands are structured as follows:

comx [OPTIONS] COMMAND [ARGS]

There are six top-level subcommands:

  • balance: transfer, stake, unstake and showing balance operations
  • key: creating, saving (AKA regenerating), listing and showing balance operations
  • module: info, list, register, serve, update
  • network: block, parameters, proposals / proposing, voting operations
  • subnet: info, list, update
  • misc: apr, circulating supply
comx subcommand [OPTIONS] COMMAND [ARGS]...

Examples

Retrieving Balance

# Show staked, free and total balance.
comx balance show 5FgfC2DY4yreEWEughz46RZYQ8oBhHVqD9fVq6gV89E6z4Ea 

Creating a Key

comx key create key_name

Retrieving Key Info

comx key show key_name

# Add the `--show-private` flag to show sentitive fields like private key.
comx key show key_name --show-private

Listing Keys

# Lists the names and addresses of keys stored on disk.
comx key list 

List Keys With Balances

# Lists keys stored on disk with their balance (free, staked and total).
comx key balances

Retrieving Module Information

# Note that the module has to be registered on the network.
comx module info vali::calc [--balance] 

Retrieving Global Parameters

comx network params

Retrieving Subnet Parameters

comx subnet list

Retrieving Circulating Supply

# Gets all tokens then were ever emitted minus burned tokens.
comx misc circulating-supply 

Completions

You can enable completions for your shell by running:

# On bash
comx --install-completion bash
# On zsh
comx --install-completion zsh

Contributing

Bug reports and pull requests and other forms of contribution are welcomed and encouraged! :)

To report a bug or request a feature, please [open an issue on GitHub].

If you have any questions, feel free to ask on the [CommuneX Discord channel] or post on our [GitHub discussions page].

To contribute to the codebase, using Poetry you can install the development dependencies with:

poetry install --with dev

it can require some enviroment-specific binaries to be installed

Commune compatibility

Yes, communex is compatible with the commune library/CLI. However, there are important considerations to note. communex verifies the integrity of your keys, which means that mixing certain types of keys is not permissible. Specifically, if you possess node keys or other similar types that are not designed to receive tokens, you to relocate them outside of the key directory.


 1"""
 2The CommuneX library package.
 3
 4Submodules:
 5    * `communex.client`: A lightweigh yet faster client for the Commune network.
 6    * `.compat`: Compatibility layer for the *classic* `commune` library.
 7    * `.types`: CommuneX common types.
 8    * `.key`: Key related functions.
 9
10.. include:: ../../README.md
11"""
12
13import importlib.metadata
14
15if not __package__:
16    __version__ = "0.0.0"
17else:
18    __version__ = importlib.metadata.version(__package__)