disciplinedware/swiftward-ai-trading-agents

Polyglot multi-agent AI trading harness: ERC-8004 identity and evidence, Kraken CLI, risk engine

6

stars

1

commits

HTML

primary language

Apr 12, 2026

updated

ai-trading.swiftward.dev/
ai-trading-agents
erc-8004
ethereum
hackathon
kraken-client
lablabai-hackathon
mcp
multi-agent
on-chain
policy-engine
risk-management
sepolia
surge
trading-bot

README

AI Trading Agents Platform

Polyglot multi-agent trading platform with policy-enforced risk management and on-chain evidence via ERC-8004. Submission for the Surge Hackathon (March 30 - April 12, 2026).

Landing page: ai-trading.swiftward.dev - features, demo video, screenshots, team.

Hackathon: AI Trading Agents on lablab.ai


Prerequisites

  • Docker and Docker Compose v2+ (tested on Docker Desktop 4.x and Docker Engine 27.x)
  • 8 GB RAM minimum (SigNoz observability stack + trading services + agents)
  • make (GNU Make)
  • macOS or Linux (tested on both; Windows via WSL2 should work but untested)

For specific agents:

  • Alpha / Gamma / Midas: Claude Code CLI installed and authenticated on the host (claude login)
  • Delta / Epsilon: OPENAI_API_KEY in .env (or compatible endpoint)

No API keys needed for the simplest demo - the random agent works with zero external dependencies.


Quick Start

git clone https://github.com/disciplinedware/swiftward-ai-trading-agents.git
cd swiftward-ai-trading-agents
cp .env.example .env
make up PROFILES=random        # core stack + random trader agent

The random agent starts trading immediately with simulated Kraken paper prices. Open the Dashboard at http://localhost:8091 to see live trades, positions, and P&L.

make up without PROFILES starts only infrastructure (no agents). Add agents via comma-separated profiles:

make up PROFILES=random,alpha  # random + Claude Alpha (needs Claude Code on host)
make up PROFILES=random,delta  # random + Delta Go LLM (needs OPENAI_API_KEY)
make down                      # stop stack

URLs (after make up):

ServiceURL
Dashboard (trades, positions, P&L)http://localhost:8091
Control UI (Swiftward policy management)http://localhost:5174
Ruby Agent UI (when ruby profile active)http://localhost:7175
SigNoz (logs, traces, metrics)http://localhost:3301

Run make help for all available targets.


Agents

Every agent is profile-gated - no agents start without PROFILES. Combine with commas: make up PROFILES=random,alpha. All env vars have working defaults in .env.example unless marked required below.

Random Trader (Go) - random

Baseline deterministic agent. Trades random orders on a 60s interval across ETH, BTC, SOL, LINK, SUI. No API keys needed - works immediately after cp .env.example .env.

make up PROFILES=random

Claude Alpha - alpha

Autonomous Claude Code agent with Swiftward policy enforcement. Runs on 15-min intervals, up to 96 sessions/day.

Required:

The Makefile auto-extracts Claude credentials from the host (macOS Keychain or ~/.claude/.credentials.json on Linux). No API key in .env needed - credentials are mounted into the container. Optional: set TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, TELEGRAM_ALPHA_CLAUDE_TOPIC_ID in .env for Telegram alerts.

make up PROFILES=alpha

Claude Gamma - gamma

Multi-subagent Claude trader. Same prerequisites as Alpha (Claude Code CLI + credentials). Runs on 30-min intervals, up to 60 sessions/day.

make up PROFILES=gamma

Agents Arena (Ruby/Rails) - ruby

Backtesting arena where multiple trading strategies compete on historical data, and the best-performing agent is selected for live trading. Web UI at http://localhost:7175.

make up PROFILES=ruby

Rails keys (RAILS_MASTER_KEY, RAILS_SECRET_KEY_BASE) are pre-filled in .env.example. No external API keys needed. For code execution in sandboxes, also run make sandbox-build once to build the sandbox image.

Midas - midas (LIVE TRADING - real money)

Claude agent trading real funds on Kraken. Cannot be started with make up - requires dedicated command:

# Required in .env:
#   KRAKEN_API_KEY=...
#   KRAKEN_API_SECRET=...
make live-up   # sets TRADING__EXCHANGE__MODE=kraken_real automatically

Same Claude Code prerequisites as Alpha. Initial balance intentionally capped at $100 for safety.

Delta (Go LLM) - delta

Go-based LLM agent using OpenAI-compatible API. Runs on 5-min intervals, max 10 iterations per session.

Required in .env: OPENAI_API_KEY. Model configured via AGENT_DELTA_GO_MODEL (default: gpt-5.4-mini).

make up PROFILES=delta

Epsilon (Rust LLM) - epsilon

