← 返回 Skills 市场
infra403

Twitter To Binance Square

作者 infra403 · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
8487
总下载
1
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install 6551-twitter-to-binance-square
功能描述
Auto-mirror Twitter/X content to Binance Square. Monitors specified Twitter accounts or topics, fetches new tweets, transforms content, and posts to Binance...
使用说明 (SKILL.md)

Twitter to Binance Square Auto-Mirror Skill

Overview

Automatically fetch tweets from specified Twitter accounts or keyword searches, transform the content for Binance Square, and post them. Designed for building automation pipelines with configurable polling intervals and deduplication.


Prerequisites

Item Description How to get
TWITTER_TOKEN 6551 API Bearer token 访问 https://6551.io/mcp 注册获取
SQUARE_API_KEY Binance Square OpenAPI Key 登录币安 → 访问 创作者中心 → 页面右侧「查看 API」申请

Core Workflow

┌─────────────────────────────────────────────┐
│  1. FETCH: Get tweets from Twitter/X        │
│     - By account: monitor specific users    │
│     - By topic: keyword/hashtag search      │
├─────────────────────────────────────────────┤
│  2. FILTER: Deduplicate & quality check     │
│     - Skip already-posted tweet IDs         │
│     - Skip retweets / replies (optional)    │
│     - Min engagement threshold (optional)   │
├─────────────────────────────────────────────┤
│  3. TRANSFORM: Adapt content for Square     │
│     - Add source attribution                │
│     - Translate if needed                   │
│     - Add relevant #hashtags               │
│     - Trim to Square length limits          │
├─────────────────────────────────────────────┤
│  4. POST: Publish to Binance Square         │
│     - Call Square API                       │
│     - Record posted tweet ID               │
│     - Log post URL                          │
├─────────────────────────────────────────────┤
│  5. WAIT: Sleep for configured interval     │
│     - Default: 300 seconds (5 minutes)      │
│     - Respect daily post limits             │
└─────────────────────────────────────────────┘

API Reference

Step 1: Fetch Tweets

Option A: Monitor Specific Account

curl -s -X POST "https://ai.6551.io/open/twitter_user_tweets" \
  -H "Authorization: Bearer $TWITTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "TARGET_USERNAME",
    "maxResults": 10,
    "product": "Latest",
    "includeReplies": false,
    "includeRetweets": false
  }'

Option B: Monitor Topic/Keywords

curl -s -X POST "https://ai.6551.io/open/twitter_search" \
  -H "Authorization: Bearer $TWITTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": "TOPIC_KEYWORDS",
    "minLikes": 50,
    "product": "Top",
    "maxResults": 10,
    "lang": "en"
  }'

Option C: Monitor Hashtag

curl -s -X POST "https://ai.6551.io/open/twitter_search" \
  -H "Authorization: Bearer $TWITTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hashtag": "bitcoin",
    "minLikes": 100,
    "product": "Top",
    "maxResults": 10
  }'

Step 2: Post to Binance Square

curl -s -X POST "https://www.binance.com/bapi/composite/v1/public/pgc/openApi/content/add" \
  -H "X-Square-OpenAPI-Key: $SQUARE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "clienttype: binanceSkill" \
  -d '{
    "bodyTextOnly": "TRANSFORMED_CONTENT"
  }'

Content Transformation Rules

When transforming a tweet for Binance Square, apply the following rules:

Template Format

{transformed_content}

