---
name: blockbeats-skill
description: BlockBeats Skill covers over 1,500 information sources, including AI-driven insights, Hyperliquid on-chain data, and Polymarket market analytics. It also features robust keyword-based search functionality.
metadata:
  openclaw:
    emoji: "📰"
    primaryEnv: BLOCKBEATS_API_KEY
    install:
      - id: curl
        kind: brew
        formula: curl
        label: curl (HTTP client)
    requires:
      bins:
        - curl
      env:
        - BLOCKBEATS_API_KEY
    os:
      - darwin
      - linux
      - win32
    tags:
      - crypto
      - news
      - market-data
      - on-chain
      - defi
  version: 1.0.3
---

# BlockBeats API Skill

Query crypto newsflashes, articles, search results, and on-chain market data via the BlockBeats Pro API.

**Base URL**: `https://api-pro.theblockbeats.info`
**Auth**: All requests require Header `api-key: $BLOCKBEATS_API_KEY`
**Response format**: `{"status": 0, "message": "", "data": {...}}` — status 0 = success

---

## Scenario 1: Market Overview

**Triggers**: How's the market today, market overview, daily summary, market conditions

Execute the following four requests in parallel:

```bash
# 1. Market sentiment index
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/bottom_top_indicator"

# 2. Important newsflashes (latest 5)
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/newsflash/important" \
  -G --data-urlencode "size=5" --data-urlencode "lang=en"

# 3. BTC ETF net inflow
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/btc_etf"

# 4. Daily on-chain transaction volume
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/daily_tx"
```

**Output format**:
```
📊 Market Overview · [Today's date]

Sentiment Index: [value] → [<20 potential buy zone / 20-80 neutral / >80 potential sell zone]
BTC ETF: Today net inflow [value] million USD, cumulative [value] million
On-chain Volume: Today [value] (vs yesterday [↑/↓][change%])
Key News:
  · [Title 1] [time]
  · [Title 2] [time]
  · [Title 3] [time]
```

**Interpretation rules**:
- Sentiment < 20 → Alert user to potential opportunities
- Sentiment > 80 → Warn about sell-off risk
- ETF positive inflow 3 days in a row → Institutional accumulation signal
- ETF net inflow > 500M/day → Strong buy signal
- Rising on-chain volume → Increasing on-chain activity and market heat

---

## Scenario 2: Capital Flow Analysis

**Triggers**: Where is capital flowing, on-chain trends, which tokens are being bought, stablecoins, smart money

Execute in parallel:

```bash
# 1. Top 10 tokens by on-chain net inflow (default solana; replace network param for Base/ETH)
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/top10_netflow" \
  -G --data-urlencode "network=solana"

# 2. Stablecoin market cap
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/stablecoin_marketcap"

# 3. BTC ETF net inflow
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/btc_etf"
```

Select `network` parameter based on user intent: `solana` (default) / `base` / `ethereum`

**Output format**:
```
💰 Capital Flow Analysis

On-chain Trending ([chain]):
  1. [token] Net inflow $[value]  Market cap $[value]
  2. ...

Stablecoins: USDT [↑/↓] USDC [↑/↓] (expansion/contraction signal)
Institutional: ETF today [inflow/outflow] [value] million USD
```

**Interpretation rules**:
- Stablecoin market cap expanding → More capital in market, stronger buy potential
- Stablecoin market cap shrinking → Capital exiting, caution advised

---

## Scenario 3: Macro Environment Assessment

**Triggers**: Macro environment, is it a good time to enter, liquidity, US Treasuries, dollar, M2, big picture

Execute in parallel:

```bash
# 1. Global M2 supply
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/m2_supply" \
  -G --data-urlencode "type=1Y"

# 2. US 10Y Treasury yield
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/us10y" \
  -G --data-urlencode "type=1M"

# 3. DXY Dollar Index
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/dxy" \
  -G --data-urlencode "type=1M"

# 4. Compliant exchange total assets
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/compliant_total"
```

**Output format**:
```
🌐 Macro Environment Assessment

Global M2: [latest value] YoY [↑/↓][change%] → [expansionary/contractionary]
US Treasury Yield (10Y): [latest value]% → [rising/falling trend]
Dollar Index (DXY): [latest value] → [strong/weak]
Compliant Exchange Assets: $[value] → [inflow/outflow trend]

Overall: [bullish/neutral/bearish] for crypto market
```

**Interpretation rules**:
- M2 YoY > 5% → Loose liquidity, favorable for risk assets
- M2 YoY < 0% → Liquidity tightening, caution
- DXY rising → Strong dollar, crypto under pressure
- DXY falling → Weak dollar, crypto benefits
- Rising Treasury yield → Higher risk-free rate, capital returning to bonds
- Rising compliant exchange assets → Growing institutional allocation appetite

---

## Scenario 4: Derivatives Market Analysis

**Triggers**: Futures market, long/short positioning, open interest, Binance Bybit OI, leverage risk

Execute in parallel:

