125470b24a
Synced from github/main: aebcfa2d copybot: live paper feed [skip ci]
Our additions: serve_dashboard.py, bot_dashboard.html, mihomo-healthcheck.sh,
中文文档, 我们的钱包配置
108 lines
5.6 KiB
Markdown
108 lines
5.6 KiB
Markdown
## 邮箱登录钱包的实盘配置
|
||
|
||
对照官方 `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。 |