Rust-based LLM agent using OpenAI-compatible API. Runs on 5-min intervals, max 50 iterations per session.

Required in .env: OPENAI_API_KEY. Model configured via AGENT_EPSILON_RUST_MODEL (default: gpt-5.4-mini).

make up PROFILES=epsilon

Gamma Java (Fear & Greed Contrarian) - java

Spring Boot agent using Fear & Greed index for contrarian trades. 15-min tick interval. No API keys needed. Override tick interval with AGENT_GAMMA_JAVA_TICK_INTERVAL_MS in .env.

make up PROFILES=java

Python Deterministic LLM - python

Orchestrated Python agent with dedicated MCP servers (price feed, news, on-chain data, fear & greed).

make up PROFILES=python

Agent env vars (AGENT_PYTHON_DETERMINISTIC_LLM_*) are pre-filled in .env.example.

Shared optional config

These apply across all agents (none are required for the basic demo):

VariablePurpose
TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_IDTelegram alerts (shared bot)
OPENAI_API_KEYLLM Gateway + moderation + Delta/Epsilon agents
CLASSIFIER_HF_TOKENPrompt injection detection (HuggingFace gated model)
PRISM_API_KEYMarket intelligence enrichment (sign up at prismapi.ai, code LABLAB)
CRYPTOPANIC_TOKENNews feed via CryptoPanic API
Blockchain vars (CHAIN_*)ERC-8004 on-chain attestations (see .env.example)

On-Chain Agents

Every agent has its own identity on the ERC-8004 AgentRegistry (Base Sepolia). Each decision is EIP-712 signed by the agent's operator wallet and posted to the ValidationRegistry before execution.


Subsystems

Polyglot monorepo. Each subsystem has its own README with key files and implementation notes.

  • golang/ - trading server, MCP servers, Go LLM agent, shared Go libraries
  • python/ - orchestrated Python agent and Python MCP servers (price feed, news, on-chain data, fear & greed)
  • ruby/ - Agents Arena: backtesting framework with strategy selection for live trading
  • rust/ - Rust Epsilon LLM agent
  • java/ - Java Gamma agent
  • typescript/ - Trading Dashboard (React 19 + Vite + Tailwind)
  • swiftward/ - Policy engine

License

See LICENSE.

Contributors

President

1 commits

disciplinedware/swiftward-ai-trading-agents

Polyglot multi-agent AI trading harness: ERC-8004 identity and evidence, Kraken CLI, risk engine

6

stars

1

commits

HTML

primary language

Apr 12, 2026

updated

ai-trading.swiftward.dev/
ai-trading-agents
erc-8004
ethereum
hackathon
kraken-client
lablabai-hackathon
mcp
multi-agent
on-chain
policy-engine
risk-management
sepolia
surge
trading-bot

README

AI Trading Agents Platform

Polyglot multi-agent trading platform with policy-enforced risk management and on-chain evidence via ERC-8004. Submission for the Surge Hackathon (March 30 - April 12, 2026).

Landing page: ai-trading.swiftward.dev - features, demo video, screenshots, team.

Hackathon: AI Trading Agents on lablab.ai


Prerequisites

  • Docker and Docker Compose v2+ (tested on Docker Desktop 4.x and Docker Engine 27.x)
  • 8 GB RAM minimum (SigNoz observability stack + trading services + agents)
  • make (GNU Make)
  • macOS or Linux (tested on both; Windows via WSL2 should work but untested)

For specific agents:

  • Alpha / Gamma / Midas: Claude Code CLI installed and authenticated on the host (claude login)
  • Delta / Epsilon: OPENAI_API_KEY in .env (or compatible endpoint)

No API keys needed for the simplest demo - the random agent works with zero external dependencies.


Quick Start

git clone https://github.com/disciplinedware/swiftward-ai-trading-agents.git
cd swiftward-ai-trading-agents
cp .env.example .env
make up PROFILES=random        # core stack + random trader agent

The random agent starts trading immediately with simulated Kraken paper prices. Open the Dashboard at http://localhost:8091 to see live trades, positions, and P&L.

make up without PROFILES starts only infrastructure (no agents). Add agents via comma-separated profiles:

make up PROFILES=random,alpha  # random + Claude Alpha (needs Claude Code on host)
make up PROFILES=random,delta  # random + Delta Go LLM (needs OPENAI_API_KEY)
make down                      # stop stack

URLs (after make up):

ServiceURL
Dashboard (trades, positions, P&L)http://localhost:8091
Control UI (Swiftward policy management)http://localhost:5174
Ruby Agent UI (when ruby profile active)http://localhost:7175
SigNoz (logs, traces, metrics)http://localhost:3301

Run make help for all available targets.


Agents