```bash
# 1. Major derivatives platform comparison
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/contract" \
  -G --data-urlencode "dataType=1D"

# 2. Exchange snapshot
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/exchanges" \
  -G --data-urlencode "size=10"

# 3. Bitfinex BTC long positions
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/data/bitfinex_long" \
  -G --data-urlencode "symbol=btc" --data-urlencode "type=1D"
```

**Output format**:
```
⚡ Derivatives Market Analysis

Platform OI:
  Binance [value]  Bybit [value]  Hyperliquid [value]

Exchange Rankings (by volume):
  1. [name] Volume $[value]  OI $[value]
  2. ...

Bitfinex BTC Longs: [value] → [increasing/decreasing] (leveraged long sentiment [strong/weak])
```

**Interpretation rules**:
- Bitfinex longs persistently increasing → Large players bullish, market confidence growing
- Bitfinex longs dropping sharply → Watch for long liquidation cascade

---

## Scenario 5: Keyword Search

**Triggers**: search [keyword], find [keyword], [keyword] news, what's happening with [keyword]

```bash
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/search" \
  -G --data-urlencode "name=[keyword]" --data-urlencode "size=10" --data-urlencode "lang=en"
```

Response fields: `title`, `abstract`, `content` (plain text), `type` (0=article, 1=newsflash), `time_cn` (relative time), `img_url`, `url`; pagination object: `total`, `page`, `size`, `total_pages`; `size` max 100

---

## Scenario 6: Newsflash & Article Lists

Select the appropriate newsflash category or article endpoint based on user intent. Default returns 10 items; use `size` param to adjust.

**Newsflash category triggers and endpoints**:

| User says | Endpoint path |
|-----------|--------------|
| latest news / newsflash list / what's new | `/v1/newsflash` |
| last 24 hours / past 24h / today's all news | `/v1/newsflash/24h` |
| important news / major events / key headlines | `/v1/newsflash/important` |
| original newsflash / original coverage | `/v1/newsflash/original` |
| first-report / exclusive / scoop | `/v1/newsflash/first` |
| on-chain news / on-chain data / on-chain updates | `/v1/newsflash/onchain` |
| financing news / fundraising / VC deals / investment rounds | `/v1/newsflash/financing` |
| prediction market / Polymarket / forecast / betting | `/v1/newsflash/prediction` |
| AI news / AI updates / AI projects / artificial intelligence | `/v1/newsflash/ai` |

**Article category triggers and endpoints**:

| User says | Endpoint path |
|-----------|--------------|
| article list / in-depth articles / latest articles | `/v1/article` |
| last 24 hours articles / today's articles (up to 50, no pagination) | `/v1/article/24h` |
| important articles / key reports | `/v1/article/important` |
| original articles / original analysis | `/v1/article/original` |

**Request example** (AI newsflash):

```bash
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/newsflash/ai" \
  -G --data-urlencode "page=1" --data-urlencode "size=10" --data-urlencode "lang=en"
```

**Output format**:

```
📰 [Category Name] · Latest [N] items

1. [Title] [time_cn]
   [abstract, if available]

2. [Title] [time_cn]
   [abstract, if available]
...
```

**Notes**:
- `content` field is HTML; strip tags and display plain text only
- Article endpoints do NOT have a `url` field; use `link` for the article page URL

---

## Single Endpoint Reference

### Newsflash Endpoints (all support page/size/lang)

| Endpoint | URL |
|----------|-----|
| All newsflashes | `GET /v1/newsflash` |
| Last 24 hours (no pagination) | `GET /v1/newsflash/24h` |
| Important | `GET /v1/newsflash/important` |
| Original | `GET /v1/newsflash/original` |
| First-report | `GET /v1/newsflash/first` |
| On-chain | `GET /v1/newsflash/onchain` |
| Financing | `GET /v1/newsflash/financing` |
| Prediction market | `GET /v1/newsflash/prediction` |
| AI | `GET /v1/newsflash/ai` |

```bash
curl -s -H "api-key: $BLOCKBEATS_API_KEY" \
  "https://api-pro.theblockbeats.info/v1/newsflash/[type]" \
  -G --data-urlencode "page=1" --data-urlencode "size=10" --data-urlencode "lang=en"
```

### Article Endpoints

| Endpoint | URL | Params |
|----------|-----|--------|
| All articles | `GET /v1/article` | page/size/lang |
| Last 24 hours (no pagination, up to 50) | `GET /v1/article/24h` | lang only |
| Important | `GET /v1/article/important` | page/size/lang |
| Original | `GET /v1/article/original` | page/size/lang |

### RSS Endpoints

| Endpoint | URL | Key Parameters |
|----------|-----|----------------|
| Newsflash RSS | `GET /v1/rss/newsflash` | `page` `size` (1-50) |
| Article RSS | `GET /v1/rss/article` | `page` `size` (1-50) |

RSS endpoints return XML format. Use when user requests RSS feed or wants to subscribe to updates.

### Data Endpoints

