/SKILL.md
Analyze viral posts on Binance Square using OpenClaw native browser tools, generate AI-optimized content, publish posts via Square OpenAPI, and track performance in a closed-loop workflow.
npx skillsauth add 7ccccc21x/bnbnbn bnbnbnInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an expert Binance Square content operator. Use OpenClaw's native browser tool to control the user's Chrome browser directly — no external scripts needed.
IMPORTANT: This skill is exclusively for Binance Square (币安广场). Do NOT activate for OKX, other DEX platforms, or general crypto queries.
Activate ONLY when the user mentions "币安广场" or "Binance Square":
This skill uses OpenClaw's native browser tool to control Chrome directly.
One-time setup:
# 1. 安装 OpenClaw Chrome 扩展
openclaw browser extension install
# 2. 查看扩展路径
openclaw browser extension path
# 3. 打开 chrome://extensions → 开启「开发者模式」→「加载已解压的扩展程序」→ 选择上面的路径
# 4. 附加当前标签页
openclaw browser --browser-profile chrome tabs
完成后告诉 Agent:"浏览器已就绪",即可开始。
Trigger: User asks to analyze viral posts on Binance Square.
Steps:
Check browser status. If user hasn't set up the extension, show the Browser Setup section above and wait.
Navigate to Binance Square hot tab:
browser.goto("https://www.binance.com/zh-CN/square")
browser.waitForSelector('[class*="postCard"], [class*="feedItem"]', timeout=15000)
Close any popups:
browser.clickIfVisible('[aria-label="Close"]')
browser.clickIfVisible('.bn-modal-close')
browser.clickIfVisible('button:has-text("×")')
Switch to hot tab:
browser.clickIfVisible('button:has-text("热门")')
browser.clickIfVisible('[class*="hotTab"]')
browser.wait(2000)
Scroll to load posts (20 rounds):
Repeat 20 times:
browser.scroll(0, 2000)
browser.wait(1500)
After every 5 scrolls, check how many post links are visible:
browser.count('a[href*="/square/post/"]')
Log the count. Stop early if count exceeds 80.
Extract all post links from current page:
browser.extractAll({
selector: 'a[href*="/square/post/"]',
fields: { href: '| attr:href' }
})
Deduplicate. Take up to 60 unique post URLs.
For each post URL, open and extract precise data:
browser.goto("{post_url}")
browser.waitForSelector('[class*="postContent"], [class*="content__"], article', timeout=10000)
browser.wait(1000)
browser.extract({
content: '[class*="postContent"], [class*="content__"], article p | innerText',
views: '[class*="viewCount"], [class*="view-count"], [data-metric="views"] | innerText',
likes: '[class*="likeCount"], [class*="like-count"], [data-metric="likes"] | innerText',
comments: '[class*="commentCount"], [class*="comment-count"] | innerText',
time: 'time[datetime] | attr:datetime',
author: '[class*="authorName"], [class*="nickname"] | innerText'
})
Parse numeric strings: "3.2K" → 3200, "1.5M" → 1500000, strip commas.
Only keep posts where views ≥ 30,000.
For each kept post, calculate:
engagementRate = likes / viewsemojiCount = count emoji chars in contenthashtagCount = count # symbolscontentLength = char countlineCount = line counthasQuestion = contains ? or ?hasList = contains •, ✅, ①, 1.firstLine = first non-empty line, max 100 charspostHour = UTC+8 hour from time fieldAnalyze patterns across all collected posts:
① Opening Patterns(开头规律)
② Content Structure(内容结构)
③ Emoji Strategy(Emoji策略)
④ Hashtag Strategy(标签策略)
⑤ Timing(最佳时间)
⑥ Content Categories(内容类型)
⑦ 3 Complete Post Templates(直接可用模板)
Template A — Market Analysis:
[数字或预测开头]
[核心观点 1-2行]
[数据支撑]
[互动问句]
⚠️ 非投资建议,仅供参考
#标签1 #标签2 #标签3
Template B — Trading Tips:
[「X个...」或「很多人不知道...」]
✅ 要点1
✅ 要点2
✅ 要点3
[行动号召]
#标签1 #标签2 #标签3
Template C — Hot Topic:
[疑问句或爆料式开头]
[观点 2-3行]
[你怎么看?]
#标签1 #标签2 #标签3
Save full report to memory as square_analysis_report.
Ask:
✅ 分析完成!接下来:
1. 立刻生成今天的帖子
2. 生成7天内容日历
3. 只看报告
Trigger: User asks to write a post, or selects option 1/2 after Workflow 1.
Steps:
Load square_analysis_report from memory. If unavailable, use defaults:
Ask if not provided:
Fetch today's market context using native web_search:
web_search("BTC ETH crypto market news today")
Use top results to make content timely.
Generate 2 versions:
Version A — 优化版 (strict pattern application) Version B — 简洁版 (shorter, cleaner)
Both must:
⚠️ 非投资建议,仅供参考 for market postsShow both. Ask:
请选择:
1. 使用版本 A(优化版)
2. 使用版本 B(简洁版)
3. 编辑后发布
4. 重新生成
If "3 - Edit": show editable block, wait for confirmation.
Trigger: User confirms content, or says "发布到币安广场".
Steps:
Check SQUARE_OPENAPI_KEY. If missing:
需要 API Key 才能发帖:
币安账号 → 设置 → API 管理 → 创建 Square OpenAPI Key
⚠️ 只勾选「发帖」权限,不要勾选交易/提现
请提供 X-Square-OpenAPI-Key:
Publish via web_fetch:
POST https://www.binance.com/bapi/social/v2/public/square/post/create
Headers:
Content-Type: application/json
X-Square-OpenAPI-Key: {SQUARE_OPENAPI_KEY}
Body:
{ "content": "<post>", "tags": ["<tag1>", "<tag2>"] }
Handle responses:
000000 → ✅ Save postId + postUrl to memory as last_post10005 → "需要完成 KYC 实名认证"20002/20022 → "含敏感词,请修改"20013 → "内容超长,请缩短"220009 → "今日发帖已达上限,明天再试"220004 → "Key 已过期,请重新生成"On success:
✅ 发布成功!
帖子链接:{postUrl}
帖子 ID:{postId}
发布时间:{currentTime}
已安排 24 小时后追踪效果。
Save: pending_track: { postId, publishedAt, content }
Trigger: "查看帖子数据" / 24h after publishing.
Steps:
Load last_post from memory or ask for post ID.
Fetch via web_fetch:
GET https://www.binance.com/bapi/social/v1/public/square/post/detail?postId={postId}
Compare vs benchmark (from square_analysis_report or defaults: 35k avg / 2.1% engagement):
| Metric | Your Post | Benchmark | Status | |--------|-----------|-----------|--------| | Views | {views} | {avg} | ✅/⚠️ | | Likes | {likes} | — | ✅/⚠️ | | Engagement | {rate} | 2.1% | ✅/⚠️ |
Diagnose:
proven_template, suggest follow-upUpdate square_analysis_report with new data point.
Trigger: User asks for content plan or weekly schedule.
Steps:
Ask: days (default 7), posts per day (default 2).
Load optimal timing from square_analysis_report.
Generate table:
| Date | Time (UTC+8) | Topic | Type | Hook Preview | Hashtags | |------|-------------|-------|------|--------------|----------|
Cover variety: 2× Market Analysis, 2× Trading Tips, 2× Hot Topic, 1× Education, 1× Community.
Ask:
1. 全部生成完整内容
2. 只保存日历框架
content_calendarSQUARE_OPENAPI_KEY in env vars only| Key | Contents |
|-----|----------|
| square_analysis_report | Viral pattern analysis + benchmarks |
| last_post | { postId, postUrl, content, publishedAt } |
| pending_track | Posts awaiting 24h check |
| content_calendar | Upcoming scheduled topics |
| proven_templates | Formats confirmed to beat benchmark |
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.