Интеграция с Santiment API

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Santiment API
Простая
~1 рабочий день
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1062
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с 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-нарративов.