senpi-getting-started-guide
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGetting Started: Your First Trade
入门:你的首次交易
Guide users through their first complete trade on Hyperliquid via Senpi. This skill teaches the core loop: discover top traders → create a strategy that mirrors a chosen trader → monitor → close strategy.
Prerequisites (agent-only): Senpi MCP connected. Onboarding complete (see state check below). Wallet funded for creating a strategy; if not yet funded, show a funding reminder and do not start until balance ≥ $100 or user confirms they funded.
User-facing rule: Never show the user internal details. Do not mention state names (e.g. UNFUNDED, READY, FRESH), file paths (e.g. state.json, ~/.config/senpi), step codes (e.g. STRATEGY_CREATED), or MCP/tool names. Use only plain, friendly language (e.g. "You're all set to start", "Fund your wallet to begin", "Your strategy is running").
Minimum strategy budget: Use $100 as the minimum when creating the first-trade mirror strategy. Do not suggest or use $50 or any amount below $100.
引导用户通过Senpi完成在Hyperliquid上的首次完整交易。本skill教授核心流程:发现顶级交易者 → 创建策略镜像选定交易者的操作 → 监控 → 关闭策略。
前置要求(仅agent可见): 已连接Senpi MCP。已完成新用户引导(见下方状态检查)。创建策略需要钱包有足够资金;如果未充值,展示充值提醒,在余额≥100美元或用户确认已充值前不要启动流程。
面向用户规则: 永远不要向用户展示内部细节。不要提及状态名称(例如UNFUNDED、READY、FRESH)、文件路径(例如state.json、~/.config/senpi)、步骤代码(例如STRATEGY_CREATED),或者MCP/工具名称。仅使用平实友好的语言(例如“你已经准备好开始了”、“给你的钱包充值即可开始”、“你的策略正在运行”)。
最低策略预算: 创建首次交易镜像策略时,最低预算设置为100美元。不要建议或使用50美元或任何低于100美元的金额。
Prerequisites
前置要求
Before starting the tutorial, verify:
- MCP Connected — Senpi MCP server is configured and accessible.
- Onboarding complete — If not complete (state FRESH or ONBOARDING), redirect with a user-friendly message only (see below). Do not mention "state" or "onboarding" to the user.
- Wallet funded (for creating a strategy) — If not yet funded, show a single friendly funding reminder; do not start the tutorial until balance ≥ $100 or user confirms they funded.
Ensure state file exists; if missing, create it and redirect. When redirecting, tell the user only: "You need to complete setup first. Say 'set up Senpi' or 'connect to Senpi' to get started." Do not mention state file, FRESH, or any internal state.
bash
undefined开始教程前,请验证:
- 已连接MCP — Senpi MCP服务器已配置且可访问。
- 已完成新用户引导 — 如果未完成(状态为FRESH或ONBOARDING),仅用友好的提示语引导跳转(见下方),不要向用户提及“状态”或“新用户引导”。
- 钱包已充值(用于创建策略) — 如果未充值,仅展示一条友好的充值提醒;在余额≥100美元或用户确认已充值前不要启动教程。
确保状态文件存在;如果缺失,创建文件并引导跳转。跳转时仅告知用户:“你需要先完成设置,说出**'设置Senpi'或'连接Senpi'**即可开始。”不要提及状态文件、FRESH或任何内部状态。
bash
undefinedEnsure state file exists (per state lifecycle); if missing, create and redirect
Ensure state file exists (per state lifecycle); if missing, create and redirect
if [ ! -f ~/.config/senpi/state.json ]; then
mkdir -p ~/.config/senpi
cat > ~/.config/senpi/state.json << 'STATEEOF'
{
"version": "1.0.0",
"state": "FRESH",
"error": null,
"onboarding": {
"step": "IDENTITY",
"startedAt": null,
"completedAt": null,
"identityType": null,
"subject": null,
"walletGenerated": false,
"existingAccount": false
},
"account": {},
"wallet": { "funded": false },
"firstTrade": { "completed": false, "skipped": false },
"mcp": { "configured": false }
}
STATEEOF
Tell user only (do not echo internal messages):
"You need to complete setup first. Say 'set up Senpi' or 'connect to Senpi' to get started."
exit 1
fi
STATE=$(cat ~/.config/senpi/state.json | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).state")
if [ "$STATE" = "FRESH" ] || [ "$STATE" = "ONBOARDING" ]; then
Tell user only (do not echo "User needs to complete onboarding" or state names):
"You need to complete setup first. Say 'set up Senpi' or 'connect to Senpi' to get started."
exit 1
fi
---if [ ! -f ~/.config/senpi/state.json ]; then
mkdir -p ~/.config/senpi
cat > ~/.config/senpi/state.json << 'STATEEOF'
{
"version": "1.0.0",
"state": "FRESH",
"error": null,
"onboarding": {
"step": "IDENTITY",
"startedAt": null,
"completedAt": null,
"identityType": null,
"subject": null,
"walletGenerated": false,
"existingAccount": false
},
"account": {},
"wallet": { "funded": false },
"firstTrade": { "completed": false, "skipped": false },
"mcp": { "configured": false }
}
STATEEOF
Tell user only (do not echo internal messages):
"You need to complete setup first. Say 'set up Senpi' or 'connect to Senpi' to get started."
exit 1
fi
STATE=$(cat ~/.config/senpi/state.json | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).state")
if [ "$STATE" = "FRESH" ] || [ "$STATE" = "ONBOARDING" ]; then
Tell user only (do not echo "User needs to complete onboarding" or state names):
"You need to complete setup first. Say 'set up Senpi' or 'connect to Senpi' to get started."
exit 1
fi
---Triggers
触发条件
Start this tutorial when:
- User says: "let's trade", "first trade", "teach me to trade", "how do I trade", "make a trade"
- State is and user sends a trading-related message
AWAITING_FIRST_TRADE - User explicitly asks for trading guidance
Do NOT start if: MCP not connected — then tell the user to set up Senpi first (do not mention MCP or state). If user says "skip tutorial", set state to READY and show the skip message from references/next-steps.md. If wallet has less than $100 when starting, do not create a strategy until funded; use the funding reminder below (user-friendly wording only).
满足以下条件时启动本教程:
- 用户说出:“let's trade”、“first trade”、“teach me to trade”、“how do I trade”、“make a trade”
- 状态为且用户发送交易相关消息
AWAITING_FIRST_TRADE - 用户明确请求交易指导
禁止启动的情况: MCP未连接 — 此时告知用户先完成Senpi设置(不要提及MCP或状态)。如果用户说“跳过教程”,将状态设为READY并展示references/next-steps.md中的跳过提示。如果启动时钱包余额低于100美元,在充值完成前不要创建策略;仅使用下方的友好充值提示语。
Tutorial Flow
教程流程
Follow steps in order. Reference files contain display copy, state schemas, and error handling.
按顺序执行步骤,参考文件包含展示文案、状态结构和错误处理逻辑。
When the wallet isn’t funded yet (before Step 1)
钱包未充值时(步骤1前)
If the user asked for the first-trade guide (e.g. "let's trade") but the wallet is not yet funded:
- Check balance — Use MCP to fetch portfolio/balance.
- If balance < $100: Do not start the introduction. Show one clear, user-friendly message only:
- Your trading wallet address (from state; do not say "agent wallet" or "state.json").
- That they need to send at least $100 USDC on a supported network (Base, Arbitrum, Optimism, Polygon, or Ethereum).
- "Once you’ve sent the funds, say 'I funded my wallet' or 'let’s trade' and we’ll start the tutorial."
- If balance ≥ $100: Update state (AWAITING_FIRST_TRADE, wallet.funded true), then proceed to Step 1.
If onboarding is not complete (state FRESH or ONBOARDING), tell the user only: "Complete setup first — say 'set up Senpi' to get started." Do not say "onboarding", "state", or "User needs to complete onboarding first."
如果用户请求首次交易引导(例如“我们交易吧”)但钱包尚未充值:
- 检查余额 — 调用MCP获取资产组合/余额。
- 如果余额<100美元: 不要启动介绍环节,仅展示一条清晰友好的提示,内容包括:
- 你的交易钱包地址(从状态中获取,不要说“agent钱包”或“state.json”)
- 说明需要在支持的网络(Base、Arbitrum、Optimism、Polygon或以太坊)上转入至少100 USDC
- “转入资金后,说出**'我已充值钱包'或'我们交易吧'**,我们就会开始教程。”
- 如果余额≥100美元: 更新状态(AWAITING_FIRST_TRADE,wallet.funded设为true),然后进入步骤1。
如果未完成新用户引导(状态为FRESH或ONBOARDING),仅告知用户:“先完成设置 — 说出**'设置Senpi'**即可开始。”不要说“新用户引导”、“状态”或“用户需要先完成新用户引导”。
Step 1: Introduction
步骤1:介绍
Display the trade cycle. When showing the 4-step list to the user, use this exact wording:
1️⃣ Discover — Find top-performing traders on Hyperliquid
2️⃣ Create a strategy — Mirror a chosen trader's positions ($100 budget)
3️⃣ Monitor — Watch how the strategy performs
4️⃣ Close — Exit when you're ready
Recommend a $100 minimum budget for the first strategy and include a short risk disclaimer. Ask user to say "yes" to continue or "skip" if experienced.
Update state: set to , true, (ISO 8601). Preserve existing fields in .
firstTrade.stepINTRODUCTIONfirstTrade.startedstartedAtstate.jsonWait for user confirmation before proceeding.
展示交易周期。向用户展示4步列表时,请严格使用以下文案:
1️⃣ 发现 — 找到Hyperliquid上表现顶尖的交易者
2️⃣ 创建策略 — 镜像选定交易者的持仓(100美元预算)
3️⃣ 监控 — 观察策略的表现情况
4️⃣ 关闭 — 你可以随时退出
建议首次策略最低预算为100美元,并附上简短的风险免责声明。请用户说出**“yes”继续,或“skip”**如果已有相关经验。
更新状态:将设为,设为true,添加(ISO 8601格式)。保留中的已有字段。
firstTrade.stepINTRODUCTIONfirstTrade.startedstartedAtstate.json等待用户确认后再继续。
Step 2: Discovery
步骤2:发现
Use MCP to fetch top traders. Optionally use or for extra detail. Show a short table of top traders (e.g. by PnL, win rate) and recommend one trader to mirror for the first trade.
discovery_get_top_tradersdiscovery_get_trader_statediscovery_get_trader_historySee references/discovery-guide.md for display template and state update (, , ).
firstTrade.step: "DISCOVERY"recommendedTraderIdrecommendedTraderName调用MCP 获取顶级交易者列表。可选调用**或获取额外信息。展示顶级交易者的精简表格(例如按收益率、胜率排序),并推荐一名交易者**供首次交易镜像使用。
discovery_get_top_tradersdiscovery_get_trader_statediscovery_get_trader_history参考references/discovery-guide.md获取展示模板和状态更新规则(、、)。
firstTrade.step: "DISCOVERY"recommendedTraderIdrecommendedTraderNameStep 3: Strategy Sizing
步骤3:策略规模设置
Before creating the strategy, explain: chosen trader, budget ($100 minimum), and that the strategy will mirror that trader's positions. Warn about risk and liquidation. Ask user to say "confirm" to create the strategy.
See references/strategy-management.md for the sizing table and wording.
创建策略前,说明以下内容:选定的交易者、预算(最低100美元)、策略会镜像该交易者的持仓。提醒相关风险和清算规则。请用户说出**“confirm”**确认创建策略。
参考references/strategy-management.md获取规模设置表格和文案。
Step 4: Create Strategy
步骤4:创建策略
On user confirmation, call MCP with the chosen trader (from Step 2) and budget (minimum $100). On success, show the celebration (see references/next-steps.md — "Celebrate (After First Strategy Created)"): congratulate the user for opening their first strategy, then offer "how's my strategy?", "close my strategy", or "show my positions". Do not show strategy status or raw IDs.
strategy_createUpdate state per references/strategy-management.md: set , (strategyId, mirroredTraderId, etc.), and set , , . On failure, see references/error-handling.md.
firstTrade.step: "STRATEGY_CREATED"tradeDetailsfirstTrade.completed: truefirstTrade.step: "COMPLETE"firstTrade.completedAt收到用户确认后,调用MCP ,传入步骤2选定的交易者和预算(最低100美元)。创建成功后,展示庆祝提示(参考references/next-steps.md — “首次策略创建后庆祝”):恭喜用户开通首个策略,然后提供选项:“我的策略怎么样?”、“关闭我的策略”或“展示我的持仓”。不要展示策略状态或原始ID。
strategy_create按照references/strategy-management.md更新状态:设置、(strategyId、mirroredTraderId等),同时设置、、。如果创建失败,参考references/error-handling.md处理。
firstTrade.step: "STRATEGY_CREATED"tradeDetailsfirstTrade.completed: truefirstTrade.step: "COMPLETE"firstTrade.completedAtStep 5: Monitor Strategy
步骤5:监控策略
When user asks "how's my strategy?" or similar, fetch data via MCP: , , or for open positions. Show strategy value, open positions (if any), unrealized PnL, ROE. Offer: Hold, Close strategy, or Add protection. Do not show a separate congratulations here — that was already shown when they created their first strategy (Step 4).
strategy_getstrategy_get_clearinghouse_stateexecution_get_open_position_details当用户询问“我的策略怎么样?”或类似问题时,通过MCP调用接口获取数据:、**或**查询未平仓持仓。展示策略价值、未平仓持仓(如有)、浮动盈亏、净资产收益率。提供选项:持有、关闭策略、添加保护。不要在此处单独展示祝贺信息 — 首次创建策略时(步骤4)已经展示过了。
strategy_getstrategy_get_clearinghouse_stateexecution_get_open_position_detailsStep 6: Close Strategy
步骤6:关闭策略
When user says "close", "exit", "close my strategy", "take profit", etc., call MCP with the strategy ID from state. Tell the user the strategy is closed and show realized PnL, duration, and fees in plain language. Show the "After Close" result and next steps from references/next-steps.md (no separate congratulations — already shown when they created the strategy). Do not mention strategy status or internal codes. Update state (STRATEGY_CLOSE, tradeDetails with closedAt, pnl, etc.). See references/strategy-management.md.
strategy_close当用户说出“close”、“exit”、“关闭我的策略”、“止盈”等指令时,调用MCP ,传入状态中存储的策略ID。告知用户策略已关闭,用平实语言展示已实现盈亏、持仓时长和手续费。展示references/next-steps.md中的“关闭后”结果和后续步骤(不要单独展示祝贺信息 — 创建策略时已经展示过)。不要提及策略状态或内部代码。更新状态(STRATEGY_CLOSE、tradeDetails补充closedAt、pnl等字段),参考references/strategy-management.md。
strategy_closeStep 7: After Close — Result & Next Steps
步骤7:关闭后 — 结果和后续步骤
When the user has closed their strategy (Step 6), the result and next steps are shown there. No separate celebration step — state was already set to and when they created their first strategy (Step 4). Full "After Close" copy: references/next-steps.md. State shape: references/strategy-management.md.
READYfirstTrade.completed用户关闭策略后(步骤6),直接在该步骤展示结果和后续步骤。没有单独的庆祝步骤 — 首次创建策略时(步骤4)状态已经设为且已标记为true。完整的“关闭后”文案参考:references/next-steps.md。状态结构参考:references/strategy-management.md。
READYfirstTrade.completedInterrupted Tutorial / Resume
教程中断/恢复
If the user returns mid-tutorial, read firstTrade.step from state and resume from the matching step. See references/next-steps.md for resume logic. Resume message must be user-friendly only — e.g. "You were in the middle of your first trade. Here’s where we left off…" Do not mention step names (INTRODUCTION, DISCOVERY, STRATEGY_CREATED, etc.) or state.
如果用户在教程中途返回,从状态中读取firstTrade.step,从对应的步骤恢复流程。参考references/next-steps.md获取恢复逻辑。恢复提示必须仅使用友好的用户向语言 — 例如“你之前正在进行首次交易,我们从上次中断的地方继续…”。不要提及步骤名称(INTRODUCTION、DISCOVERY、STRATEGY_CREATED等)或状态。
Reference Files
参考文件
- references/error-handling.md — Insufficient balance, strategy_create failed, strategy_close failed, recovery
- references/discovery-guide.md — discovery_get_top_traders, recommend a trader to mirror, display template
- references/strategy-management.md — Strategy sizing, strategy_create/strategy_close flow, state updates for firstTrade
- references/next-steps.md — Celebration (after first strategy created), after close, skip tutorial, resume handling
- references/error-handling.md — 余额不足、strategy_create失败、strategy_close失败、故障恢复
- references/discovery-guide.md — discovery_get_top_traders、推荐镜像交易者、展示模板
- references/strategy-management.md — 策略规模设置、strategy_create/strategy_close流程、firstTrade相关状态更新
- references/next-steps.md — 庆祝(首次策略创建后)、关闭后流程、跳过教程、恢复逻辑
Installation
安装
bash
npx skills add Senpi-ai/senpi-skills/senpi-getting-started-guideOr manually:
bash
mkdir -p ~/.senpi/skills/senpi-getting-started-guide
curl -sL "https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/senpi-getting-started-guide/SKILL.md" \
-o ~/.senpi/skills/senpi-getting-started-guide/SKILL.mdbash
npx skills add Senpi-ai/senpi-skills/senpi-getting-started-guide或者手动安装:
bash
mkdir -p ~/.senpi/skills/senpi-getting-started-guide
curl -sL "https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/senpi-getting-started-guide/SKILL.md" \\
-o ~/.senpi/skills/senpi-getting-started-guide/SKILL.mdCopy references/ into the same skill directory
Copy references/ into the same skill directory
undefined",