Crypto API и пример кода для начала

Примечание: здесь нет финансовой консультации. Криптопроекты по своей сути связаны с риском, в значительной степени не аудированы и имеют экспериментальный характер. Никакие диаграммы, изображения, статистические данные или наблюдения здесь не должны использоваться для принятия инвестиционных решений.

В этой статье мы получим доступ к этим API и предоставим образец кода для работы с REST, GraphQL и WebSockets в Python. Этот пример кода будет применим к большинству API-интерфейсов, с которыми вы столкнетесь.

Вы можете найти пример кода здесь: GitHub

Кроме того, это источники, которые я использую для данных. Мой вариант использования - это в первую очередь фундаментальные исследования и мониторинг этих протоколов. Проведите собственное исследование и найдите дополнительные источники, которые подходят для вашего личного сценария использования. Сообщите мне, какие открытые источники данных я пропустил.

📊 Источники данных и API

DeFi Llama (ОТДЫХ) // Импульс DeFi (ОТДЫХ)

(DeFi Pulse великолепен, но если вы ищете исключительно историю TVL, посмотрите DeFi Llama; это бесплатный сервис с большей точностью, чем DeFi Pulse)

D̵e̵F̵i̵ ̵P̵u̵l̵s̵e̵ ̵h̵a̵s̵ ̵a̵l̵l̵ ̵s̵o̵r̵t̵s̵ ̵o̵f̵ ̵g̵r̵e̵a̵t̵ ̵d̵a̵t̵a̵ ̵a̵v̵a̵i̵l̵a̵b̵l̵e̵.̵ ̵Y̵o̵u̵’̵l̵l̵ ̵n̵e̵e̵d̵ ̵a̵n̵ ̵A̵P̵I̵ ̵k̵e̵y̵.̵ ̵W̵i̵t̵h̵ ̵a̵ ̵f̵r̵e̵e̵ ̵a̵c̵c̵o̵u̵n̵t̵ ̵y̵o̵u̵ ̵w̵i̵l̵l̵ ̵g̵e̵t̵ ̵2̵,̵0̵0̵0̵ ̵A̵P̵I̵ ̵c̵r̵e̵d̵i̵t̵s̵ ̵e̵a̵c̵h̵ ̵m̵o̵n̵t̵h̵.̵ ̵I̵ ̵u̵s̵e̵ ̵D̵e̵F̵i̵ ̵P̵u̵l̵s̵e̵ ̵d̵a̵t̵a̵ ̵f̵o̵r̵ ̵g̵a̵s̵ ̵p̵r̵i̵c̵e̵s̵,̵ ̵h̵i̵s̵t̵o̵r̵i̵c̵a̵l̵ ̵T̵V̵L̵,̵ ̵a̵n̵d̵ ̵o̵t̵h̵e̵r̵ ̵g̵r̵e̵a̵t̵ ̵e̵n̵d̵p̵o̵i̵n̵t̵s̵.̵

При первом прохождении эта статья ссылалась на DeFi Pulse. С тех пор я перешел на DeFi Llama.

Общая заблокированная стоимость (TVL) - популярный показатель для отслеживания. Мы могли бы заявить, что, поскольку значение заблокировано в протоколе, базовый токен должен расти в цене. Если TVL с течением времени постоянно увеличивается, и токен теряет ценность, как кто-то интересуется фундаментальными факторами, мы можем сказать, что токен недооценен. Конечно, это может зависеть от того, имеет ли токен отношение к протоколу; достаточно ли управления? И действительно ли TVL сопоставимы среди самых разных сценариев использования? При этом TVL может быть хорошим показателем для всеобщего принятия.

Вот пример запроса для DeFi Llama в стандартном формате REST + JSON.

Это обеспечит единый вывод # в долларах США для общей ликвидности.

Чтобы получить доступ к другим частям вывода, вы можете читать из tvl_history JSON, как хотите… Вот пример для Hegic (параметры в цепочке).

