
academy-skill
Retrieve Binance Academy's official educational content (Glossary, Courses, Learn & Earn, Articles) for AI chat. Trigger when the user's message expresses one of these INTENTS (NOT keyword matches): (1) Knowledge Q&A — "What is Gas Fee?", "Why did I receive less crypto than I sent?", "How does staking work?" (2) Risk Education — high-risk trading/investment intent: leverage, borrowing to trade, all-in, scams, "20x long", "borrowing to amplify position" (3) Customized Learning Plan — "I want to learn DeFi", "Build me a 5-day Bitcoin plan", "DeFi learning path for beginners" (4) Learn & Earn — "Which Academy courses have rewards?", "一文读懂 X", "What is X (TICKER)?", "courses that pay crypto" This skill extracts clean query terms from natural language before calling the API. It NEVER gives investment advice — educational content only.
- Installs
- 855
- Last 24h
- +177
- Trending rank
- #1354
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/binance/binance-skills-hub --skill academy-skill- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads academy-skill automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Binance Academy AI Skill
Intent-driven educational content skill. Retrieve Glossary / Courses / Learn & Earn / Articles from Binance Academy, present as concise paraphrased answers with Academy links. Never investment advice.
When to Use
| Intent | Trigger examples | Primary tool |
|---|---|---|
| 1. Knowledge Q&A | "What is X?", "Why does X happen?", "How does X work?" | searchAll (parallel) |
| 2. Risk Education | leverage / borrowing / all-in / scams / "20x long" / "borrowing to trade" | searchAll + risk-warning block |
| 3. Learning Plan | "I want to learn X", "X learning path", "build me a plan for X" | getLearningPlan |
| 4. Learn & Earn | "Which courses have rewards?", "一文读懂 X", "What is X (TICKER)?" | searchLearnEarn or searchAll |
Do NOT trigger for: account/login issues, trading execution ("buy 1 BTC now"), price checks ("what's BTC price"), or small talk.
For ambiguous intent cases (e.g., "什么是 X" vs "20x 杠杆是什么" vs "20x
杠杆可以吗"), see references/intent-routing.md.
How to Use
1. Detect user language → lang code
Default: zh for Simplified Chinese, en for English. Full 35-code list
in references/languages.md.
2. Pick intent + call the script
All examples use prod (the only supported env). ACADEMY_SKILL_DIR =
this skill's root directory (resolved by the runtime when the skill loads).
# Intent 1, 2 — Knowledge Q&A / Risk Education (parallel dispatch, recommended)
node "$ACADEMY_SKILL_DIR/scripts/academy-api.mjs" prod searchAll \
'{"query":"gas fee","lang":"en","limit":3}'
# Intent 3 — Learning Plan (use a clean topic noun, NOT the full sentence)
node "$ACADEMY_SKILL_DIR/scripts/academy-api.mjs" prod getLearningPlan \
'{"query":"DeFi","lang":"en","limit":3}'
# Intent 4 Pattern A — explicit reward question
node "$ACADEMY_SKILL_DIR/scripts/academy-api.mjs" prod searchLearnEarn \
'{"query":"reward","lang":"en","limit":5}'
# Intent 4 Pattern B — L&E title format (searchAll catches L&E + verifies)
node "$ACADEMY_SKILL_DIR/scripts/academy-api.mjs" prod searchAll \
'{"query":"What is Turtle (TURTLE)?","lang":"en","limit":3}'
searchAll response — use these fields, ignore the rest:
best.source— which endpoint won (glossary/learnEarn/resource/articles/null)best.items[0]— the top hit to format (already reordered by match quality)best.matchTier(0–3) — match-quality band:>= 2→ good match, format the card. Tier 2 is reliable: structured sources (glossary/learnEarn/resource) whose title is a true superset of the query (adds a concept noun, e.g.smart contract→ "Smart Contract Wallet") are demoted to tier 1 in code, so a tier-2 hit is either a clean multi-token title match or an articles long-form match.<= 1→ weak match, retry with a clean English keyword (samelang)-1(best.source == null) → no hits, use No-Content template
glossary/learnEarn/resourcearrays — used to generate the "Next Step" suggestion; do NOT make extra API calls for itarticlesLangFallback—trueonly when the user explicitly passed a non-emptylangthat the articles endpoint does not support (so articles fell back to English); translate the distilled article back to the user's language.falsewhenlangwas omitted/empty (no user language to translate to).
Query strategy — language-dependent default.
-
English (and other Latin-script languages): raw input first. Send the user's raw input as
query(the script pre-processes: trim, strip control chars, truncate to 200 chars). Only extract clean keywords when raw input returnsmatchTier <= 0orbest.source == null. Don't lowercase or translate upfront. Full fallback heuristics inreferences/query-extraction.md. -
Chinese and other CJK: extract keyword first. CJK raw sentences almost never hit — a 20-question zh sample showed 0/20 reached tier ≥ 2.
plainto_tsquery('simple', ...)does no CJK word segmentation and ANDs every token (including question words like "什么是"), so a CJK sentence rarely matches a short Academy title. Default to extracting the topic noun + translating to its canonical English term BEFORE the firstsearchAllcall — do NOT first try the raw sentence and then fall back (that wastes a fullsearchAllround-trip on a near-guaranteedtier <= 1, and "default strategy never effective for CJK" is exactly the problem this fixes). Seereferences/query- extraction.md§4 for the translation table.- Exception — bare CJK concept noun with no question words (钱包,
智能合约, 工作量证明, 区块链): send it raw. Single-token CJK concept
nouns DO hit (tier 3) when the Academy has the translated glossary
entry, and skipping raw for them would lose the cleanest match. If
the raw noun returns
tier <= 1or off-topic, fall back to the English translation. - How to tell a sentence from a bare noun: if the input contains question/intent words (什么是 / 如何 / 为什么 / 可以吗 / 行吗 / 是不是 / "is it safe" / "should I"), it's a sentence → extract keyword first. If it's a noun or noun phrase with no question words, it's a bare concept → try raw.
- Exception — bare CJK concept noun with no question words (钱包,
智能合约, 工作量证明, 区块链): send it raw. Single-token CJK concept
nouns DO hit (tier 3) when the Academy has the translated glossary
entry, and skipping raw for them would lose the cleanest match. If
the raw noun returns
-
For risk-education Chinese queries, skip straight to the Risk-Education Term Map in
references/query-extraction.md— the raw sentence almost never hits and the correct fallback term is rarely the literal translation (e.g. 杠杆 →强制平仓(zh) ormargin trading(en), NOTleverage).
Intent 3 needs a clean topic noun upfront. getLearningPlan with full
sentences like "I want to learn DeFi" rarely matches Module titles — extract
DeFi first. Intent 4 Pattern B (L&E title format) is the opposite — raw
input usually matches the L&E course title directly.
3. Format the output
Output direct markdown — no PRD table, no Response: / Button: /
Next Step: labels. The LLM is a chat assistant; the user wants answers,
not a form.
Every reply MUST:
- Answer in the user's language (Chinese question → Chinese prose). If
articlesLangFallback == trueandbest.source == "articles", translate the distilled English article back to the user's language. - Include at least one Academy URL from the API response
(
pageUrl/courseUrl/moduleUrl/visitUrl). Never invent URLs. - Paraphrase, never paste. Use
excerpt/title/subTitle/brief/bodyTextOnlyas source. For longcontentHTML, use the script'sstripHtmlhelper:node -e "import('$ACADEMY_SKILL_DIR/scripts/academy-api.mjs').then(m=>console.log(m.stripHtml('<p>...</p>')))" - Articles (when
best.source == "articles"): distillbodyTextOnly(often 5K–50K chars) into 2–4 sentences that answer the user's query. Never paste raw body. Never reproduce the article's section structure. - Risk scenarios (Intent 2): always include a ⚠️ disclaimer block (see template below).
Missing-URL degradation (when best.items[0] has no usable URL). A
top-1 article with no visitUrl (and no articlePath to fall back to)
happens ~27% of the time — some searchArticles hits are not in the
public v2 search index, so all 3 resolution levels return empty. Since
rule 2 requires at least one Academy URL and rule "Never invent URLs"
forbids fabrication, this is a no-URL deadlock for the top-1 item.
Resolve it with this degradation ladder — pick the first option that
yields a usable URL, and use that item's content for the card body:
best.items[1..]— the runner-up articles in the samebest.itemsarray. They are usually the same concept, one rank lower.- Other sources' top items —
glossary[0],learnEarn[0],resource[0](whichever has a non-emptypageUrl). These are definitional/structured content, often a good alternative answer. - No-Content template — if NO item across any source has a usable URL, use the No-Content template (see below). Do NOT present an article whose link is empty — the user cannot click through.
When you degrade to a runner-up / other source, paraphrase THAT item's content (not the original top-1's) so the prose matches the link the user will see. If the top-1 article had the best answer text but no link and a runner-up has a link but weaker text, prefer the runner-up: a clickable weaker answer beats a linkless strong answer (the URL is the Academy attribution that makes the answer trustworthy).
Empty short fields: when excerpt / subTitle / courseDescription
are all null, the title link alone is sufficient — don't add placeholder
text like "Click to view details".
No content (best.source == null): use the No-Content template below.
Don't apologize; pivot to suggestions.
4. Output templates
Full before/after examples in references/output-format.md. Compact forms:
Intent 1 — Knowledge Q&A:
**[<term>](<pageUrl>)**
<2-4 sentence paraphrased definition>
🔗 [<suggestion from searchAll's other sources>](<nextStepUrl>) ← optional, omit if empty
Intent 2 — Risk Education:
**⚠️ <risk pattern>**
<brief answer: what it is, how it works>
**Risk:** <quote from Academy content>
**Example:** <concrete numerical simulation, e.g., "20x leverage: a 5% adverse move can liquidate your position">
Safer next step: learn <topic> first → [<link text>](<pageUrl>)
> ⚠️ Educational content only, not investment advice. Crypto prices are volatile; you may lose your entire principal. Please understand the risks before deciding.
Intent 3 — Learning Plan:
**<topic> · <Difficulty>**
<2-3 sentence overview>
**Day 1:** [Course title](courseUrl)
- [Module title](moduleUrl)
- [Module title](moduleUrl)
**Day 2:** [Course title](courseUrl)
- [Module title](moduleUrl)
Full track: [View learning path](<track pageUrl>)
Day grouping: quick ("快速了解"/"brief") = 1 day, single Course + 3–5
Modules. Default (no signal) = 3 days, one Course/day, top 3–4 Modules
each. Systematic ("系统学习"/"systematically") = 5 days, one Course/day,
2–3 Modules each. Certificate ("证书"/"certificate") = 1 entry per
Course with courseUrl; mention LinkedIn eligibility if known.
(Matches the Day Grouping Guidance table in references/output-format.md.)
Intent 4 — Learn & Earn:
Pattern A (reward list — multiple courses):
**Academy Learn & Earn — Currently claimable rewards**
- [<courseTitle>](<pageUrl>) · 🟢 Active
- [<courseTitle>](<pageUrl>) · 🟢 Active
[View all campaigns](https://www.binance.com/<lang>/academy/learn-and-earn)
Pattern B (single course):
**[<courseTitle>](<pageUrl>)**
<paraphrased courseDescription>
📅 <activityStartDate> ~ <activityEndDate> (UTC+8) · <🟢 Active / 🔴 Fully distributed / ⚪ Ended>
[View all campaigns](https://www.binance.com/<lang>/academy/learn-and-earn)
Status logic: hasReward=="1" && isRewardRunOut!="1" && now<activityEndDate
→ 🟢 Active. isRewardRunOut=="1" → 🔴 Fully distributed. now>activityEndDate
→ ⚪ Ended. When no courses qualify: "No reward courses are currently
claimable. Academy frequently updates the Learn & Earn list — please check
back in a few days."
No-Content template (best.source == null):
Academy doesn't have content for "<query>" yet.
**Suggestions:**
- Try a related term, e.g., "<related term>"
- Try the English equivalent (Academy's English corpus is the largest), e.g., "<English term>"
- Browse [Academy](https://www.binance.com/<lang>/academy) directly
Safety Rules (MANDATORY)
- No investment advice. Never say "you should buy/sell", "this is a good investment".
- No return promises. Never project yields, ROI, or expected gains.
- Risk content must cite Academy. Risk warnings must reference real
excerpt/titlefrom the API response. Don't invent risk statements. - Mandatory disclaimer for risk scenarios. Every Intent 2 reply ends with the ⚠️ disclaimer shown in the Intent 2 template.
- No fabricated URLs. Only use API-returned URLs. If a URL field is null/empty, omit the link rather than guess.
References (loaded on-demand)
| File | When to load |
|---|---|
references/intent-routing.md | Ambiguous intent — need positive/negative examples and tie-breaker rules |
references/query-extraction.md | matchTier <= 0 after first call — need full fallback keyword heuristics |
references/output-format.md | Need full card templates with before/after examples |
references/orchestration.md | Intent 3 — need 3-step orchestration decision tree and edge cases |
references/api-contract.md | Need full request/response schema for all 6 endpoints |
references/languages.md | Need full 35-code lang list or 41 articles-supported codes |
FAQ
What does the academy-skill skill do?
Retrieve Binance Academy's official educational content (Glossary, Courses, Learn & Earn, Articles) for AI chat. Trigger when the user's message expresses one of these INTENTS (NOT keyword matches): (1) Knowledge Q&A — "What is Gas Fee?", "Why did I receive less crypto than I sent?", "How does staking work?" (2) Risk Education — high-risk trading/investment intent: leverage, borrowing to trade, all-in, scams, "20x long", "borrowing to amplify position" (3) Customized Learning Plan — "I want to learn DeFi", "Build me a 5-day Bitcoin plan", "DeFi learning path for beginners" (4) Learn & Earn — "Which Academy courses have rewards?", "一文读懂 X", "What is X (TICKER)?", "courses that pay crypto" This skill extracts clean query terms from natural language before calling the API. It NEVER gives investment advice — educational content only.
How do I install academy-skill?
Run npx skills add https://github.com/binance/binance-skills-hub --skill academy-skill in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/academy-skill/ (personal) or .claude/skills/academy-skill/ (project).
Which AI agents can use academy-skill?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is academy-skill safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains academy-skill?
It is published by binance in binance/binance-skills-hub. It has 855 recorded installs.
More from binance/binance-skills-hub
square-post
binance/binance-skills-hub
Use when the user wants to publish new content to Binance Square — short text, multi-image posts (up to 4), long-form articles with an optional cover, or videos with an auto-generated cover frame. Trigger on direct phrasings like "post to Square", "publish to Binance Square", "发广场", "发布到广场", and on near-miss intents where the user clearly wants to share or publish content on Square even without naming the skill: "share this analysis on Square", "把这篇文章发出去", "发个动态", "把这个视频上传到广场", "publish my chart to Square as an article". Also use when the user provides media (images, video) plus a caption and asks to push it to Square, or asks to turn a draft into a Square article. Do not use for reading, searching, commenting, liking, editing, deleting, scheduling, or managing existing Square posts — this skill only creates new posts.
binance-agentic-wallet
binance/binance-skills-hub
Use when the user mentions wallet connect/sign in/sign out, check balance, send/transfer tokens, swap/buy/sell tokens, DEX trade, limit/market order, cancel order, get a quote, transaction history, wallet settings, daily limit, slippage, MEV protection, supported chains, send to ENS domain, send to .eth or .bnb name, resolve domain name to address, domain-based transfer, send to .ai Agent ID name, Agent ID claim status, whether I claimed my .ai space id / Agent ID, get my .ai domain, prediction market, place prediction, redeem winnings, prediction PnL, x402 payment, HTTP 402 Payment Required, check/revoke/manage token approvals, DeFi protocols, staking, liquidity pool, LP, yield farming, deposit, redeem, stake, unstake, claim rewards/fees, health factor, APY, TVL, sign external transaction, contract call, sign message, EIP-712, developer mode, speed up/cancel/replace transaction, pending/stuck transactions, gas price, gas fee, network fee, fee levels, gas tiers, or any on-chain wallet
trading-signal
binance/binance-skills-hub
Per-trade smart-money signals — each result is a discrete buy or sell event from a tracked smart-money wallet, with trigger price, current price, max gain since trigger, and exit rate. BSC and Solana only. Use for: "smart money buy signal on $X", "any whale just bought $Y", "alpha signals in the last hour", "copy-trade-worthy signals", "trigger price and max gain on these trades", "on-chain trading signals from smart money".
crypto-market-rank
binance/binance-skills-hub
Crypto market leaderboards — ranked aggregate feeds across the whole market: social-hype/sentiment rank, trending / top-search / Binance Alpha / tokenized-stocks rank, smart-money net-inflow rank (which tokens received the most inflow), top meme tokens by breakout score on Pulse launchpad, top trader PnL leaderboard (ALL / KOL). Use whenever the user wants a ranked list of tokens or addresses by some metric — phrases like "trending tokens", "top N by hype", "leaderboard", "rank by X", "biggest inflows", "top traders this week".
query-token-info
binance/binance-skills-hub
Per-token details for a specific token identified by keyword, symbol, or contract address: (1) search — find tokens by keyword/symbol/contract; (2) meta — static info: name, symbol, logo, social links, creator, official website; (3) dynamic — real-time market data: price, 24h change, volume, holder count, liquidity; (4) kline — OHLCV candlestick data for technical analysis. Use for: "price of $X", "search for token Y", "kline chart for $Z", "who created $W", "social links for $V", "holder count of $U", "candlestick data", "find the contract address of ".
query-token-audit
binance/binance-skills-hub
Query token security audit to detect scams, honeypots, and malicious contracts before trading. Returns comprehensive security analysis including contract risks, trading risks, and scam detection. Use when users ask "is this token safe?", "check token security", "audit token", or before any swap.
Popular education & science skills
teach
mattpocock/skills
Teach the user a new skill or concept, within this workspace.
scaffold-exercises
mattpocock/skills
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
paper-context-resolver
lllllllama/rigorpilot-skills
Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.
caveman-learn
juliusbrussee/caveman
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.
gsap-plugins
greensock/gsap-skills
Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.
teach-impeccable
pbakaus/impeccable
DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.