communex
The CommuneX library package.
Submodules:
communex.client
: A lightweigh yet faster client for the Commune network.communex.compat
: Compatibility layer for the classiccommune
library.communex.types
: CommuneX common types.communex.key
: Key related functions.
CommuneX
- Why CommuneX
- Installation with
pip
- Installation with Nix
- Features
- CLI Usage
- Contributing
- Commune compatibility
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__)