S
Channel B · Self-hosted

Download & install

Pull copy orders on your machine, sign locally, report fills back. The platform never holds your Venue private key.

v0.1.1Apache-2.0x86_64-unknown-linux-musl

What this is

  • A self-hosted Channel B client you run on Linux
  • Authenticates with a Daemon API key from the Web app
  • Local risk checks + local EOA signing (optional CLOB post)
  • Default dry-run until you opt into live signing

What this is not

  • Not a cloud SaaS that holds your key
  • Not a Windows / macOS installer (Linux systemd first)
  • Not a substitute for issuing a key in Settings
  • Not live trading on first boot — start with DAEMON_DRY_RUN=1

One path

This page only teaches track A

GitHub Release binary + systemd. Same layout as building from source. Do not skip dry-run, Docker, or ARM cross-compile on day one.

  1. 1Install the binary
  2. 2Fill daemon.env
  3. 3Restart and watch logs

What you need

Linux x86_64, systemd, curl, root
A Sharpside account (Pro+)
Daemon API key from Settings
COPIER_URL (gateway /api/copier)

Step 1

Download

Recommended: one-line installer. It detects arch, fetches the Release tarball, installs the unit, and starts the service.

bash
curl -fsSL https://raw.githubusercontent.com/laoshalab/sharpside-daemon/main/assets/install.sh | sudo bash

Pin this version instead of latest:

bash
curl -fsSL https://raw.githubusercontent.com/laoshalab/sharpside-daemon/main/assets/install.sh | sudo bash -s -- 0.1.1

Or download the Release tarball and checksum:

sharpside-daemon-0.1.1-x86_64-unknown-linux-musl.tar.gz

v0.1.1 · x86_64-unknown-linux-musl · 4.5 MB

v0.1.1 ships x86_64 musl only. aarch64: build from source (track B). All tags: GitHub Releases

Step 2

Configure

Edit /etc/sharpside/daemon.env (created by the installer if missing). Keep DAEMON_DRY_RUN=1 until heartbeats look healthy.

bash
sudo nano /etc/sharpside/daemon.env
VariableMeaning
DAEMON_USER_IDYour platform user UUID
DAEMON_API_KEYPlaintext key shown once at issue
COPIER_URLhttps://<host>/api/copier — not the site root
DAEMON_DRY_RUN1 = synthetic fills; 0 = real sign path
POLYMARKET_PRIVATE_KEYEOA 0x… only when leaving dry-run
Issue a Daemon Key in the app

Step 3

Run & verify

Restart after saving env, then confirm the unit is active and logs show heartbeats.

bash
sudo systemctl restart sharpside-daemon
sudo systemctl status sharpside-daemon
journalctl -u sharpside-daemon -f

Success looks like

  • systemctl is-active sharpside-daemon → active
  • Logs show poll / heartbeat success
  • Web Settings shows the process online
  • dry-run=1 produces synthetic fill reports

If it fails

  • 401/403: re-issue the key and update env
  • Release download fails: use track B (source)
  • Wrong COPIER_URL: must include /api/copier
  • ARM machine: do not retry the x86_64 tarball

Other paths

Same filesystem layout as track A after install.

B · Build from source

Clone the repo, cargo build -p sharpside-daemon --release, install the binary and systemd unit. Use this when there is no Release, the download fails, or you need aarch64 / a local patch.

C · Foreground / TUI

cargo build and run in a terminal with DAEMON_DRY_RUN=1. TTY opens the TUI; otherwise logs only. Good for smoke-testing before systemd.

Commands for B and C in the daemon handbook

FAQ

Binaries from laoshalab/sharpside-daemon 0.1.1. v0.1.1