{'id': '128', 'name': 'Hegic', 'address': '0x584bC13c7D411c00c01A62e8019472dE68768430', 'symbol': 'HEGIC', 'url': 'https://www.hegic.co/ ',' description ':' Торговля опционами, не связанными с хранением, для получения прибыли или для хеджирования своих позиций. \ r \ n ',' chain ':' Ethereum ',' logo ':' https://api.defillama.com/ resource / img / hegic.jpg ',' audits ':' 2 ',' audit_note ': None,' gecko_id ':' hegic ',' cmcId ':' 6929 ',' category ':' Параметры ',' цепочки ':' [Ethereum] ',' tvl ': [{' date ': 1613692800,' dailyVolumeUSD ':' 73249859.19 ',' totalLiquidityUSD ':' 73249859.19 '}, {…}}

Некоторые популярные конечные точки из DeFi Pulse API, которые вы не найдете в DeFi Llama, включают:

  • DEX.AG для данных с децентрализованных бирж (DEX)
  • ETH АЗС по ценам на газ
  • Rek.to для ликвидации BitMEX
  • Pools.fyi для поставщиков ликвидности (LP) возвращает

График (GraphQL)

График использует запросы в стиле GraphQL. Это мой любимый тип API. Вот простой пример использования библиотеки Python gql. Подробнее о The Graph я писал в предыдущей статье. Вот наивный подход к получению объема Uniswap, ликвидности и количества транзакций с течением времени.

Из вышеуказанного запроса мы собираем данные о ликвидности и объеме. Мы могли бы использовать это, чтобы сделать что-то вроде следующего, где мы отслеживаем ликвидность по сравнению с объемом с течением времени.

🔗Цепные данные

Для этих данных я использую комбинацию моих собственных данных из работы узла и BlockCypher, хотя есть много ресурсов для получения данных вашей цепочки. По бесплатному тарифному плану BlockCypher вы получите 2000 запросов в день. Есть много альтернатив BlockCypher, поэтому подумайте, какая из них вам больше подходит.

Вы можете делать такие вещи, как открытие веб-сокета, чтобы получать прямой поток данных транзакции в цепочке. Или вы можете выполнить стандартный REST для запроса различных данных цепочки. Я обычно иду по этому пути.

Вы можете получить все, от данных транзакций до более подробной информации о смарт-контрактах, и всего, что вам нужно. Если вы будете искать достаточно усердно, вы, скорее всего, найдете нужные данные; в этом прелесть открытой финансовой экосистемы.

curl -s https://api.blockcypher.com/v1/eth/main/contracts/0eb688e79698d645df015cf2e9db5a6fe16357f1?token=YOURTOKEN

Мы можем использовать это в нашем терминале для тестирования конечной точки. Результат для этой конкретной конечной точки очень крутой. Вот небольшой фрагмент вывода, демонстрирующий методы смарт-контрактов по этому адресу.

/* this function is executed at initialization and sets the owner of the contract    
function mortal() 
{ 
    owner = msg.sender; 
} 
/* Function to recover the funds on the contract   
function kill() 
{ 
    if (msg.sender == owner) suicide(owner); 
}

Обмен данными

Я не верю, что существует бесплатный источник данных для обмена данными высокого качества с низкой задержкой. Если да, дайте мне знать. Я использую тарифный план Polygon на 50 долларов в месяц для обмена данными. С бесплатным планом вы можете получать данные на конец дня с 5 вызовами API в минуту и ​​2 годами истории.

Очевидно, что вы можете получить гораздо больше деталей с платными планами.

Вы также можете использовать API-интерфейсы обмена напрямую для доступа к их данным. Требуется дополнительная работа для объединения различных обменов, но она того стоит, в зависимости от вашего сценария использования.

Документы Peep Polygon, если вам интересно. Https://polygon.io/docs/getting-started

Если вам нужно более белое решение, возможно, я выберу Kaiko. Как всегда, ДЁР.

Альтернативы: Nomics (бесплатные данные без тикового уровня), Kaiko (двухнедельная пробная версия), CoinAPI (100 бесплатных запросов в день).

WebSockets

Большинство доступных источников позволяют использовать WebSockets. Благодаря этому мы можем открыть соединение для получения данных без необходимости постоянно опрашивать службу. Если вы предпочитаете этот подход REST, вот несколько примеров кода ... Рассматриваемый API будет включать в себя собственную документацию для необходимого форматирования и параметров.

🚩 Дополнительные ресурсы 🚩

Dune Analytics

Я большой поклонник Dune Analytics. Если вышеуказанное программирование было для вас иностранным языком, вы все равно можете погрузиться в криптоаналитику с помощью Dune. Это простой инструмент для аналитики, который напомнит вам о таких продуктах, как Tableau.

Я регулярно использую Dune для собственного анализа. Это относительно новый продукт, но они постоянно добавляют все больше и больше полезных данных.

Запуск собственного узла

Если вы хотите запустить собственный узел Ethereum, это относительно просто. Однако узел архива обойдется вам в несколько терабайт хранилища, а полный узел займет сотни гигабайт хранилища.

Для большинства я бы не рекомендовал. Такой сервис, как Infura, будет иметь все необходимые вам функции с меньшими хлопотами, если вам нужна функциональность узла. Infura также недавно добавила поддержку ETH 2.0 и Filecoin.

Сообщите мне о некоторых дополнительных источниках данных, которые вы регулярно используете.

Теперь, когда мы рассмотрели ряд источников данных, мы начнем копаться в использовании этих данных, чтобы найти уникальные идеи в будущих статьях. Будьте на связи!

Продолжим разговор в Твиттере.

Чтобы поддержать мое письмо и получить полный доступ ко всем статьям на Medium, посетите https://posey.medium.com/membership