This guide walks you through cloning PolyClaw Trading, installing its dependencies, and running your first complete dry-run pipeline pass — all without touching a live market. The entire sequence uses an offline BTC market fixture bundled in the repository, so no API keys or funded wallet are required for these first steps. When you’re ready to move beyond the fixture, see the Installation guide for platform-specific setup and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/deniszidbaev-cmyk/polyclaw-trading/llms.txt
Use this file to discover all available pages before exploring further.
.env.example reference for the full configuration surface.
Prerequisites
Before you begin, make sure the following are available on your system:- Python 3.12+ — required by the
polyclaw_enginepackage - uv — the project’s dependency and virtual-environment manager
- git — to clone the repository
Setup Steps
Install dependencies with uv
Run
uv sync to create a virtual environment and install all project dependencies declared in pyproject.toml. This includes python-dotenv, requests, py-clob-client, web3, and flask.Configure your environment file
Copy the exhaustive environment template to Open
.env.local. The .env.local file is gitignored — it is the only place secrets should ever live. For this quickstart you do not need to fill in any secret values; the defaults are safe for offline dry-run operation..env.local and confirm that LIVE_TRADING=0 is set (it is the default). Do not change it yet.Run the audit
The All tests should pass before proceeding. If the secret scanner test fails, check that
audit command runs the full unittest discovery suite — covering deterministic boundaries, contracts, risk rules, secret scanner, and execution safety — without making any network requests. A clean audit output means the local environment and codebase are consistent..env.local has not been accidentally staged or that no API key has been hardcoded into a tracked file.Run your first dry-run pass
Execute a complete single-pass dry-run of the 8-stage pipeline (The runner pins A
fetch → candles → analyze → signal → bankroll → validate → execute → report) using the bundled BTC market fixture. The --fixture flag routes the fetch stage to load a local JSON file instead of calling the Polymarket API.LIVE_TRADING=0, ALLOW_REDEEM=0, PIPELINE_FORCE_LIVE_TRADING=0, and PIPELINE_FORCE_ALLOW_REDEEM=0 for the entire process tree, regardless of what .env.local or the shell environment says. Each stage runs as a separate subprocess and writes its output as a versioned JSON file under runtime/:HOLD decision (common on first run with a static fixture) is expected and correct — it means the deterministic engine did not find sufficient confidence to size a position, and the result is persisted to runtime/manual_review.json for operator review.Run a bounded dry-run loop
The Omit
loop mode repeats the full pipeline on a configurable interval. Use --max-cycles to bound it for testing so it stops automatically after the specified number of passes.--max-cycles for continuous operation. The loop interval is controlled by LOOP_INTERVAL_SEC in .env.local (default: 300 seconds).Docker One-Liner
If you prefer a containerized environment, Docker Compose provides a single-command alternative that mounts./runtime for state persistence.
Next Steps
- Installation — platform-specific setup for Linux/macOS shell, Windows batch launcher, Docker Compose, and the native macOS Swift runner.
.env.example— the exhaustive configuration reference, covering all risk parameters, indicator tuning, LLM role routing, and dashboard options.docs/verified_dependencies.md— primary-source API and CLI preflight, including the verified PolyClaw buy syntax and known partial-failure behavior, required reading before enabling live trading.