Sign inSign up

nicxx2/signal-arcade

Sponsored OSS

By nicxx2

•Updated 14 days ago

Local-first Solana paper-trading lab with explainable decisions and learning.

Image
Machine learning & AI
Data science
0

5.1K

nicxx2/signal-arcade repository overview

⁠🧠 Signal Arcade v1.10.12

A local-first Solana paper-trading lab where every decision leaves evidence.

Signal Arcade watches official Pump and PumpSwap program events, ranks opportunities, simulates fee-aware paper trades, and learns from measured outcomes. Follow the deterministic Baseline, inspect Challenger skills, and optionally run a private local AI Coach.

No wallet keys, live orders, paid provider or cloud AI are required.

GitHub⁠ · Releases⁠ · Full documentation⁠ · MIT License⁠

⁠What's new in v1.10.12

  • More reliable dashboard updates: recover missed browser disconnects and support notification authentication when browsers omit WebSocket login headers.
  • Automatic stream recovery: reconnect stalled subscription setup or silent Solana streams through the existing retry safeguards, without extra RPC polling.
  • Less repeated learning work: reuse Policy population selection within a checkpoint pass while checking proof and Champion health after every outcome.
  • Clearer diagnostics: protect training/proof reports in the bounded handoff and distinguish worker execution, scheduling delays, uncertain writes and losses.
  • Improved Docker builds: build static frontend assets natively once for reuse across target architectures.

Trading rules, model recipes, proof gates, coverage settings and provider budgets are unchanged. Schema 16 and existing learning, positions, seasons and Champion history are retained.

Full changelog⁠ · Validation and runtime limits⁠

⁠What you can explore

ComponentWhat it does
Fast BaselineMakes explainable paper decisions using fresh market evidence and hard safety limits.
Statistical ChallengerLearns Entry, Manipulation, Sizing and Exit skills from chronological, fee-inclusive outcomes. Qualified skills can provide bounded, monitored support when permitted.
Local AI CoachStudies bounded ideas during quiet periods. A supported idea still needs permission, a fresh Challenger tournament and activation proof before influencing decisions.
Arena and seasonsTrack virtual bankroll, positions, drawdown, fees and recorded strategy use across comparable paper seasons.
Replay and diagnosticsInspect saved decisions, paper receipts, equity history, provider activity, learning proof and performance gaps.
  • Manipulation-aware evidence: evaluates wallet loops, gross versus net flow, trade structure, economic trade size and price paths. Incomplete evidence stays uncertain; a suspicious pattern alone is not proof of a scam.
  • Realistic paper accounting: fees, latency, impact, cash reservations and executable exits remain visible. Missing outcomes never become invented profits.
  • Independent skill progress: Entry, Manipulation, Sizing and Exit qualify separately. Champions remain versioned, auditable and subject to health checks.
  • Persistent history: data and model volumes survive container updates; learning history persists across seasons within its applicable context.
  • Desktop and mobile UI: live notifications with polling fallback, expandable proof and saved decision explanations.

⁠Quick start

Docker with Compose support and one admin password are required. Provider keys and local AI models are optional.

⁠1. Create .env
SIGNAL_ARCADE_ADMIN_PASSWORD=replace-this-with-a-long-unique-password
⁠2. Save this as docker-compose.yml

This is the complete Compose example from the GitHub README, including the private optional Ollama companion, persistent volumes and container security settings.

