@gonzih/polymarket-arb 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,10 +7,20 @@ Claude-powered Polymarket arbitrage bot. Monitors BTC/ETH price feeds, detects 3
7
7
  1. **Price feeds** — connects to Binance WebSocket (with Coinbase fallback on 451 geo-block) for real-time BTC/ETH prices
8
8
  2. **Signal detection** — fires when |30s momentum| > 0.35%
9
9
  3. **Contract discovery** — queries Polymarket GraphQL for open BTC/ETH up/down contracts expiring within 20 minutes
10
- 4. **Claude analysis** — sends signal + contract data to `claude-haiku-4-5-20251001` for confidence score, Kelly fraction, and reasoning
10
+ 4. **Claude analysis** — spawns `claude --print` subprocess with signal + contract data to get confidence score, Kelly fraction, and reasoning
11
11
  5. **Trade entry** — only enters if Claude confidence > 0.65; sizes position using Kelly Criterion (capped at 10%)
12
12
  6. **Risk management** — daily loss limit -20%, total drawdown kill switch -40%
13
13
 
14
+ ## Prerequisites
15
+
16
+ - `claude` CLI installed and authenticated:
17
+ ```bash
18
+ npm install -g @anthropic-ai/claude-code
19
+ claude # run once to authenticate
20
+ claude --version # verify
21
+ ```
22
+ - No API key needed — uses your existing Claude Code session
23
+
14
24
  ## Installation
15
25
 
16
26
  ```bash
@@ -21,17 +31,16 @@ npm install -g @gonzih/polymarket-arb
21
31
 
22
32
  ```bash
23
33
  # Paper trading (default, safe)
24
- ANTHROPIC_API_KEY=sk-... polymarket-arb --paper
34
+ polymarket-arb --paper
25
35
 
26
36
  # Live trading
27
- ANTHROPIC_API_KEY=sk-... POLYMARKET_API_KEY=... POLYMARKET_SECRET=... polymarket-arb --live
37
+ POLYMARKET_API_KEY=... POLYMARKET_SECRET=... polymarket-arb --live
28
38
  ```
29
39
 
30
40
  ## Environment variables
31
41
 
32
42
  | Variable | Required | Default | Description |
33
43
  |----------|----------|---------|-------------|
34
- | `ANTHROPIC_API_KEY` | Yes | — | Claude API key |
35
44
  | `POLYMARKET_API_KEY` | Live only | — | Polymarket CLOB API key |
36
45
  | `POLYMARKET_SECRET` | Live only | — | Polymarket API secret |
37
46
  | `PAPER_MODE` | No | `true` | Set `false` for live trading |
@@ -59,7 +68,7 @@ src/
59
68
  feeds.ts — Binance + Coinbase WebSocket managers
60
69
  signal.ts — 30s momentum calculation
61
70
  polymarket.ts — GraphQL contract discovery + CLOB order placement
62
- claude.ts — Anthropic SDK integration, trade analysis
71
+ claude.ts — claude CLI subprocess integration, trade analysis
63
72
  kelly.ts — Kelly Criterion position sizing, risk limits
64
73
  logger.ts — Structured JSON logging
65
74
  daemon.ts — Main bot loop, kill switch logic
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAaF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA0D/B"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiD/B"}
package/dist/claude.js CHANGED
@@ -1,22 +1,12 @@
1
- import Anthropic from "@anthropic-ai/sdk";
1
+ import { execFile } from "child_process";
2
+ import { promisify } from "util";
2
3
  import { log } from "./logger.js";
3
- const MODEL = "claude-haiku-4-5-20251001";
4
- let client = null;
5
- function getClient() {
6
- if (!client) {
7
- const apiKey = process.env.ANTHROPIC_API_KEY;
8
- if (!apiKey)
9
- throw new Error("ANTHROPIC_API_KEY is required");
10
- client = new Anthropic({ apiKey });
11
- }
12
- return client;
13
- }
4
+ const execFileAsync = promisify(execFile);
14
5
  export async function analyzeTradeOpportunity(signal, contract) {
15
6
  const momentumPct = (signal.momentum * 100).toFixed(3);
16
7
  const direction = signal.direction === "down" ? "dropped" : "rose";
17
- const contractOdds = contract.direction === "down" ? contract.yesPrice : contract.yesPrice;
8
+ const contractOdds = contract.yesPrice;
18
9
  const minutesToExpiry = Math.round((contract.expiresAt - Date.now()) / 60_000);
19
- // Implied real probability based on momentum direction matching contract
20
10
  const impliedProb = signal.direction === contract.direction ? 0.75 : 0.35;
21
11
  const impliedEdge = Math.abs(impliedProb - contractOdds);
22
12
  const prompt = `You are a prediction market arbitrage assistant. Analyze this trade opportunity and respond in JSON only.