| Endpoint | URL | Key Parameters |
|----------|-----|----------------|
| BTC ETF net inflow | `GET /v1/data/btc_etf` | none |
| Daily on-chain volume | `GET /v1/data/daily_tx` | none |
| IBIT/FBTC net inflow | `GET /v1/data/ibit_fbtc` | none |
| Stablecoin market cap | `GET /v1/data/stablecoin_marketcap` | none |
| Compliant exchange assets | `GET /v1/data/compliant_total` | none |
| US Treasury yield | `GET /v1/data/us10y` | `type=1D/1W/1M` |
| Dollar Index (DXY) | `GET /v1/data/dxy` | `type=1D/1W/1M` |
| Global M2 supply | `GET /v1/data/m2_supply` | `type=3M/6M/1Y/3Y` |
| Bitfinex long positions | `GET /v1/data/bitfinex_long` | `symbol=btc` `type=1D/1W/1M/h24` |
| Derivatives platform data | `GET /v1/data/contract` | `dataType=1D/1W/1M/3M/6M/12M` |
| Buy/sell indicator | `GET /v1/data/bottom_top_indicator` | none |
| Top 10 on-chain net inflow | `GET /v1/data/top10_netflow` | `network=solana/base/ethereum` |
| Exchange snapshot | `GET /v1/data/exchanges` | `name` `page` `size` |

---

## Time Dimension Mapping

| User says | Parameter |
|-----------|-----------|
| today / latest / real-time | `type=1D` or `size=5` |
| this week / recent | `type=1W` |
| this month / last 30 days | `type=1M` |
| this year / long-term trend | `type=1Y` or `type=3Y` |
| last 24 hours (bitfinex_long only) | `type=h24` |

---

## Intent Mapping

| User intent | Scenario / endpoint |
|-------------|---------------------|
| How's the market today / daily overview | Scenario 1: Market Overview |
| Capital flow / on-chain trends / smart money | Scenario 2: Capital Flow |
| Macro / M2 / US Treasuries / good time to enter | Scenario 3: Macro Assessment |
| Futures / open interest / exchange OI / leverage risk | Scenario 4: Derivatives |
| search [keyword] | Scenario 5: Search |
| Latest news / newsflash list | `GET /v1/newsflash` |
| Last 24 hours / today all newsflashes | `GET /v1/newsflash/24h` |
| Important newsflashes | `GET /v1/newsflash/important` |
| Original newsflashes | `GET /v1/newsflash/original` |
| First-report newsflashes | `GET /v1/newsflash/first` |
| On-chain newsflashes | `GET /v1/newsflash/onchain` |
| Financing news | `GET /v1/newsflash/financing` |
| Prediction market / Polymarket | `GET /v1/newsflash/prediction` |
| AI newsflashes / AI news | `GET /v1/newsflash/ai` |
| Article list | `GET /v1/article` |
| Last 24 hours articles / today's articles | `GET /v1/article/24h` |
| Important articles | `GET /v1/article/important` |
| Original articles | `GET /v1/article/original` |
| BTC ETF inflow | `GET /v1/data/btc_etf` |
| IBIT FBTC | `GET /v1/data/ibit_fbtc` |
| Stablecoin market cap / USDT USDC | `GET /v1/data/stablecoin_marketcap` |
| Dollar index / DXY | `GET /v1/data/dxy` |
| Bitfinex longs / leveraged positions | `GET /v1/data/bitfinex_long` |
| Buy/sell signal / market sentiment | `GET /v1/data/bottom_top_indicator` |
| Top inflow tokens / on-chain trending | `GET /v1/data/top10_netflow` |
| Exchange rankings | `GET /v1/data/exchanges` |
| On-chain volume / activity | `GET /v1/data/daily_tx` |
| Compliant exchange assets / institutional custody | `GET /v1/data/compliant_total` |

---

## Data Refresh Frequency

| Endpoint type | Update frequency |
|---------------|-----------------|
| Newsflash / articles / search | Real-time |
| top10_netflow | Near real-time |
| btc_etf / ibit_fbtc / daily_tx | Daily (T+1) |
| stablecoin_marketcap / compliant_total | Daily |
| bottom_top_indicator | Daily |
| us10y / dxy | Intraday minute-level |
| m2_supply | Monthly |
| exchanges / contract | Daily |
| bitfinex_long | Daily (h24 param is near real-time) |

---

## Error Handling

| Error condition | Response |
|----------------|----------|
| `BLOCKBEATS_API_KEY` not set | Prompt: Please set the BLOCKBEATS_API_KEY environment variable. Apply at: https://www.theblockbeats.info/ |
| status 100 | Missing API key — please provide your api-key header |
| status 101 | Invalid API key — please verify your key |
| status 102 | API key expired — please renew your subscription |
| status 103 | Invalid request method — check that you are using GET |
| status -1 | General failure — display the `message` field content |
| Request timeout | Prompt to retry; do not interrupt other parallel requests |
| data is empty array | Explain possible reasons (non-trading day, data delay, no data for this token) |

## Notes

- `content` field is HTML; strip tags and display plain text only
- `create_time` field format: `Y-m-d H:i:s`
- Numeric fields (price/vol etc.) are strings; format as numbers when displaying
- When running parallel requests, a failure on one endpoint must not block display of others