services:
  signal-arcade:
    image: nicxx2/signal-arcade:1.10.12
    pull_policy: always
    restart: unless-stopped
    stop_grace_period: 45s
    init: true
    environment:
      SIGNAL_ARCADE_ADMIN_PASSWORD: ${SIGNAL_ARCADE_ADMIN_PASSWORD:?Set a long admin password in .env}
      SIGNAL_ARCADE_OLLAMA_URL: http://ollama:11434
      SIGNAL_ARCADE_OLLAMA_ACCELERATOR: cpu
    extra_hosts:
      - "host.docker.internal:host-gateway"
    ports:
      - "8765:8765"
    volumes:
      - signal-arcade-data:/data
    read_only: true
    tmpfs:
      - /tmp:size=256m,noexec,nosuid
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  ollama:
    image: ollama/ollama:0.33.1
    pull_policy: always
    restart: unless-stopped
    init: true
    environment:
      OLLAMA_HOST: 0.0.0.0:11434
      OLLAMA_NO_CLOUD: "1"
      OLLAMA_CONTEXT_LENGTH: "2048"
      OLLAMA_KEEP_ALIVE: 10m
      OLLAMA_MAX_LOADED_MODELS: "1"
      OLLAMA_NUM_PARALLEL: "1"
      OLLAMA_MAX_QUEUE: "4"
      LLAMA_ARG_CACHE_RAM: "512"
      CUDA_VISIBLE_DEVICES: "-1"
      ROCR_VISIBLE_DEVICES: "-1"
    expose:
      - "11434"
    volumes:
      - signal-arcade-models:/root/.ollama
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    healthcheck:
      test: ["CMD", "ollama", "list"]
      interval: 30s
      timeout: 10s
      start_period: 20s
      retries: 5
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  signal-arcade-data:
  signal-arcade-models:
⁠3. Start the app
docker compose up -d

Open http://localhost:8765, or http://server-ip:8765 from another device on your LAN. Use any username and the password from .env.

  1. Choose a virtual SOL or USDC bankroll in Arena.
  2. Select Safer, Balanced or Aggressive.
  3. Press Start paper engine.
  4. Optionally select a local model in Settings → Local AI models.

Portainer users can paste the same Compose file into the Web editor and define SIGNAL_ARCADE_ADMIN_PASSWORD as a stack environment variable.

⁠Updating safely

  1. Back up the persistent data with a consistent SQLite backup or a snapshot of the complete stopped data volume.
  2. In Settings → Maintenance & updates, choose Prepare for upgrade and wait for Ready.
  3. Set the Compose image tag to the newer published release, then run:
docker compose pull
docker compose up -d

Keep the same named data and model volumes. The prior paper-engine state resumes after startup health checks. Signal Arcade does not mount the Docker socket or control your host.

v1.10.12 retains schema 16: upgrading from published v1.10.7–v1.10.11 adds no evidence migration or reset. Database schema alone does not guarantee rollback compatibility: older images may not understand saved coverage-policy records or activation contracts. Follow the full upgrade and rollback guidance⁠. Never copy only a running SQLite database file while leaving its WAL behind.

After a restart, new observations need five minutes of uninterrupted provider history and then their own five-minute outcomes before advancing retraining. Retained evidence may progress sooner; waiting for fresh evidence is not automatically a stuck learner.

⁠Learning that must earn trust

Linear is the simple default; a CPU XGBoost Entry contender may compete when it justifies its complexity on untouched validation. Training and validation stay chronological, with outcome embargoes and separate proof evidence.

Each skill must pass its own qualification and forward comparison. Allow when qualified saves permission; it does not bypass proof or guarantee activation. Active support stays bounded by Baseline safety, and degraded or unverifiable skills can be suspended with their dependent downstream skills.

Settings offers native-skill outcome-coverage choices of 70% (default), 65%, 60% or 55%. This measures usable outcome coverage, not win rate. A lower setting accepts less complete evidence; it does not improve a model or waive the other checks. The separate Coach study retains its 70% requirement.

Training, Challenger testing and active Champion support are distinct stages. More training, a promotion or a short profitable period does not establish better future trading.

Read the learning specification⁠

⁠Optional local AI

The Compose example keeps Ollama private to the Docker network. CPU inference is the default; no model is downloaded automatically. The default model is qwen3.5:2b, and the app remains functional without Ollama.

  • Off: automatic reviews and Coach research are paused.
  • Shadow: decision reviews are advisory and do not directly change trades.
  • Coach research: a supported idea can enter the corresponding Challenger path only with permission, then must earn its own tournament and activation proof.

Direct Qualified Coach control and Live Critic are future stages. Persisted legacy Guarded critic mode is separately labelled; the current interface does not enable it.

