Интеграция с Santiment API
Santiment — платформа криптоаналитики с акцентом на социальные метрики, on-chain данные и разработческую активность. Их главная особенность — Social Volume и MVRV расчёты по сотням активов, включая altcoins, где другие провайдеры имеют ограниченное покрытие.
GraphQL API
Santiment использует GraphQL вместо REST, что позволяет запрашивать точно нужные данные:
import httpx
SANTIMENT_GRAPHQL_URL = "https://api.santiment.net/graphql"
class SantimentClient:
def __init__(self, api_key: str):
self.session = httpx.AsyncClient(
headers={"Authorization": f"Apikey {api_key}"},
timeout=30.0
)
async def query(self, gql: str, variables: dict = None) -> dict:
resp = await self.session.post(
SANTIMENT_GRAPHQL_URL,
json={"query": gql, "variables": variables or {}}
)
resp.raise_for_status()
return resp.json()
async def get_social_volume(self, slug: str, from_date: str, to_date: str) -> list:
query = """
query ($slug: String!, $from: DateTime!, $to: DateTime!) {
getMetric(metric: "social_volume_total") {
timeseriesData(
slug: $slug
from: $from
to: $to
interval: "1d"
) {
datetime
value
}
}
}
"""
result = await self.query(query, {"slug": slug, "from": from_date, "to": to_date})
return result["data"]["getMetric"]["timeseriesData"]
async def get_dev_activity(self, slug: str, from_date: str, to_date: str) -> list:
query = """
query ($slug: String!, $from: DateTime!, $to: DateTime!) {
devActivity(
slug: $slug
from: $from
to: $to
interval: "1d"
) {
datetime
activity
}
}
"""
result = await self.query(query, {"slug": slug, "from": from_date, "to": to_date})
return result["data"]["devActivity"]
Ключевые метрики Santiment
Social Volume — количество уникальных постов/сообщений, упоминающих актив в социальных сетях (Twitter, Reddit, Telegram, Discord). Резкий рост социального объёма часто предшествует ценовым движениям.
Social Dominance — доля обсуждений конкретного актива от всего крипто-дискурса. Пик dominance часто совпадает с локальным топом.
Development Activity — количество GitHub-коммитов исключая fork-репозитории. Высокая активность разработчиков — признак живого проекта.
Network Growth — количество новых адресов в день. Рост сети = рост пользовательской базы.
MVRV by cohort — MVRV с разбивкой по времени удержания. Santiment покрывает 900+ активов, что особенно ценно для altcoin-стратегий.
Практический пример: детектор нарратива
async def detect_narrative_surge(client: SantimentClient, slugs: list[str]) -> list[str]:
"""Находит активы с нетипично высоким социальным объёмом"""
surging = []
for slug in slugs:
# Последние 30 дней для базовой линии
recent = await client.get_social_volume(slug, "2024-01-01", "2024-01-31")
if len(recent) < 7:
continue
values = [d["value"] for d in recent]
avg = sum(values[:-1]) / len(values[:-1])
latest = values[-1]
# Если сегодняшний объём > 2x от среднего — нарратив набирает силу
if avg > 0 and latest / avg > 2.0:
surging.append(slug)
return surging
Santiment — хороший дополнительный источник данных в связке с ценовыми и on-chain метриками. Особенно ценен для sentiment-based стратегий и мониторинга altcoin-нарративов.







