Programmable cryptocurrency trading platform — write your own strategies, run on your own hardware
Reason this release was yanked:
failed startup module
Project description
Spirit
Spirit is a programmable cryptocurrency trading platform — a playground for building and testing your own trading strategies in Python. It runs on your own hardware, talks to exchanges directly, and you own the strategy logic end-to-end.
The framework is open source under Apache-2.0. Spirit handles the orchestration: market data, order placement, lifecycle hooks, and crash recovery. As your strategies mature, Plus and Pro open up access to our custom technical indicators and cloud storage for backtesting.
Quick start
On Ubuntu / Debian (and most modern Linux):
sudo apt install -y pipx
pipx ensurepath
pipx install spirit-platform
Then open a new shell and run:
python3 -m spirit.setup # interactive setup wizard
spirit --mode paper # start paper trading
macOS, venv-based install, troubleshooting: see INSTALL.md.
Note: bare
pip install spirit-platformwill fail on modern Ubuntu/Debian (PEP 668 — externally-managed environment).pipxis the recommended path.
Run the wizard once (it asks your tier, instance name, and an optional Kraken API key for live trading), pick one of the bundled examples (sma_crossover or macd_demo) or drop your own file in ~/.spirit/strategies/, and Spirit starts paper-trading.
To go live, swap --mode paper for --mode live once you've sanity-checked the paper P&L.
Tiers and pricing
See www.tradebot.live/pricing for tier details, pricing, and what each level adds.
Writing a strategy
Strategies subclass BaseStrategy and implement evaluate_trade(). Everything else is optional; opt into lifecycle hooks as you need them.
from spirit.strategies.base import BaseStrategy
class MyStrategy(BaseStrategy):
def evaluate_trade(self, pair: str, mode: str = "test", **kwargs):
# Return {"entry": bool, "exit": bool, "details": {...}}
return {"entry": False, "exit": False, "details": {}}
Optional hooks the orchestrator will call when configured:
on_monitoring_tick, on_entry_confirmed, on_exit_completed,
validate_readiness, get_data_requirements. Properties for tier-aware
behaviour: uses_risk_gate, required_capabilities. See the bundled
examples; both files are heavily commented teaching artifacts:
src/spirit/strategies/examples/sma_crossover.py: minimum viable. Subclass +evaluate_trade, nothing else. Read this first.src/spirit/strategies/examples/macd_demo.py: full lifecycle tour. Multi-interval, monitoring-tick ATR stop, entry-confirmed state-stash, paper-by-default guard. Read this to see every hook in action.
Drop your own under ~/.spirit/strategies/ and Spirit picks it up at next startup.
For more information visit www.tradebot.live.
Project structure
src/spirit/
main.py - entrypoint
setup.py - first-run wizard
config.py - .env / yaml loader
trade_signal.py - signal dataclass
trade_status.py - status dataclass
trade_types.py - TradeRecord dataclass (used by strategies)
exchange/ - exchange adapter protocol + Kraken impl
pipeline/ - WebSocket event bus, freshness cache, daemon health
storage/ - local SQLite schema (Free tier)
strategies/
base.py - BaseStrategy abstract base class
examples/sma_crossover - minimal reference strategy
examples/macd_demo - full-lifecycle reference strategy
utils/ - data providers, OHLC buffer, paper executor, etc.
Implementation details for the bundled D-Limit indicators, V3 scorer, and risk-gate calibrators live behind the gateway API and ship with Plus and Pro. The framework you see here can run any strategy you write, against any data source you plug in.
Bring your own exchange
Spirit ships with a default Kraken adapter. To target a different exchange, implement the ExchangeProvider protocol in src/spirit/exchange/protocol.py and register it. See docs/reference/EXCHANGE_PLUGIN_GUIDE.md for the full guide.
Status
- v2.2.1 — first public release. Free + Plus tiers, single-machine deploy, paper or live mode.
License
Apache-2.0. See LICENSE.
The framework is free to use, modify, and redistribute. Plus and Pro subscriptions cover the hosted data and indicator infrastructure; the framework code itself doesn't depend on a subscription to run.
Support
- Portal + key management: portal.tradebot.live
- Issue tracker: GitHub Issues on this repo
- For commercial / integration questions: support@tradebot.live
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spirit_platform-2.2.2.tar.gz.
File metadata
- Download URL: spirit_platform-2.2.2.tar.gz
- Upload date:
- Size: 156.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
564094db19ae815e34c42710f47f4e8a50bb8e18295a1227500dca3ad66dfaf0
|
|
| MD5 |
614bc1c8c22676218e0511fe54bd623e
|
|
| BLAKE2b-256 |
c16b1401a6d6979e1ef7e359e4c8a074e8c2f30ad81b736c6232662996de1342
|
Provenance
The following attestation bundles were made for spirit_platform-2.2.2.tar.gz:
Publisher:
publish.yml on timoz10/spirit-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spirit_platform-2.2.2.tar.gz -
Subject digest:
564094db19ae815e34c42710f47f4e8a50bb8e18295a1227500dca3ad66dfaf0 - Sigstore transparency entry: 1557526181
- Sigstore integration time:
-
Permalink:
timoz10/spirit-platform@6625d5c33c3072b7d3fbea476904664b98a2275f -
Branch / Tag:
refs/tags/v2.2.2 - Owner: https://github.com/timoz10
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6625d5c33c3072b7d3fbea476904664b98a2275f -
Trigger Event:
push
-
Statement type:
File details
Details for the file spirit_platform-2.2.2-py3-none-any.whl.
File metadata
- Download URL: spirit_platform-2.2.2-py3-none-any.whl
- Upload date:
- Size: 179.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38bf0fae1402498d34b1f0686c07817f8da66c7a2e85c9487bfcea4942f6982f
|
|
| MD5 |
d694a62442efb46cce0ffdbcd24eccd1
|
|
| BLAKE2b-256 |
4d6a3569d19af7f09ef9dad0ba4ef9132c39960b005f61f5d518fd71b3515644
|
Provenance
The following attestation bundles were made for spirit_platform-2.2.2-py3-none-any.whl:
Publisher:
publish.yml on timoz10/spirit-platform
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spirit_platform-2.2.2-py3-none-any.whl -
Subject digest:
38bf0fae1402498d34b1f0686c07817f8da66c7a2e85c9487bfcea4942f6982f - Sigstore transparency entry: 1557526290
- Sigstore integration time:
-
Permalink:
timoz10/spirit-platform@6625d5c33c3072b7d3fbea476904664b98a2275f -
Branch / Tag:
refs/tags/v2.2.2 - Owner: https://github.com/timoz10
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6625d5c33c3072b7d3fbea476904664b98a2275f -
Trigger Event:
push
-
Statement type: