☰
jev-trader 环境变量完全解析:RPC、私钥、保证金 9 个关键配置项手把手教程
2026/10/2 20:43:00 网站建设 项目流程

jev-trader 环境变量完全解析:RPC、私钥、保证金 9 个关键配置项手把手教程

【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-trader

jev-trader 是一个运行在 Monad 链上的 AI 交易机器人:每 300 ms 一个区块,AI 模型读取 Kuru MON-USDC 订单簿并给出一次买入或卖出决策,随后挂出真实的价格改善限价单。它的行为几乎完全由环境变量控制——RPC 地址、钱包私钥、保证金余额、单笔下单量……全部写在.env文件里。本教程逐一解析.env.example模板中的 9 组关键配置项,帮你从零跑通 jev-trader 的 dry-run 模拟,再平滑过渡到实盘。

配置总览:一个 .env 控制所有行为

jev-trader 的全部环境配置集中在两处:

  • 模板文件:.env.example —— 复制为.env后逐项填写
  • 读取逻辑:src/config.ts —— 每个变量都有默认值,不填也能启动(自动进入 dry-run)
配置项作用不填的后果
RPC_URL发交易、查回执、取 nonce回退到公共 RPC
READ_RPC_URL读订单簿、轮询区块、拉成交日志回退到公共 RPC
WS_URLWebSocket 订阅新区块(可选)仅靠轮询兜底
PRIVATE_KEY钱包私钥自动 dry-run
DRY_RUN强制模拟开关与私钥取或
MODEL/JEV_MODEL_ID选 mock 还是真 Jev 模型默认 mock
TRADE_SIZE_MON/QUOTE_INSIDE_TICKS单笔量与挂单位置200 MON、内挂 1 tick
MARGIN_MON/MARGIN_USDC保证金账户目标余额600 MON / 20 USDC
GAS_LIMIT/MAX_FEE_GWEI固定 gas 上限与费用上限启动时估算一次

第一步:配置 RPC 三个地址(RPC_URL / READ_RPC_URL / WS_URL)

Monad 的区块只有 300 ms,所以 jev-trader 把 RPC 拆成「写」和「读」两条通道,互不抢占:

RPC_URL=https://rpc.monad.xyz # 发送交易、回执、nonce READ_RPC_URL=https://rpc.monad.xyz # 读订单簿 + eth_blockNumber 轮询 + 成交日志 WS_URL=wss://rpc.monad.xyz # 可选,WebSocket newHeads

📌 为什么分开?热循环里每个区块只有一次读(约 18 ms 的eth_call)和一次发(eth_sendRawTransaction)。公共读端点有 25 rps 的限额,读、写分开可以各自选最优端点;实盘建议换 Alchemy / QuickNode 之类的专属节点。

📌WS_URL是锦上添花:即使不填,src/chain.ts 里始终运行区块轮询兜底,机器人不会漏区块。

第二步:私钥与 dry-run(PRIVATE_KEY / DRY_RUN)

这是新手最该先搞懂的一组——它决定你的真金白银是否下场:

PRIVATE_KEY= # 留空即可 DRY_RUN=true

逻辑写在 src/config.ts:dryRun在DRY_RUN=true或没有私钥时都为真。也就是说,什么都不填直接启动,就是一次安全演练:真实订单簿、真实的模型决策、订单挂簿一个区块,若被真实成交单穿价就模拟成交。

准备实盘时:

  1. 填入一个小额钱包的PRIVATE_KEY(强烈建议专用热钱包)
  2. 钱包里备好少量 MON 付 gas
  3. 钱包里的 MON / USDC 会在启动时自动充值进 Kuru 保证金账户(见下文)

⚠️ 注意:Kuru 的限价单消耗的是保证金账户余额,不是钱包余额;钱包只负责签名和 gas。

第三步:选择决策模型(MODEL / JEV_MODEL_ID / TYPESAFE_AI_API_KEY)

MODEL=mock # mock | jev JEV_MODEL_ID=jev-latest TYPESAFE_AI_API_KEY= # 使用 jev 时必填
  • MODEL=mock(默认):内置动量启发式,零成本,适合本地体验和 CI 演示
  • MODEL=jev:接入 TypeSafe 的 Jev 模型(src/model.ts 通过 AI SDK 的typeSafeAi.evaluationModel调用,约 100 ms 返回带概率的 typed 决策),此时必须配置TYPESAFE_AI_API_KEY

