Files
gavindiaz 125470b24a sync: upstream + our customizations (dashboard, healthcheck, docs)
Synced from github/main: aebcfa2d copybot: live paper feed [skip ci]
Our additions: serve_dashboard.py, bot_dashboard.html, mihomo-healthcheck.sh,
中文文档, 我们的钱包配置
2026-07-21 07:35:48 +08:00

108 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 邮箱登录钱包的实盘配置
对照官方 `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 walletsignature_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 = 1POLY_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。