К основному содержанию
скилл CX Codex

chainlink-data-feeds — скилл для Claude Code: обзор и установка

Помогает безопасно читать ценовые фиды Chainlink AggregatorV3 на Hedera (chain ID 295 и 296), проверять полноту и свежесть раундов и нормализовать decimals.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add hedera-dev/hedera-skills --skill chainlink-data-feeds -a claude-code
Открыть на GitHub

Что делает chainlink-data-feeds

Скилл инструктирует ИИ-агента при интеграции ценовых оракулов Chainlink на блокчейне Hedera. Он задаёт строгий порядок чтения данных через вызов latestRoundData() интерфейса AggregatorV3Interface. Агент сразу отклоняет раунды, если answeredInRound < roundId, время обновления равно нулю, а цена неположительная.

Обязательно проверяется свежесть данных: разница между block.timestamp и updatedAt сравнивается с порогом maxStaleness. Оракулы Chainlink возвращают значение со своим масштабом, чаще всего 8 знаков, поэтому скилл требует нормализовать результат к шкале контракта (обычно 18 знаков) с явным округлением вниз.

Адреса оракулов из сети Ethereum на Hedera работать не будут. Скилл запрещает копировать чужие адреса и требует брать фиды именно под Hedera mainnet (chain ID 295) или testnet (chain ID 296). При этом расширение рассчитано только на котировки и не поддерживает межсетевой протокол Chainlink CCIP.

Какие задачи решает

  • считывать котировки через AggregatorV3Interface на Hedera
  • отсекать неполные и устаревшие раунды оракула Chainlink
  • приводить точность котировок из 8 decimals в 18 decimals
  • находить правильные адреса фидов для chain ID 295 и 296

Примеры запросов агенту

  • Напиши функцию чтения цены HBAR/USD через AggregatorV3Interface для Hedera mainnet
  • Проверь смарт-контракт на обработку устаревших раундов Chainlink и валидацию updatedAt
  • Добавь нормализацию decimals для фида Chainlink с округлением вниз

Как установить chainlink-data-feeds

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill chainlink-data-feeds -a claude-code

2Вручную: положить файлы

~/.claude/skills/chainlink-data-feeds/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/chainlink-data-feeds/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о chainlink-data-feeds

Как установить chainlink-data-feeds в Claude Code?

Выполните команду npx skills add hedera-dev/hedera-skills --skill chainlink-data-feeds -a claude-code. Конфигурация навыка запишется в файл ~/.claude/skills/chainlink-data-feeds/SKILL.md.

Что проверяет chainlink-data-feeds при чтении раунда?

Скилл контролирует корректность ответа оракула: отклоняет раунды с answeredInRound < roundId, проверяет, что время updatedAt не равно нулю, а полученная цена строго больше нуля. Также он требует сверять разницу block.timestamp - updatedAt с допустимым интервалом maxStaleness.

Подходит ли этот скилл для работы с Chainlink CCIP?

Нет, скилл предназначен исключительно для ценовых фидов Data Feeds на Hedera (chain ID 295 и 296). Межсетевые токены и протокол Chainlink CCIP в нём не рассматриваются.

Исходный текст

SKILL.md · Apache-2.0
---
name: chainlink-data-feeds
description: >
  Chainlink Data Feeds on Hedera. Use when reading AggregatorV3 price feeds on Hedera
  (testnet 296 / mainnet 295), calling latestRoundData, checking round completeness and
  staleness, or normalizing feed decimals. Not for Chainlink CCIP (cross-chain tokens).
---

# Chainlink Data Feeds (Hedera)

**Push feed pattern:** a Chainlink aggregator is updated off-chain; on-chain readers call `latestRoundData()` and must reject incomplete, non-positive, or stale rounds.

```text
Chainlink DON → AggregatorV3Interface feed → consumer latestRoundData()
```

Consumers may wrap the feed behind a local interface; that is optional. Do not assume a project-specific adapter name.

## Quick Reference

| Piece | Role |
| ----- | ---- |
| `AggregatorV3Interface` | `latestRoundData()` + `decimals()` |
| Round completeness | `answeredInRound >= roundId` and `updatedAt != 0` |
| Price | `answer > 0` (feeds are typically signed `int256`) |
| Freshness | Compare `block.timestamp - updatedAt` to a max staleness |
| Scale | Normalize feed decimals to the consumer’s scale (often 18) |
| Pair identity | Prefer canonical uppercase symbols (`HBAR`, `USD`) if you hash pair keys |

**Hedera chain IDs:** testnet `296`, mainnet `295`.

See [references/hedera-feeds.md](references/hedera-feeds.md) for where to source Hedera feed addresses. See [references/examples.md](references/examples.md) for read and normalize sketches.

## Critical: Completeness Then Staleness

Never return a price from a missing or unfinished round. Revert when:

| Condition | Why |
| --------- | --- |
| `answeredInRound < roundId` | Aggregator has not finished this round |
| `updatedAt == 0` | No successful update |
| `answer <= 0` | Invalid / non-positive price |
| `block.timestamp - updatedAt > maxStaleness` | Stale for this consumer |