第四步:单笔下单量与挂单位置(TRADE_SIZE_MON / QUOTE_INSIDE_TICKS)

TRADE_SIZE_MON=200 # 每块一单的 MON 数量 QUOTE_INSIDE_TICKS=1 # 挂在最优盘口内侧几个 tick

两个要点:

  • 200不是随意选的:Kuru MON-USDC 的最小下单量就是 200 MON,低于它交易会被拒
  • QUOTE_INSIDE_TICKS=1表示买单挂在买一价上方 1 个 tick(tick = 0.000001 USDC),卖单对称。设为0就是直接参与最优买/卖价;若价差太窄,src/market.ts 的quotePrice会自动钳制到盘口价,保证 post-only 永不成交对手盘

第五步:仓位与本金管理(MAX_POSITION_MON / BANKROLL_USD)

MAX_POSITION_MON=1000 # 最大持仓(MON) BANKROLL_USD=100 # 名义本金,仅用于计算 pnlPct
  • 持仓到达MAX_POSITION_MON后,机器人只会朝减仓方向挂单;此时订单上会标记capped: true,但决策概率仍显示模型的真实判断(见 src/trader.ts)
  • BANKROLL_USD不参与下单,只是仪表盘盈亏百分比的分母,按你的实际投入填写即可

第六步:保证金账户(MARGIN_MON / MARGIN_USDC / MARGIN_ACCOUNT)

这是新手最容易困惑的一组——Kuru 的限价单从保证金账户扣钱:

MARGIN_MON=600 # 启动时把保证金充到 600 MON MARGIN_USDC=20 # 以及 20 USDC MARGIN_ACCOUNT=0x2A68ba1833cDf93fa9Da1EEbd7F46242aD8E90c5
  • 买单消耗 USDC(保证金里),卖单消耗 MON,成交所得也回到保证金
  • 启动时 src/market.ts 的ensureMargin会做 ERC-20 approve 并把余额补足到上述目标,之后每 200 个区块刷新一次
  • MARGIN_ACCOUNT是 MON-USDC 市场绑定的 MarginAccount 地址,只有当你更换MARKET时才需要动它

💡 保证金给多少?它就是你愿意让机器人同时在簿上挂出的最大卖单(MON 侧)/买单(USDC 侧)。默认 600 MON / 20 USDC 足够 dry-run 观察,实盘请从小额开始。

第七步:gas 费用三件套(GAS_LIMIT / MAX_FEE_GWEI / PRIORITY_FEE_GWEI)

Monad 有一个特殊规则:按 gas limit 计费,而不是实际用量。所以 jev-trader 的热循环里从不调用eth_estimateGas,而是固定一个 limit:

GAS_LIMIT= # 留空:启动时估算一次,估算失败则用 350000 MAX_FEE_GWEI=400 # EIP-1559 类型2交易的费用上限 PRIORITY_FEE_GWEI=2 # 小费;Monad 的 eth_maxPriorityFeePerGas 就是 2
  • 有效价格 = base fee + 小费,所以MAX_FEE_GWEI设高不花钱(Monad 的 base fee 下限是 100 gwei),只是防止交易失败
  • 一个区块一单,GAS_LIMIT350000 × 约 102 gwei ≈ 每块 0.036 MON——这正是 README 里「AI 推理费比 gas 还便宜」梗的来源

常见组合速查

场景关键设置
本地安全体验(推荐新手)其余全部默认,不填PRIVATE_KEY,bun run start即可
本地 + 真 Jev 模型补上MODEL=jev与TYPESAFE_AI_API_KEY
小额实盘专用钱包PRIVATE_KEY、DRY_RUN=false、调低MARGIN_MON/USDC与TRADE_SIZE_MON(不低于 200)

更多细节可以看产品规格 SPEC.md 和架构说明 README.md;仪表盘代码在 web/src/app/page.tsx,SSE 快照/历史/事件三个端点的实现在 src/server.ts。

小结

jev-trader 的环境变量设计遵循「默认即可跑,实盘再精调」:

  1. RPC 读写分离(RPC_URL/READ_RPC_URL/WS_URL)保住 300 ms 的块时延预算
  2. 不填PRIVATE_KEY就是 dry-run,新手零风险上手
  3. 模型、单量、保证金、gas 四个旋钮分别控制「怎么想、下多少、动多少钱、付多少 gas」

照着.env.example从上到下填一遍,你就完成了 jev-trader 的全部配置。

【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-trader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询