================================================================================
  CC5 — Polymarket Copy Trading Bot
  readme_cc5.txt
================================================================================


================================================================================
  ENGLISH
================================================================================

OVERVIEW
--------
cc5.py is a Polymarket copy trading bot. It reads target wallet positions
from a local file (D:\targeter.json) and mirrors them into your follower
wallet. At most ONE order is placed per 3-minute cycle.

FILES
-----
  cc5.py                The copy trading bot (fill in credentials before running)
  run_cc5.bat           Launcher — double-click to start, auto-restarts on crash
  show_creds.py         Tool to derive trading credentials from a private key
  cc5_state.json        Runtime state (auto-generated, do not edit)
  D:\targeter.json      Target wallet positions (must exist before running)


STEP 1 — GET YOUR TRADING CREDENTIALS
--------------------------------------
You need: EOA private key + proxy wallet address (from your Polymarket profile).

Run in the command prompt (cmd):

  Email / Magic.Link login (most common, SIG_TYPE=1):
      py show_creds.py 0xYourPrivateKey 0xYourProxyWalletAddress

  Pure EOA login (SIG_TYPE=0):
      py show_creds.py 0xYourPrivateKey

  Gnosis proxy (SIG_TYPE=2):
      py show_creds.py 0xYourPrivateKey 0xYourProxyWalletAddress 2

The output will display:
  PRIVATE_KEY, API_KEY, API_SECRET, API_PASSPHRASE, FUNDER, SIG_TYPE


STEP 2 — FILL IN cc5.py
------------------------
Open cc5.py in any text editor and fill in the credentials section at the top:

  PRIVATE_KEY    = "0x..."
  API_KEY        = "..."
  API_SECRET     = "..."
  API_PASSPHRASE = "..."
  FUNDER         = "0x..."   (leave "" for pure EOA)
  SIG_TYPE       = 1

Optionally adjust:
  POSITION_MULT  = 1.0    (0.5 = half size, 2.0 = double size)
  MAX_USD        = 0.0    (max USDC per order, 0 = no limit)


STEP 3 — START THE BOT
-----------------------
Make sure D:\targeter.json exists and is up to date, then:

  Double-click run_cc5.bat

The bot starts, observes for 60 seconds, then begins placing orders.


HOW CC5 WORKS
-------------
  - Every 3 minutes: reads D:\targeter.json (target positions)
  - Compares target positions to your current positions
  - Places AT MOST 1 order per cycle (buy or sell)
  - Next order waits for the next 3-minute cycle


WATCHDOG
--------
If the main loop hangs for more than 600 seconds, the bot automatically
exits. run_cc5.bat detects the exit and restarts the bot within 5 seconds.
This is why you should always launch via run_cc5.bat, not py cc5.py directly.


POSITION MULTIPLIER
-------------------
POSITION_MULT scales every copied position relative to the target's size.

  Target buys 100 shares → you buy: 100 × POSITION_MULT shares

  Examples:
    POSITION_MULT = 0.5  →  50 shares  (half size)
    POSITION_MULT = 1.0  → 100 shares  (exact mirror, default)
    POSITION_MULT = 2.0  → 200 shares  (double size)

  Must be greater than 0. No upper limit.


DRY RUN (TEST MODE)
-------------------
To test without placing real orders, run in cmd:

  set DRY_RUN=1 && py cc5.py

All orders will be printed but NOT executed.


STOPPING
--------
Close the command window or press Ctrl+C.
State is saved to cc5_state.json and restored on next start.


SECURITY WARNINGS
-----------------
  !! NEVER share cc5.py with anyone — it contains your private key.
  !! NEVER commit cc5.py to git or upload it to any website or cloud.
  !! NEVER send the contents of cc5.py in any chat or email.


================================================================================
  中文
================================================================================

概述
----
cc5.py 是 Polymarket 跟单机器人。从本地文件 D:\targeter.json 读取目标钱包持仓，
并将其镜像到你的跟单钱包。每3分钟一轮，每轮最多下一笔单。

