> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sorsa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Sorsa Score 与加密货币分析

# Sorsa Score 与加密货币社交图谱分析

Sorsa 维护一个加密货币相关 X 账号的内部数据库，包括项目、意见领袖、KOL、风险投资机构及员工。本节端点基于此数据库，提供超出标准 X 资料的分析：衡量账号在加密货币生态地位的影响力分数、按意见领袖/项目/VC 分类的粉丝统计，以及近期关注活动。

这些端点专为加密货币尽职调查、意见领袖评估、项目发现和社群分析设计。评估项目可信度、影响力实际水平，或追踪 VC 对新项目的关注时，可使用这一数据层。

> **免费开始：** 本节所有端点可使用初始 100 次免费请求，一次性赠送，无需信用卡，永不过期。一次完整调查每个账号约四次调用：分数、分数变化、粉丝分类和主要粉丝。因此 100 次约可覆盖 25 个账号，再考虑套餐。

> **注意：** [Sorsa 网页应用](https://api.sorsa.io/)也提供 Sorsa Score 和相关分析的可视化界面。本节 API 以编程方式访问相同底层数据，可集成到自己的工具与工作流。

***

## 什么是 Sorsa Score？

Sorsa Score 是数值指标，反映有多少有影响力的加密货币账号关注某账号，以及这些粉丝自身的影响力。它不依据总粉丝数、内容质量、资料外观或认证状态，而完全依据加密货币社交图谱：谁关注你，以及他们的影响力权重。

主要特征：

* **质量比数量重要。** 少数分数超过 1000 的粉丝，贡献高于数十位分数为 200 的粉丝。分数奖励来自成熟参与者的真实认可，而非大量关注。
* **排除互粉和大量关注账号。** Sorsa 会检测并过滤人为膨胀粉丝列表的账号，不让它们参与分数计算。
* **内容、资料设计和蓝色认证不会直接影响分数。** 但优质内容往往会吸引有影响力的粉丝，因此通常存在相关性。
* **分数动态变化。** 有影响力的账号关注或取消关注时，分数会改变。`/score-changes` 按周和月追踪变化。

较高 Sorsa Score 表明账号在加密货币生态中得到认可。如果自称重要参与者的账号分数很低，值得进一步调查。

***

## 端点概览

| 端点                      | 返回内容                |
| :---------------------- | :------------------ |
| `GET /score`            | 账号当前 Sorsa Score    |
| `GET /score-changes`    | 最近一周和一个月的分数变化       |
| `GET /followers-stats`  | 按意见领袖、项目和 VC 分类的粉丝数 |
| `GET /top-followers`    | 按分数排名的前 20 位粉丝      |
| `GET /top-following`    | 用户关注对象中分数最高的 20 个账号 |
| `GET /new-followers-7d` | 最近 7 天关注该用户的加密货币账号  |
| `GET /new-following-7d` | 该用户最近 7 天新关注的加密货币账号 |

所有端点都使用 GET，接受 `username`、`user_id` 或 `user_link`，三者必须且只能提供一种。

***

## 获取 Sorsa Score

**端点：**`GET /v3/score`

```bash theme={null}
curl "https://api.sorsa.io/v3/score?username=VitalikButerin" \
  -H "ApiKey: YOUR_API_KEY"
```

```json theme={null}
{"score": 1843.7}
```

```python theme={null}
import requests

API_KEY = "YOUR_API_KEY"

def get_score(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/score",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()["score"]

print(f"Vitalik's Sorsa Score: {get_score('VitalikButerin')}")
```

与本节其他端点一样，`/score` 接受三种用户标识之一。分数越高，说明在加密货币意见领袖、项目和 VC 中的认可度越强。粉丝非常多的账号，第一次请求可能需要略长时间。

***

## 追踪分数变化

**端点：**`GET /v3/score-changes`

返回最近一周和一个月的分数变化量，用于发现趋势。快速上升可能意味着新兴项目值得关注；下降可能意味着认可度减弱。

```python theme={null}
def get_score_changes(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/score-changes",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()

changes = get_score_changes("some_crypto_project")
print(f"Week delta:  {changes['week_delta']:+}")
print(f"Month delta: {changes['month_delta']:+}")
```

响应：

```json theme={null}
{
  "week_delta": 12,
  "month_delta": 24
}
```

正的 `week_delta` 表示过去 7 天分数增加，即更多有影响力的账号关注了目标。负值表示有影响力的粉丝取消关注，或其自身分数下降。

**要求：** 账号必须已被 Sorsa 数据库追踪。新账号或之前未追踪的账号没有历史分数数据。

***

## 按类别划分粉丝

**端点：**`GET /v3/followers-stats`

将数据库中的账号粉丝划分为三类：意见领袖（个人加密货币 KOL）、项目（加密货币项目账号）和风险投资（VC 及员工）。

```python theme={null}
def get_follower_breakdown(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/followers-stats",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()

stats = get_follower_breakdown("some_crypto_project")
print(f"Total followers (Sorsa DB): {stats['followers_count']}")
print(f"  Influencers: {stats['influencers_count']}")
print(f"  Projects:    {stats['projects_count']}")
print(f"  VCs:         {stats['venture_capitals_count']}")
```

响应：

```json theme={null}
{
  "followers_count": 16,
  "influencers_count": 12,
  "projects_count": 3,
  "venture_capitals_count": 1,
  "user_protected": false
}
```

这里的 `followers_count` 是 Sorsa 加密货币数据库中的粉丝数量，不是 X 总粉丝数。一个有 50,000 位 X 粉丝的账号，可能只有 200 位被 Sorsa 追踪的加密货币相关粉丝。

这一分类可辅助尽职调查：声称获得 VC 支持的项目，粉丝统计中应能观察到 VC 账号。如果声称有合作关系，却没有 VC 或项目粉丝，值得警惕并进一步调查。

***

## 分数最高的 20 位粉丝与关注对象

**端点：**`GET /v3/top-followers`

返回 Sorsa Score 最高的 20 位粉丝，帮助了解哪些最有影响力的加密货币账号正在关注该资料。

**端点：**`GET /v3/top-following`

返回用户所关注账号中分数最高的 20 个，反映其重视谁的内容和活动。

```python theme={null}
def get_top_followers(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/top-followers",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


def get_top_following(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/top-following",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


# Who are the biggest names following this project?
top = get_top_followers("some_crypto_project")
print("Top followers by Sorsa Score:")
for u in top[:10]:
    print(f"  @{u['username']} (Score {u.get('score', 0)}, {u['followers_count']:,} followers)")
    print(f"    {u.get('description', '')[:60]}")
```

两个端点的返回结构略有不同：

* `/top-followers` 返回 `TopFollowersResponse`：精简粉丝资料数组，每项包含该粉丝自身的 `score`，便于衡量影响力。精简资料省略完整资料中的部分字段，例如 `location` 和 `bio_urls`。
* `/top-following` 返回 `FollowersResponse`：`Follower` 对象包含标准资料字段和 `followerDate`（关注关系建立时间）。注意，此响应没有 `score` 字段。

需要主要粉丝的完整资料，如简介链接、所在地和媒体数时，将其用户名传给 `/info-batch`。

***

## 新增粉丝和关注（最近 7 天）

**端点：**`GET /v3/new-followers-7d`

返回数据库中最近 7 天开始关注指定用户的加密货币账号。

**端点：**`GET /v3/new-following-7d`

返回数据库中指定用户最近 7 天开始关注的加密货币账号。

```python theme={null}
def get_new_followers_7d(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/new-followers-7d",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


def get_new_following_7d(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/new-following-7d",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


new_followers = get_new_followers_7d("some_crypto_project")
print(f"New crypto followers this week: {len(new_followers)}")
for u in new_followers:
    print(f"  @{u['username']} followed on {u.get('followerDate', 'unknown')}")
```

两个 7 天端点都返回 `FollowersResponse`，即带 `followerDate` 的 `Follower` 对象。

### 对数据库的依赖

两个端点有以下重要限制：

1. **目标账号必须已在 Sorsa 数据库中。** 未追踪账号没有历史数据可比较，因此无法判断哪些关注是新增的。
2. **只显示涉及 Sorsa 数据库账号的关注关系。** 普通非加密货币账号关注目标时，不会出现在结果中。这些端点专门追踪加密货币社交图谱内的关系变化。

因此数据与加密货币分析高度相关，可看到已知参与者建立了哪些新联系。但如果需要包含非加密货币账号的完整粉丝列表，它们不能替代普通 `/followers`。通用方式见[粉丝与关注](https://docs.sorsa.io/zh-Hans/followers-and-following)。

***

## 实际应用

### 项目尽职调查

评估项目时，组合多个端点构建可信度参考资料：

```python theme={null}
def due_diligence_report(username):
    """Quick due diligence check for a crypto project."""
    score = get_score(username)
    changes = get_score_changes(username)
    stats = get_follower_breakdown(username)
    top = get_top_followers(username)

    print(f"Due Diligence: @{username}")
    print(f"{'='*40}")
    print(f"Sorsa Score:   {score}")
    print(f"  Week change: {changes['week_delta']:+}")
    print(f"  Month change:{changes['month_delta']:+}")
    print()
    print(f"Crypto followers: {stats['followers_count']}")
    print(f"  Influencers: {stats['influencers_count']}")
    print(f"  Projects:    {stats['projects_count']}")
    print(f"  VCs:         {stats['venture_capitals_count']}")
    print()

    if top:
        print(f"Top followers by Score:")
        for u in top[:5]:
            print(f"  @{u['username']} (Score {u.get('score', 0)}, {u['followers_count']:,} followers)")
    else:
        print("No significant crypto followers found - investigate further.")

    # Red flags
    flags = []
    if score < 10:
        flags.append("Very low Score - minimal recognition in crypto")
    if stats["venture_capitals_count"] == 0 and stats["projects_count"] == 0:
        flags.append("No VC or project followers - claims of partnerships may be false")
    if changes["month_delta"] < -20:
        flags.append("Score dropping fast - influential followers are leaving")

    if flags:
        print(f"\nRed flags:")
        for f in flags:
            print(f"  - {f}")

    return score, stats, top


due_diligence_report("some_crypto_project")
```

### 并排比较项目

```python theme={null}
projects = ["project_a", "project_b", "project_c"]

print(f"{'Project':<20} {'Score':>7} {'Week':>6} {'Influencers':>12} {'Projects':>9} {'VCs':>5}")
print("-" * 65)

for handle in projects:
    score = get_score(handle)
    changes = get_score_changes(handle)
    stats = get_follower_breakdown(handle)

    print(f"@{handle:<19} {score:>7.1f} {changes['week_delta']:>+6} "
          f"{stats['influencers_count']:>12} {stats['projects_count']:>9} "
          f"{stats['venture_capitals_count']:>5}")
```

### 追踪 VC 活动

监测已知 VC 新关注了哪些项目，这可能提示潜在投资或合作：

```python theme={null}
vc_accounts = ["a16z_crypto", "paradigm", "polychain"]

for vc in vc_accounts:
    new_follows = get_new_following_7d(vc)
    if new_follows:
        print(f"@{vc} started following {len(new_follows)} new crypto accounts this week:")
        for u in new_follows:
            print(f"  @{u['username']} (followed {u.get('followerDate', 'recently')})")
    else:
        print(f"@{vc}: no new crypto follows this week")
    print()
```

### 早期发现项目

寻找分数持续上升的项目，分数增长意味着有影响力的账号开始注意它：

```python theme={null}
watchlist = ["new_project_1", "new_project_2", "new_project_3", "new_project_4"]

rising = []
for handle in watchlist:
    try:
        score = get_score(handle)
        changes = get_score_changes(handle)
        if changes["week_delta"] > 5:
            rising.append({
                "handle": handle,
                "score": score,
                "week_delta": changes["week_delta"],
            })
    except Exception:
        continue

rising.sort(key=lambda x: x["week_delta"], reverse=True)

print("Rising projects (Score gained this week):")
for r in rising:
    print(f"  @{r['handle']}: Score {r['score']} ({r['week_delta']:+} this week)")
```

***

## 导出到 CSV

```python theme={null}
import csv
import time

def export_crypto_analysis(handles, output_file="crypto_analysis.csv"):
    """Export Score and follower stats for a list of accounts."""
    fields = ["username", "score", "week_delta", "month_delta",
              "crypto_followers", "influencers", "projects", "vcs"]

    with open(output_file, "w", newline="") as f:
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()

        for handle in handles:
            try:
                score = get_score(handle)
                changes = get_score_changes(handle)
                stats = get_follower_breakdown(handle)

                writer.writerow({
                    "username": handle,
                    "score": score,
                    "week_delta": changes["week_delta"],
                    "month_delta": changes["month_delta"],
                    "crypto_followers": stats["followers_count"],
                    "influencers": stats["influencers_count"],
                    "projects": stats["projects_count"],
                    "vcs": stats["venture_capitals_count"],
                })
            except Exception as e:
                print(f"Error for @{handle}: {e}")

            time.sleep(0.15)  # 3 API calls per account

    print(f"Exported {len(handles)} accounts to {output_file}")
```

***

## 后续步骤

* [竞品分析](https://docs.sorsa.io/zh-Hans/Competitor-Analysis)：结合 Sorsa Score 与常规资料和内容分析
* [粉丝与关注](https://docs.sorsa.io/zh-Hans/followers-and-following)：提取完整粉丝列表，而不仅是已追踪的加密货币账号
* [发现目标受众](https://docs.sorsa.io/zh-Hans/target-audiences-Discovery)：通过社群数据和简介搜索寻找加密货币受众
* [营销活动验证](https://docs.sorsa.io/zh-Hans/Marketing-Campaign-Verification)：验证加密货币营销活动的互动行为
* [API 参考](https://docs.sorsa.io/zh-Hans/api-reference-guide)：全部 Sorsa Score 与加密货币分析端点规范