Source: @{username} on X              ← optional (show_source=true)
Publish by using 6551 twitter mirror tool   ← default enabled (show_tool_attribution=true)
{#hashtag1} {#hashtag2} {#hashtag3}

Transformation Steps

  1. Extract core message: Keep the tweet's main content
  2. Remove Twitter-specific elements: Remove @mentions (except source attribution), remove t.co links
  3. Tool attribution (default): Append Publish by using 6551 twitter mirror tool — controlled by show_tool_attribution (default: true)
  4. Source attribution (optional): Credit the original author with Source: @username on X — controlled by show_source (default: true)
  5. Preserve hashtags: Keep original hashtags, add relevant crypto hashtags if missing
  6. Language handling: If translate is enabled, translate to the target language while preserving technical terms
  7. Length check: Binance Square has content length limits; trim if needed (keep under 2000 chars)

Example Transformation

Original Tweet by @VitalikButerin:

Excited about the new EIP-4844 progress. Proto-danksharding will reduce L2 fees by 10-100x.
This is huge for Ethereum scalability. https://t.co/xxx

Transformed for Binance Square (show_source=true, show_tool_attribution=true):

Vitalik Buterin 对 EIP-4844 的最新进展感到兴奋。Proto-danksharding 将把 L2 费用降低 10-100 倍,这对以太坊的可扩展性意义重大。

Source: @VitalikButerin on X
Publish by using 6551 twitter mirror tool
#Ethereum #EIP4844 #L2 #Crypto

Transformed for Binance Square (show_source=false, show_tool_attribution=true):

Vitalik Buterin 对 EIP-4844 的最新进展感到兴奋。Proto-danksharding 将把 L2 费用降低 10-100 倍,这对以太坊的可扩展性意义重大。

Publish by using 6551 twitter mirror tool
#Ethereum #EIP4844 #L2 #Crypto

Configuration Schema

The automation script uses a JSON config file (see mirror_config.example.json):

{
  "mode": "account",
  "accounts": ["VitalikButerin", "cabornedefi"],
  "keywords": "",
  "hashtag": "",
  "poll_interval_seconds": 300,
  "min_likes": 0,
  "min_retweets": 0,
  "max_posts_per_run": 5,
  "include_replies": false,
  "include_retweets": false,
  "translate": false,
  "translate_to": "zh",
  "content_template": "{content}\
\
{source_attribution}\
{tool_attribution}\
{hashtags}",
  "show_source": true,
  "show_tool_attribution": true,
  "add_hashtags": ["Crypto", "Web3"],
  "state_file": "mirror_state.json",
  "dry_run": false
}

Config Fields

Field Type Default Description
mode string "account" "account" = monitor users, "search" = keyword search, "hashtag" = hashtag search
accounts string[] [] Twitter usernames to monitor (mode=account)
keywords string "" Search keywords (mode=search)
hashtag string "" Hashtag to monitor (mode=hashtag)
poll_interval_seconds int 300 Seconds between each polling cycle
min_likes int 0 Minimum likes to qualify for mirroring
min_retweets int 0 Minimum retweets to qualify
max_posts_per_run int 5 Max posts per polling cycle
include_replies bool false Include reply tweets
include_retweets bool false Include retweets
translate bool false Translate content before posting
translate_to string "zh" Target language for translation
content_template string see above Template for Square post content
show_source bool true Show Source: @username on X attribution
show_tool_attribution bool true Show Publish by using 6551 twitter mirror tool
add_hashtags string[] [] Extra hashtags to append
state_file string "mirror_state.json" File to track posted tweet IDs
dry_run bool false If true, print content but don't post

State Management

The script maintains a mirror_state.json to track posted tweets:

{
  "posted_tweet_ids": ["1234567890", "1234567891"],
  "last_poll_time": "2026-03-07T10:00:00Z",
  "post_count_today": 5,
  "last_reset_date": "2026-03-07",
  "post_log": [
    {
      "tweet_id": "1234567890",
      "square_post_id": "298177291743282",
      "square_url": "https://www.binance.com/square/post/298177291743282",
      "username": "VitalikButerin",
      "posted_at": "2026-03-07T10:05:00Z"
    }
  ]
}

Error Handling

Scenario Action
Twitter API fails Log error, retry next cycle
Square API returns 20002/20022 (sensitive words) Log & skip this tweet, continue
Square API returns 220009 (daily limit, max 100 posts/day) Stop posting, wait until next day
Square API returns 220004 (key expired) Stop and alert user
Tweet already posted (duplicate ID) Skip silently
Network error Retry with exponential backoff (max 3 retries)

Agent Behavior

  1. Verify credentials first: Check both TWITTER_TOKEN and SQUARE_API_KEY exist before starting
  2. Prompt for missing config: If mode/accounts/keywords not specified, ask the user
  3. Show preview before first post: On the first run, show the first transformed tweet and ask for confirmation
  4. Respect rate limits: Honor poll_interval_seconds and max_posts_per_run
  5. Daily limit awareness: Track daily post count, stop when approaching Binance Square daily limit
  6. Deduplication: Never post the same tweet ID twice (persisted in state_file)
  7. Graceful shutdown: On interrupt, save state before exiting
  8. Logging: Print each action (fetch, skip, transform, post) with timestamps
  9. Run script via: python3 scripts/auto_mirror.py

Usage Examples

Example 1: Mirror a specific KOL's tweets

User: Mirror VitalikButerin's tweets to my Binance Square
Agent: I'll set up auto-mirroring for @VitalikButerin → Binance Square.

Config:
- Mode: account
- Account: VitalikButerin
- Poll interval: 5 minutes
- Translate: No

Let me fetch the latest tweets first to preview...

[Fetches and shows latest tweet]

Here's how the first post would look on Binance Square:

---
Excited about the new EIP-4844 progress...

Source: @VitalikButerin on X
Publish by using 6551 twitter mirror tool
#Ethereum #Crypto
---

Shall I start the auto-mirror with these settings?

Example 2: Mirror tweets about a trending topic

User: Auto-post trending Bitcoin tweets to Binance Square, minimum 500 likes
Agent: I'll monitor Twitter for popular Bitcoin tweets and mirror them to Binance Square.

Config:
- Mode: search
- Keywords: "bitcoin"
- Min likes: 500
- Poll interval: 10 minutes

Starting monitor...

Example 3: Run as automated script

# Set environment variables
export TWITTER_TOKEN="your_6551_token"
export SQUARE_API_KEY="your_square_key"

# Run with config file
python3 scripts/auto_mirror.py --config mirror_config.json

# Run with CLI args
python3 scripts/auto_mirror.py \
  --mode account \
  --accounts VitalikButerin,elonmusk \
  --interval 300 \
  --translate \
  --translate-to zh

Security

  • Never display full API keys: Show masked as abc12...xyz9
  • State file contains no secrets: Only tweet IDs and post logs
  • Environment variables for secrets: Never store keys in config files

Notes

  1. Binance Square 每日最多发帖 100 条 — the script tracks and respects this limit
  2. Content may be flagged as sensitive by Binance — those tweets are skipped automatically
  3. The 6551 API has rate limits — max 100 results per request
  4. Always attribute the original author to comply with content policies
安全使用建议
Install only if you intentionally want unattended Twitter/X-to-Binance Square publishing. Start with --dry-run and --once, use narrow accounts or keywords, keep max_posts_per_run low, use revocable API keys, and monitor or remove any background or cron job you create.
能力评估
Purpose & Capability
The stated purpose matches the implementation: fetch Twitter/X content through 6551, transform it, and post it to Binance Square. The concern is the high-impact capability of automated public posting under the user’s Binance Square identity.
Instruction Scope
The skill includes broad auto-run phrases and documents continuous mirroring. SKILL.md says the agent should preview and ask before first posting, but scripts/auto_mirror.py does not enforce a confirmation gate and defaults dry_run to false.
Install Mechanism
No package install, dependency bootstrap, obfuscation, or installer behavior was found. The artifact consists of documentation, a JSON config example, and a Python standard-library script.
Credentials
TWITTER_TOKEN and SQUARE_API_KEY are disclosed and purpose-aligned, and the script uses them only for the documented 6551 and Binance Square endpoints. Users still need to treat these as posting-capable credentials.
Persistence & Privilege
The script writes a local state file for deduplication, which is expected. The README also documents nohup, PowerShell background execution, and cron use, so publishing can continue until the user stops the process or scheduled job.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install 6551-twitter-to-binance-square
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /6551-twitter-to-binance-square 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release of the Twitter to Binance Square Auto-Mirror Skill. - Automatically fetches and transforms tweets from specified Twitter accounts, hashtags, or keywords. - Posts transformed tweets to Binance Square, with support for deduplication and configurable intervals. - Provides robust content transformation (translation, hashtag management, tool/source attribution). - Includes a flexible JSON configuration schema and state file for managing posted tweets. - Supports command-based invocation for easy automation.
元数据
Slug 6551-twitter-to-binance-square
版本 0.1.0
许可证
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Twitter To Binance Square 是什么?

Auto-mirror Twitter/X content to Binance Square. Monitors specified Twitter accounts or topics, fetches new tweets, transforms content, and posts to Binance... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 8487 次。

如何安装 Twitter To Binance Square?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install 6551-twitter-to-binance-square」即可一键安装,无需额外配置。

Twitter To Binance Square 是免费的吗?

是的,Twitter To Binance Square 完全免费(开源免费),可自由下载、安装和使用。

Twitter To Binance Square 支持哪些平台?

Twitter To Binance Square 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Twitter To Binance Square?

由 infra403(@infra403)开发并维护,当前版本 v0.1.0。

💬 留言讨论