文件说明
--------
  cc5.py                跟单机器人（运行前填入凭证）
  run_cc5.bat           启动器 — 双击启动，崩溃后自动重启
  show_creds.py         凭证生成工具，输入私钥即可派生所有凭证
  cc5_state.json        运行状态文件（自动生成，勿手动编辑）
  D:\targeter.json      目标钱包持仓文件（运行前必须存在）


第一步 — 获取交易凭证
---------------------
你需要：EOA 私钥 + proxy 钱包地址（在 Polymarket 个人资料页面查看）。

在命令提示符（cmd）中运行：

  邮箱 / Magic.Link 登录（最常见，SIG_TYPE=1）：
      py show_creds.py 0x你的私钥 0x你的Proxy钱包地址

  纯 EOA 登录（SIG_TYPE=0）：
      py show_creds.py 0x你的私钥

  Gnosis 代理（SIG_TYPE=2）：
      py show_creds.py 0x你的私钥 0x你的Proxy钱包地址 2

输出结果包含：
  PRIVATE_KEY、API_KEY、API_SECRET、API_PASSPHRASE、FUNDER、SIG_TYPE


第二步 — 填写 cc5.py
--------------------
用任意文本编辑器打开 cc5.py，在文件顶部凭证区域填入：

  PRIVATE_KEY    = "0x..."
  API_KEY        = "..."
  API_SECRET     = "..."
  API_PASSPHRASE = "..."
  FUNDER         = "0x..."   （纯EOA留空 ""）
  SIG_TYPE       = 1

可选调整：
  POSITION_MULT  = 1.0    （0.5=半仓，2.0=双倍）
  MAX_USD        = 0.0    （单笔最大USDC，0=不限）


第三步 — 启动机器人
-------------------
确认 D:\targeter.json 存在且为最新，然后：

  双击 run_cc5.bat

机器人启动后先观察60秒，再开始下单。


cc5 工作原理
------------
  - 每3分钟读取一次 D:\targeter.json（目标持仓）
  - 对比目标持仓与你的当前持仓
  - 每轮最多下一笔单（买入或卖出）
  - 下一笔单等待下一个3分钟周期


看门狗
------
若主循环超过600秒无响应，机器人自动退出。
run_cc5.bat 检测到退出后5秒内自动重启。
因此请始终通过 run_cc5.bat 启动，而非直接运行 py cc5.py。


仓位乘数
--------
POSITION_MULT 对每笔跟单仓位进行缩放。

  目标买入 100 股 → 你买入：100 × POSITION_MULT 股

  示例：
    POSITION_MULT = 0.5  →  50 股（半仓）
    POSITION_MULT = 1.0  → 100 股（完全镜像，默认）
    POSITION_MULT = 2.0  → 200 股（双倍仓位）

  必须大于 0，无上限。


模拟运行（测试模式）
--------------------
不下真实订单，仅打印，在 cmd 中运行：

  set DRY_RUN=1 && py cc5.py


停止运行
--------
关闭命令窗口或按 Ctrl+C。
状态保存到 cc5_state.json，下次启动时自动恢复。


安全警告
--------
  !! 切勿将 cc5.py 分享给任何人 — 文件中包含你的私钥。
  !! 切勿将 cc5.py 提交到 git 或上传到任何网站或云端。
  !! 切勿在任何聊天或邮件中发送 cc5.py 的内容。


================================================================================
  ESPAÑOL
================================================================================

DESCRIPCIÓN GENERAL
-------------------
cc5.py es un bot de copy trading para Polymarket. Lee las posiciones de la
cartera objetivo desde un archivo local (D:\targeter.json) y las replica en
su cartera seguidora. Se coloca como máximo UNA orden cada 3 minutos.

