tradr

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

tradr is openly a trading bot, but it can persistently and automatically trade through Bankr with trade guards bypassed, so it needs careful review before use.

Install only if you intentionally want an automated on-chain trading system. Before starting it, review config.json, keep trade sizes small, use the --user systemd install or a dedicated non-root user, secure any signal adapters/dashboard endpoints, and verify Telegram notification routing so trades are not broadcast unexpectedly.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If the agent, a user, or a signal adapter calls the entry script with a contract address and score, Bankr may spend wallet funds without an additional Bankr approval step.

Why it was flagged

The entry path invokes Bankr to place trades while explicitly enabling a trade-guard bypass.

Skill content
env["BANKR_ALLOW_TRADE"] = "1"  # Bypass trade guard for mechanical pipeline
result = subprocess.run(
            [bankr_script, prompt],
Recommendation

Use only trusted signal sources, keep score_to_size and max_position_size conservative, and consider adding an explicit confirmation or allowlist before Bankr execution.

ConcernHigh Confidence
ASI10: Rogue Agents
What this means

The skill can keep operating in the background and automatically sell positions according to its rules until the service is stopped or disabled.

Why it was flagged

The installer creates a persistent service that runs the exit manager and restarts it after failures.

Skill content
ExecStart=$(command -v python3) $EXIT_SCRIPT
Restart=on-failure
RestartSec=10
Recommendation

Do not start or enable the daemon until configuration is reviewed; know how to run `systemctl stop/disable tradr-exit-manager`, and prefer a user service when possible.

What this means

A bug, compromised config path, or configured notification hook could execute with more local privilege than a trading bot needs.

Why it was flagged

The systemd service block does not set a non-root User=, so the default system-wide install can run the trading daemon with root privileges.

Skill content
[Service]
Type=simple
ExecStart=$(command -v python3) $EXIT_SCRIPT
Restart=on-failure
RestartSec=10
WorkingDirectory=$SKILL_DIR
Recommendation

Install with `./scripts/setup.sh --user` or add a dedicated low-privilege `User=` to the systemd unit before enabling it.

What this means

If the Telegram hook is enabled with a broadcast channel, buy activity may be shared more widely than the user expects.

Why it was flagged

The comment says buy notifications go to DM only, but the code broadcasts buy notifications as well.

Skill content
# Routes: buy → DM only, sell → DM + broadcast
...
buy)
        send_dm "$TEXT"
        send_broadcast "$TEXT"
Recommendation

Fix the buy route to DM-only, remove BOT2/CHANNEL_ID, or update the documentation so the broadcast behavior is explicit.

What this means

If copied as-is onto a reachable host, someone else could potentially send webhook requests that trigger trades.

Why it was flagged

The webhook adapter example listens on all interfaces and directly turns POST bodies into trade entries, without showing authentication.

Skill content
data = json.loads(self.rfile.read(int(self.headers['Content-Length'])))
        feed_to_tradr(data["ca"], data["score"], data.get("chain"))
...
HTTPServer(("", 8080), Handler).serve_forever()
Recommendation

Bind webhook adapters to localhost or a private network, require authentication/signatures, validate payloads, and add rate limits before connecting them to live trading.

What this means

If the dashboard API is served without access controls, wallet addresses, strategy settings, file paths, and trade history may be exposed to unintended viewers.

Why it was flagged

The dashboard design expects an API endpoint that returns the full config file.

Skill content
GET /api/tradr-config — returns config.json contents
Recommendation

Serve dashboard endpoints only locally or behind authentication, and avoid returning secrets or unnecessary config fields.