GPU inference is optional and requires Docker hardware access, not just an environment setting. See the NVIDIA overlay⁠, AMD ROCm overlay⁠ and full AI setup⁠.

⁠Providers and security

Public Solana RPC and DEX Screener work without accounts. Settings → Data providers supports guided Helius, Alchemy and SolanaTracker presets, custom endpoints and explicit provider budgets. Public endpoints can throttle, disconnect or miss events; a paid provider cannot guarantee uninterrupted coverage.

Provider keys are stored server-side and never returned to the browser. Submit secrets through localhost or HTTPS; a plain LAN connection supports non-secret controls. Keep the dashboard on a trusted network or use an appropriately secured HTTPS reverse proxy.

V1 has no wallet-key input, seed phrase handling, transaction signing or broadcasting path. Stale or unknown execution evidence fails closed. Docker logs and high-volume histories are bounded, while durable trading and proof records can still grow.

Provider matrix⁠ · Security policy⁠

⁠Runtime limits

  • Sustained bursts can still cause candidate expiry, delayed diagnostics and retention backlog. Extended operation needs monitoring; weeks or months of uninterrupted reliability have not been established.
  • Check snapshot and diagnostic timestamps. Missing or stale measurements do not establish healthy operation.
  • The storage budget is a soft cleanup target. Protected records, allocated/reusable SQLite pages and WAL can exceed it. Raising the budget does not increase processing throughput; monitor host disk space.
  • Paper results do not prove live profitability. Real latency, MEV, failed transactions and adversarial tokens can be worse than the simulation.
  • V1 simulates native-SOL Pump curves and wrapped-SOL PumpSwap markets. USDC is an optional accounting currency, not support for USDC-quoted pools.

Diagnostics guide⁠ · Current validation record⁠

⁠Screenshots

All 18 screenshots referenced by the full README are included below. They show real paper-app data captured on 7 September 2026 from v1.10.7; they are historical UI examples, not current-version screenshots or performance claims. See the capture record⁠.

⁠The Arena

Signal Arcade v1.10.7 - The Arena

⁠Decision board

Signal Arcade v1.10.7 - Decision board

⁠Season progress

Signal Arcade v1.10.7 - Season progress

⁠Learning Lab

Signal Arcade v1.10.7 - Learning Lab

⁠Provider budgets and pacing

Signal Arcade v1.10.7 - Provider budgets and pacing

⁠Optional local AI models

Signal Arcade v1.10.7 - Optional local AI models

⁠Mobile Arena

Signal Arcade v1.10.7 - Mobile Arena

⁠Replay receipts and modeled friction

Signal Arcade v1.10.7 - Replay receipts and modeled friction

⁠AI Coach Room

Signal Arcade v1.10.7 - AI Coach Room

⁠Entry, Manipulation, Sizing and Exit skills

Signal Arcade v1.10.7 - Entry, Manipulation, Sizing and Exit skills

⁠Champion Arena

Signal Arcade v1.10.7 - Champion Arena

⁠Reigning Champions

Signal Arcade v1.10.7 - Reigning Champions

⁠Recorded Champion battle

Signal Arcade v1.10.7 - Recorded Champion battle

⁠Mobile Champion battle

Signal Arcade v1.10.7 - Mobile Champion battle

⁠Diagnostics history

Signal Arcade v1.10.7 - Diagnostics history

⁠Entry profile and proof

Signal Arcade v1.10.7 - Entry profile and proof

⁠Mobile evidence and uncertainty

Signal Arcade v1.10.7 - Mobile evidence and uncertainty

⁠Equity history and replay

Signal Arcade v1.10.7 - Equity history and replay

⁠Community

Star the GitHub repository⁠ if you find Signal Arcade useful. Issues and contributions are welcome; please read the contribution guide⁠.

Released under the MIT License⁠. Paper-trading education only; no promise of profit.

Tag summary

Content type

Image

Digest

sha256:a3b2208f3…

Size

139.8 MB

Last updated

14 days ago

docker pull nicxx2/signal-arcade

This week's pulls

Pulls:

333

Last week