@@ -30,24 +20,13 @@ Current price: ${signal.currentPrice}
30
20
 
31
21
  Assess: Does the momentum signal justify a bet on this contract? Consider momentum strength, edge size, time to expiry, and signal-contract alignment.
32
22
 
33
- Respond with JSON only:
23
+ Respond with JSON only, no markdown:
34
24
  {"confidence": 0.0-1.0, "kelly_fraction": 0.0-0.1, "reasoning": "brief explanation", "enter": true/false}`;
35
25
  try {
36
- const anthropic = getClient();
37
- const message = await anthropic.messages.create({
38
- model: MODEL,
39
- max_tokens: 256,
40
- messages: [{ role: "user", content: prompt }],
41
- });
42
- const content = message.content[0];
43
- if (content.type !== "text") {
44
- log("warn", { source: "claude", event: "unexpected_response_type" });
45
- return null;
46
- }
47
- // Extract JSON from response (may have surrounding text)
48
- const jsonMatch = content.text.match(/\{[^}]+\}/s);
26
+ const { stdout } = await execFileAsync("claude", ["--print", "--model", "claude-haiku-4-5-20251001", prompt], { timeout: 15000 });
27
+ const jsonMatch = stdout.match(/\{[\s\S]*\}/);
49
28
  if (!jsonMatch) {
50
- log("warn", { source: "claude", event: "no_json_in_response", text: content.text });
29
+ log("warn", { source: "claude", event: "no_json_in_response", text: stdout });
51
30
  return null;
52
31
  }
53
32
  const analysis = JSON.parse(jsonMatch[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAS1C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAsB,EACtB,QAAkB;IAElB,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG;;UAEP,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI,WAAW;wBAC3B,QAAQ,CAAC,QAAQ,yBAAyB,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9G,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBAC1G,eAAe;uBACb,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnC,MAAM,CAAC,YAAY;;;;;0GAKsE,CAAC;IAEzG,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,QAAQ,EACR,CAAC,SAAS,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAC3D,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAkB,CAAC;QAC3D,GAAG,CAAC,MAAM,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,QAAQ;SACZ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,6 @@ Options:
14
14
  --help Show this help
15
15
 
16
16
  Environment variables:
17
- ANTHROPIC_API_KEY Required — Claude API key for trade analysis
18
17
  POLYMARKET_API_KEY Required for live trading
19
18
  POLYMARKET_SECRET Required for live trading
20
19
  PAPER_MODE=true Default paper mode (overridden by --live flag)
@@ -34,10 +33,6 @@ if (!paperMode && !process.env.POLYMARKET_API_KEY) {
34
33
  console.error("ERROR: --live mode requires POLYMARKET_API_KEY environment variable");
35
34
  process.exit(1);
36
35
  }
37
- if (!process.env.ANTHROPIC_API_KEY) {
38
- console.error("ERROR: ANTHROPIC_API_KEY environment variable is required");
39
- process.exit(1);
40
- }
41
36
  log("info", {
42
37
  event: "startup",
43
38
  mode: paperMode ? "paper" : "live",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;iBAiBG,MAAM,EAAE;CACxB,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,uBAAuB;AACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACvC,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAEvC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,GAAG,CAAC,MAAM,EAAE;IACV,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;IAClC,MAAM,EAAE,MAAM,EAAE;IAChB,WAAW,EAAE,OAAO,CAAC,OAAO;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;AAEf,oBAAoB;AACpB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;iBAgBG,MAAM,EAAE;CACxB,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,uBAAuB;AACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACvC,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAEvC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAClD,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,GAAG,CAAC,MAAM,EAAE;IACV,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;IAClC,MAAM,EAAE,MAAM,EAAE;IAChB,WAAW,EAAE,OAAO,CAAC,OAAO;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;AAEf,oBAAoB;AACpB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonzih/polymarket-arb",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Claude-powered Polymarket arbitrage bot — BTC/ETH momentum signal + AI trade analysis",
5
5
  "keywords": [
6
6
  "polymarket",
@@ -21,7 +21,7 @@
21
21
  "license": "MIT",
22
22
  "type": "module",
23
23
  "bin": {
24
- "polymarket-arb": "./dist/index.js"
24
+ "polymarket-arb": "dist/index.js"
25
25
  },
26
26
  "main": "./dist/index.js",
27
27
  "scripts": {
@@ -41,7 +41,6 @@
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "@anthropic-ai/sdk": "0.39.0",
45
44
  "ws": "8.18.1"
46
45
  },
47
46
  "devDependencies": {