ARCHIVOS
--------
  cc5.py                El bot de copy trading (complete las credenciales antes)
  run_cc5.bat           Lanzador — doble clic para iniciar, reinicio automático
  show_creds.py         Herramienta para derivar credenciales desde clave privada
  cc5_state.json        Estado en tiempo de ejecución (generado automáticamente)
  D:\targeter.json      Posiciones de la cartera objetivo (debe existir al iniciar)


PASO 1 — OBTENER CREDENCIALES DE TRADING
-----------------------------------------
Necesita: clave privada EOA + dirección de cartera proxy (del perfil Polymarket).

Ejecute en el símbolo del sistema (cmd):

  Login con email / Magic.Link (más común, SIG_TYPE=1):
      py show_creds.py 0xSuClavePrivada 0xSuDirecciónProxy

  EOA puro (SIG_TYPE=0):
      py show_creds.py 0xSuClavePrivada

  Proxy Gnosis (SIG_TYPE=2):
      py show_creds.py 0xSuClavePrivada 0xSuDirecciónProxy 2

La salida mostrará:
  PRIVATE_KEY, API_KEY, API_SECRET, API_PASSPHRASE, FUNDER, SIG_TYPE


PASO 2 — COMPLETAR cc5.py
--------------------------
Abra cc5.py con cualquier editor de texto y complete la sección de
credenciales al inicio del archivo:

  PRIVATE_KEY    = "0x..."
  API_KEY        = "..."
  API_SECRET     = "..."
  API_PASSPHRASE = "..."
  FUNDER         = "0x..."   (deje "" para EOA puro)
  SIG_TYPE       = 1

Ajuste opcional:
  POSITION_MULT  = 1.0    (0.5 = mitad, 2.0 = doble)
  MAX_USD        = 0.0    (máx. USDC por orden, 0 = sin límite)


PASO 3 — INICIAR EL BOT
------------------------
Asegúrese de que D:\targeter.json exista y esté actualizado, luego:

  Haga doble clic en run_cc5.bat

El bot inicia, observa durante 60 segundos y luego comienza a operar.


CÓMO FUNCIONA CC5
-----------------
  - Cada 3 minutos: lee D:\targeter.json (posiciones objetivo)
  - Compara posiciones objetivo con sus posiciones actuales
  - Coloca COMO MÁXIMO 1 orden por ciclo (compra o venta)
  - La siguiente orden espera al próximo ciclo de 3 minutos


WATCHDOG (GUARDIÁN)
-------------------
Si el bucle principal se bloquea más de 600 segundos, el bot sale
automáticamente. run_cc5.bat detecta la salida y reinicia el bot en
5 segundos. Por eso siempre inicie con run_cc5.bat, no con py cc5.py.


MULTIPLICADOR DE POSICIÓN
--------------------------
POSITION_MULT escala cada posición copiada.

  El objetivo compra 100 acciones → usted compra: 100 × POSITION_MULT

  Ejemplos:
    POSITION_MULT = 0.5  →  50 acciones  (mitad)
    POSITION_MULT = 1.0  → 100 acciones  (espejo exacto, predeterminado)
    POSITION_MULT = 2.0  → 200 acciones  (doble)

  Debe ser mayor que 0. Sin límite superior.


MODO SIMULACIÓN (DRY RUN)
--------------------------
Para probar sin colocar órdenes reales, ejecute en cmd:

  set DRY_RUN=1 && py cc5.py


DETENER
-------
Cierre la ventana de comandos o presione Ctrl+C.
El estado se guarda en cc5_state.json y se restaura al reiniciar.


ADVERTENCIAS DE SEGURIDAD
--------------------------
  !! NUNCA comparta cc5.py con nadie — contiene su clave privada.
  !! NUNCA suba cc5.py a git, sitios web ni servicios en la nube.
  !! NUNCA envíe el contenido de cc5.py por chat o correo electrónico.


================================================================================
  日本語
================================================================================