Every agent is profile-gated - no agents start without PROFILES. Combine with commas: make up PROFILES=random,alpha. All env vars have working defaults in .env.example unless marked required below.

Random Trader (Go) - random

Baseline deterministic agent. Trades random orders on a 60s interval across ETH, BTC, SOL, LINK, SUI. No API keys needed - works immediately after cp .env.example .env.

make up PROFILES=random

Claude Alpha - alpha

Autonomous Claude Code agent with Swiftward policy enforcement. Runs on 15-min intervals, up to 96 sessions/day.

Required:

The Makefile auto-extracts Claude credentials from the host (macOS Keychain or ~/.claude/.credentials.json on Linux). No API key in .env needed - credentials are mounted into the container. Optional: set TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, TELEGRAM_ALPHA_CLAUDE_TOPIC_ID in .env for Telegram alerts.

make up PROFILES=alpha

Claude Gamma - gamma

Multi-subagent Claude trader. Same prerequisites as Alpha (Claude Code CLI + credentials). Runs on 30-min intervals, up to 60 sessions/day.

make up PROFILES=gamma

Agents Arena (Ruby/Rails) - ruby

Backtesting arena where multiple trading strategies compete on historical data, and the best-performing agent is selected for live trading. Web UI at http://localhost:7175.

make up PROFILES=ruby

Rails keys (RAILS_MASTER_KEY, RAILS_SECRET_KEY_BASE) are pre-filled in .env.example. No external API keys needed. For code execution in sandboxes, also run make sandbox-build once to build the sandbox image.

Midas - midas (LIVE TRADING - real money)

Claude agent trading real funds on Kraken. Cannot be started with make up - requires dedicated command:

# Required in .env:
#   KRAKEN_API_KEY=...
#   KRAKEN_API_SECRET=...
make live-up   # sets TRADING__EXCHANGE__MODE=kraken_real automatically

Same Claude Code prerequisites as Alpha. Initial balance intentionally capped at $100 for safety.

Delta (Go LLM) - delta

Go-based LLM agent using OpenAI-compatible API. Runs on 5-min intervals, max 10 iterations per session.

Required in .env: OPENAI_API_KEY. Model configured via AGENT_DELTA_GO_MODEL (default: gpt-5.4-mini).

make up PROFILES=delta

Epsilon (Rust LLM) - epsilon

Rust-based LLM agent using OpenAI-compatible API. Runs on 5-min intervals, max 50 iterations per session.

Required in .env: OPENAI_API_KEY. Model configured via AGENT_EPSILON_RUST_MODEL (default: gpt-5.4-mini).

make up PROFILES=epsilon

Gamma Java (Fear & Greed Contrarian) - java

Spring Boot agent using Fear & Greed index for contrarian trades. 15-min tick interval. No API keys needed. Override tick interval with AGENT_GAMMA_JAVA_TICK_INTERVAL_MS in .env.

make up PROFILES=java

Python Deterministic LLM - python

Orchestrated Python agent with dedicated MCP servers (price feed, news, on-chain data, fear & greed).

make up PROFILES=python

Agent env vars (AGENT_PYTHON_DETERMINISTIC_LLM_*) are pre-filled in .env.example.

Shared optional config

These apply across all agents (none are required for the basic demo):

VariablePurpose
TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_IDTelegram alerts (shared bot)
OPENAI_API_KEYLLM Gateway + moderation + Delta/Epsilon agents
CLASSIFIER_HF_TOKENPrompt injection detection (HuggingFace gated model)
PRISM_API_KEYMarket intelligence enrichment (sign up at prismapi.ai, code LABLAB)
CRYPTOPANIC_TOKENNews feed via CryptoPanic API
Blockchain vars (CHAIN_*)ERC-8004 on-chain attestations (see .env.example)

On-Chain Agents

Every agent has its own identity on the ERC-8004 AgentRegistry (Base Sepolia). Each decision is EIP-712 signed by the agent's operator wallet and posted to the ValidationRegistry before execution.


Subsystems

Polyglot monorepo. Each subsystem has its own README with key files and implementation notes.

  • golang/ - trading server, MCP servers, Go LLM agent, shared Go libraries
  • python/ - orchestrated Python agent and Python MCP servers (price feed, news, on-chain data, fear & greed)
  • ruby/ - Agents Arena: backtesting framework with strategy selection for live trading
  • rust/ - Rust Epsilon LLM agent
  • java/ - Java Gamma agent
  • typescript/ - Trading Dashboard (React 19 + Vite + Tailwind)
  • swiftward/ - Policy engine

License

See LICENSE.

Contributors

President

1 commits

Languages

HTML

87.0%

Go

7.6%

Python

2.1%

Ruby

1.3%

TypeScript

1.2%