```solidity
(uint80 roundId, int256 answer,, uint256 updatedAt, uint80 answeredInRound) =
    feed.latestRoundData();

if (answeredInRound < roundId || updatedAt == 0) revert IncompleteRound();
if (answer <= 0) revert InvalidPrice();
if (block.timestamp - updatedAt > maxStaleness) revert StalePrice(updatedAt, maxStaleness);
```

## Critical: Hedera Feeds, Not Ethereum Addresses

Do **not** copy Ethereum mainnet aggregator addresses onto Hedera. Look up Hedera-specific Data Feed addresses for chain `295` / `296` and re-check docs before mainnet.

Pair maps (if you use them) should be constructor-only unless the project explicitly supports post-deploy updates.

## Decimal Normalization

`feed.decimals()` is often 8. Convert to the scale your app uses before arithmetic:

```solidity
uint256 price = normalizeToScale(uint256(answer), feed.decimals(), /* target */ 18);
```

Keep conversion rounding explicit (usually round down). Do not mix raw aggregator units with 18-decimal amounts.

## Checklist

When implementing or reviewing Chainlink reads on Hedera:

- [ ] Feed address taken from Hedera Data Feeds docs (not Ethereum)
- [ ] `latestRoundData` completeness checks before using `answer`
- [ ] Non-positive prices revert
- [ ] Staleness bound is enforced
- [ ] Decimals normalized to the consumer scale
- [ ] Chain ID is `295` or `296` (or the project’s documented Hedera network)

## References

- [references/examples.md](references/examples.md) — `latestRoundData` and normalize sketches
- [references/hedera-feeds.md](references/hedera-feeds.md) — where to source Hedera aggregator addresses
- [Chainlink Data Feeds](https://docs.chain.link/data-feeds)
- [Hedera price feed addresses](https://docs.chain.link/data-feeds/price-feeds/addresses?network=hedera)

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Похожие скиллы

Все скиллы по теме «Финансы и бизнес» →
chainlink-data-feeds-skill smartcontractkit Помогает агенту писать контракты и офчейн-код для чтения ценовых фидов Chainlink через AggregatorV3Interface и latestRoundData. CX Codex +1 364установок chainlink-ace-skill smartcontractkit Скилл для работы с политиками Chainlink ACE: PolicyEngine, Cross-Chain Identity, KYC и AML, санкционный скрининг и правила комплаенса на блокчейне. CX Codex +1 310установок blockchain-developer sickn33 Скилл направляет разработку смарт-контрактов, Web3-приложений и децентрализованных систем. Пригодится для проектирования, ревью и проверки рисков до действий в сети. CX Codex +1 1 200установок solidity-security Seth Hobson Скилл помогает писать и проверять Solidity-контракты с учётом типовых уязвимостей. Пригодится для аудита, DeFi и подготовки к профессиональной проверке. CX Codex 15 382установок secure-workflow-guide trailofbits Проводит смарт-контракты через пятиэтапный аудит безопасности от Trail of Bits перед деплоем или при коммитах. Запускает статический анализ, строит диаграммы и настраивает фаззинг. CX Codex +1 7 400установок entry-point-analyzer trailofbits Находит внешние функции смарт-контрактов, которые меняют состояние, и группирует их по уровню доступа. Нужен перед аудитом, чтобы очертить поверхность атаки. CX Codex +1 5 700установок

Из того же набора19

harness-spec-anatomy Описывает, из чего состоит рецепт hedera-harness: файлы, значения по умолчанию v3, стадии прогона и правило слепой проверки. Нужен тем, кто пишет или проверяет такие рецепты. CX Codex +1 464установок review-harness-spec Проверяет рецепт .harness/spec.yaml перед запуском тестов и генератора. Находит ошибки связей и пробелы в чеклисте оценок. CX Codex +1 459установок x402-payments Скилл для агентов, который помогает закрыть HTTP-ресурсы оплатой в HBAR по схеме x402: 402-ответ, подпись перевода, проверка и расчёт через свой фасилитатор. CX Codex +1 462установок layerzero-messaging Скилл для сборки мостов LayerZero V2 между Hedera и EVM-сетями: OFT/OApp, настройка Endpoint V2, ULN, DVN и отправка через quoteSend. CX Codex +1 460установок axelar-gmp Помогает строить межсетевые вызовы между Hedera и EVM через Axelar GMP. Нужен при отправке транзакций через шлюз, настройке приёмников и связке с HSS. CX Codex +1 454установок pyth-price-feeds Скилл для интеграции Pyth pull-фидов в контракты на Hedera: обновление цены через Hermes, чтение с ограничением по возрасту, проверка confidence. CX Codex +1 444установок supra-push-oracle Скилл для чтения push-оракула Supra на Hedera: getSvalue(pairId), миллисекундные метки времени и пары USDT. Пригодится, если контракт берёт цены из Supra. CX Codex +1 448установок ccip Помогает настроить перенос токенов между Hedera и EVM-сетями через Chainlink CCIP. Пригодится при выпуске burn-and-mint токенов и интеграции HTS. CX Codex +1 443установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой