twitter-to-binance-square

安装量: 61
排名: #12144

安装

npx skills add https://github.com/6551team/6551-twitter-to-binance-square --skill twitter-to-binance-square
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.
Automation script:
scripts/auto_mirror.py
Config template:
mirror_config.example.json
Usage guide:
README.md
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
Extract core message
Keep the tweet's main content
Remove Twitter-specific elements
Remove @mentions (except source attribution), remove t.co links
Tool attribution (default)
Append
Publish by using 6551 twitter mirror tool
— controlled by
show_tool_attribution
(default: true)
Source attribution (optional)
Credit the original author with
Source: @username on X
— controlled by
show_source
(default: true)
Preserve hashtags
Keep original hashtags, add relevant crypto hashtags if missing
Language handling
If
translate
is enabled, translate to the target language while preserving technical terms
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}\n\n{source_attribution}\n{tool_attribution}\n{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
Verify credentials first
Check both
TWITTER_TOKEN
and
SQUARE_API_KEY
exist before starting
Prompt for missing config
If mode/accounts/keywords not specified, ask the user
Show preview before first post
On the first run, show the first transformed tweet and ask for confirmation
Respect rate limits
Honor poll_interval_seconds and max_posts_per_run
Daily limit awareness
Track daily post count, stop when approaching Binance Square daily limit
Deduplication
Never post the same tweet ID twice (persisted in state_file)
Graceful shutdown
On interrupt, save state before exiting
Logging
Print each action (fetch, skip, transform, post) with timestamps 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 Binance Square 每日最多发帖 100 条 — the script tracks and respects this limit Content may be flagged as sensitive by Binance — those tweets are skipped automatically The 6551 API has rate limits — max 100 results per request Always attribute the original author to comply with content policies
返回排行榜