## 邮箱登录钱包的实盘配置 对照官方 `PolymarketDocumentation-main/docs/api-reference/authentication.md` 第 349-361 行,签名类型是固定的: | Sig Type | 值 | 适用 | | -------------- | ----- | ----------------------------------------- | | EOA | 0 | MetaMask 等浏览器钱包(你自己持有私钥) | | **POLY_PROXY** | **1** | **Magic Link 邮箱/Google 登录** ← 你这种 | | GNOSIS_SAFE | 2 | 老 Safe 用户 | | POLY_1271 | 3 | 新 API 用户推荐(存款钱包,私钥完全自管) | > **官方 Tip**:`New API users should use deposit wallets with POLY_1271.` 新用户建议用 deposit wallet (`signature_type=3`)。如果你已经有邮箱钱包、不想动现有余额,走路径 A;想干净开始或风险更可控,走路径 B。 --- ### 路径 A:保留现有邮箱钱包(signature_type=1) **1) 拿到私钥**——官方 `docs/polymarket-learn/FAQ/how-to-export-private-key.md` 写得很清楚: > Exporting your private key on Magic.Link. **This process is applicable if you've signed up via email.** > Access the Export Link while signed into Polymarket: **https://reveal.magic.link/polymarket** > Sign-in on Magic.Link → Export Private Key. Once revealed, you should store it somewhere safe. 操作步骤: 1. 浏览器登录 polymarket.com(已登录状态) 2. 访问 **https://reveal.magic.link/polymarket** 3. 用你的邮箱走 Magic.link 登录 4. 点 "Export Private Key" 5. 看到一个 `0x...` 的 64 位十六进制私钥,**离线保存**(密码管理器 / 加密文件,**不要 commit**) **2) 拿到 funder address**——访问 https://polymarket.com/settings 看你的 Polygon profile address。这个就是你 `LIVE_FUNDER_ADDRESS`(USDC 实际存放的代理合约地址)。 **3) 填环境变量**(**不要**写进 JSON): ```bash export LIVE_PRIVATE_KEY=0x... # 上一步导出的私钥 export LIVE_FUNDER_ADDRESS=0x... # polymarket.com/settings 显示的地址 export LIVE_SIGNATURE_TYPE=1 # POLY_PROXY,邮箱登录固定值 export LIVE_CONFIRM="I understand real money is at risk" ``` **4) `config.live.json` 改两处**: ```diff "mode": "live", "bankroll_usd": 22.28, ← 改成你邮箱钱包里实际 USDC.e 余额(启动时 copybot 会和链上比对) "live": { - "private_key": "", - "funder_address": "", - "signature_type": 1, + "private_key": "", ← 留空,靠 env 注入 + "funder_address": "", ← 留空,靠 env 注入 + "signature_type": 1, ← 邮箱登录 = 1 "order_type": "FAK", ... }, ``` ### 路径 B:新建 deposit wallet(signature_type=3,更推荐) `PolymarketDocumentation-main/docs/api-reference/authentication.md` 第 354 行 + Tip: > `POLY_1271` | `3` | Deposit wallet flow for new API users. **The funder is the deposit wallet address and orders are validated through ERC-1271.** 意思是:你创建一个 Polygon 钱包(MetaMask 私钥),用 deposit flow 把 USDC 存进去,下单时用 ERC-1271 签名校验。具体步骤官方文档的 [Deposit Wallet Guide](/trading/deposit-wallets) 有,HANDOFF.md 第 239 行 `SecureClient.create(private_key) — deposit wallet auto-resolves` 也是同一个意思。 这种路径私钥你自己完全控制(不像邮箱路径依赖 Magic.link),跟 MetaMask 的 EOA 体验一样,**风险更低**。 --- ### 区分两种类型的关键(先确认你是哪一种) 打开 https://polymarket.com/settings 看你自己的 profile address: - `0x` 开头 + 一串 hex - 在 Polymarket 里**是真实的 EOA 钱包**(不是合约)→ signature_type = 1(POLY_PROXY,邮箱登录) - 或者是 Gnosis Safe 地址 → signature_type = 2(如果你曾用过 Safe 登录) **最简单的判定方式**:如果你的钱包余额页面显示 "Email" 登录、是普通地址(不是 Safe),就是 `signature_type=1`。 --- ### 启动 ```bash python copybot.py --config config.live.json --live --poll 60 ``` > `copytrade.py:92` 注释里写的是 `0 EOA · 1 email/magic proxy · 2 browser proxy` —— 这个注释**漏了 type 3**(POLY_1271,新 API 用户的 deposit wallet 模式)。但 `signature_type` 字段本身是直接透传给 `py_clob_client.ClobClient(signature_type=...)` 的(`copytrade.py:256`),传 1 或 3 都支持,无需改代码。 建议先**只读模拟跑一周**:`python copybot.py --config config.live.json --poll 60`(不加 `--live`,不设 `LIVE_CONFIRM`,看实盘钱包的对账逻辑和链上 cash-anchor 是否对得上)。对得上再开 `--live`。 确认了:**项目里没有 `.env` 文件,也没有 `.env.example` 模板**。我上一条消息里把 `.env` 当作 "方式 2" 提了一句,那是泛指行业惯例,不是说项目里有。抱歉让你去找。 项目实际只有两个相关的模板/示例: | 文件 | 用途 | | -------------------------- | ------------------------------------------------------------ | | `config.example.json` | 通用配置示例(应该是 paper 模式或空模板) | | `config.live.example.json` | **实盘模板**,私钥字段已留空——按上一条说的复制成 `config.live.json` 即可 | ```bash cp config.live.example.json config.live.json ``` 然后私钥/funder/signature_type 通过环境变量(`LIVE_PRIVATE_KEY` 等)注入,`copybot.py:2303-2308` 会自动从 env 读,不用碰 JSON。