概要
----
cc5.py はPolymarketのコピートレードBotです。ローカルファイル
D:\targeter.json からターゲットウォレットのポジションを読み取り、
フォロワーウォレットにミラーリングします。3分ごとに最大1注文を実行します。

ファイル説明
------------
  cc5.py                コピートレードBot（実行前に認証情報を入力）
  run_cc5.bat           ランチャー — ダブルクリックで起動、クラッシュ時自動再起動
  show_creds.py         秘密鍵から取引認証情報を導出するツール
  cc5_state.json        実行状態ファイル（自動生成、手動編集不可）
  D:\targeter.json      ターゲットウォレットのポジションファイル（起動前に必要）


ステップ1 — 取引認証情報の取得
------------------------------
必要なもの：EOA秘密鍵 + プロキシウォレットアドレス（Polymarketプロフィールで確認）

コマンドプロンプト（cmd）で実行：

  メール / Magic.Link ログイン（最も一般的、SIG_TYPE=1）：
      py show_creds.py 0xあなたの秘密鍵 0xあなたのプロキシアドレス

  純粋なEOAログイン（SIG_TYPE=0）：
      py show_creds.py 0xあなたの秘密鍵

  Gnosisプロキシ（SIG_TYPE=2）：
      py show_creds.py 0xあなたの秘密鍵 0xあなたのプロキシアドレス 2

出力には以下が含まれます：
  PRIVATE_KEY、API_KEY、API_SECRET、API_PASSPHRASE、FUNDER、SIG_TYPE


ステップ2 — cc5.py に入力
--------------------------
任意のテキストエディタでcc5.pyを開き、ファイル先頭の設定セクションに入力：

  PRIVATE_KEY    = "0x..."
  API_KEY        = "..."
  API_SECRET     = "..."
  API_PASSPHRASE = "..."
  FUNDER         = "0x..."   （純粋なEOAの場合は ""）
  SIG_TYPE       = 1

オプション設定：
  POSITION_MULT  = 1.0    （0.5=半分、2.0=2倍）
  MAX_USD        = 0.0    （1注文あたりの最大USDC、0=無制限）


ステップ3 — Botの起動
---------------------
D:\targeter.json が存在し最新であることを確認してから：

  run_cc5.bat をダブルクリック

Botは起動後60秒間観察のみ行い、その後注文を開始します。


cc5の動作原理
-------------
  - 3分ごとにD:\targeter.json（ターゲットポジション）を読み取る
  - ターゲットのポジションと現在のポジションを比較
  - 1サイクルにつき最大1注文（買いまたは売り）
  - 次の注文は次の3分サイクルまで待機


ウォッチドッグ
--------------
メインループが600秒以上応答しない場合、Botは自動的に終了します。
run_cc5.batが終了を検知し、5秒以内にBotを再起動します。
そのため、py cc5.py を直接実行するのではなく、
常に run_cc5.bat から起動してください。


ポジション乗数
--------------
POSITION_MULTはコピーする各ポジションをスケーリングします。

  ターゲットが100株購入 → あなたが購入：100 × POSITION_MULT 株

  例：
    POSITION_MULT = 0.5  →  50株  （半分）
    POSITION_MULT = 1.0  → 100株  （完全ミラー、デフォルト）
    POSITION_MULT = 2.0  → 200株  （2倍）

  0より大きい値が必要。上限なし。


ドライランモード（テストモード）
--------------------------------
実際に注文せずテストするには、cmdで実行：

  set DRY_RUN=1 && py cc5.py


停止方法
--------
コマンドウィンドウを閉じるか、Ctrl+Cを押します。
状態はcc5_state.jsonに保存され、次回起動時に復元されます。


重要なセキュリティ警告
----------------------
  !! cc5.pyは絶対に他人と共有しないこと — 秘密鍵が含まれています。
  !! cc5.pyをgit、ウェブサイト、クラウドにアップロードしないこと。
  !! cc5.pyの内容をチャットやメールで送信しないこと。


================================================================================
  END OF README
================================================================================
