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

pyth-price-feeds — скилл для Claude Code: Pyth на Hedera

Скилл для интеграции Pyth pull-фидов в контракты на Hedera: обновление цены через Hermes, чтение с ограничением по возрасту, проверка confidence.

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

Что делает pyth-price-feeds

Pyth на Hedera работает по pull-схеме: свежее чтение обычно требует сначала отправить payload из Hermes в контракт с оплатой, и только потом вызывать getPriceNoOlderThan. Скилл ведёт агента по этой цепочке и напоминает про getUpdateFee(updateData), чтобы msg.value покрывал комиссию.

Внутри — справочные материалы references/hedera-feeds.md и references/examples.md с набросками обновления, чтения и нормализации expo, а также чек-лист для ревью. Отдельно разобраны проверки после чтения: publishTime != 0, price > 0 и отказ, когда conf шире самой цены.

Главная ловушка — адреса контракта и price ID. Их нужно брать из документации Pyth для Hedera, а не из дефолтов Ethereum: chain ID здесь 296 для тестнета и 295 для мейннета. expo знаковый и не совпадает с decimals ERC-20, поэтому его нормализуют к шкале потребителя.

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

  • обновить цену Pyth на Hedera перед свежим чтением
  • посчитать комиссию через getUpdateFee и приложить её в msg.value
  • прочитать фид с ограничением по возрасту вместо getPriceUnsafe
  • отклонить цену, когда confidence шире самой цены
  • привести знаковый expo к 18 decimals

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

  • Помоги обновить Pyth-фид на Hedera: получи updateData из Hermes и отправь updatePriceFeeds с достаточным msg.value.
  • Проверь мой контракт: чтение через getPriceNoOlderThan, проверка conf и нормализация expo к 18 decimals.
  • Собери чек-лист ревью для интеграции Pyth на Hedera testnet 296.

Как установить pyth-price-feeds

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill pyth-price-feeds -a claude-code

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

~/.claude/skills/pyth-price-feeds/SKILL.md

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

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

Вопросы о pyth-price-feeds

Как установить pyth-price-feeds в Claude?

Выполните npx skills add hedera-dev/hedera-skills --skill pyth-price-feeds -a claude-code. Скилл появится в ~/.claude/skills/pyth-price-feeds/SKILL.md.

Что делает pyth-price-feeds?

Проводит агента по интеграции Pyth pull-фидов на Hedera: отправка Hermes-payload, оплата updatePriceFeeds, чтение через getPriceNoOlderThan и проверка confidence.

Что нужно учесть при работе с Pyth на Hedera?

Адреса контракта и price ID берутся из документации Pyth для Hedera, а не из Ethereum-дефолтов. msg.value на Hedera — это tinybars, и его должно хватать на комиссию Pyth.

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

SKILL.md · Apache-2.0
---
name: pyth-price-feeds
description: >
  Pyth pull price feeds on Hedera. Use when integrating Pyth on Hedera (testnet 296 /
  mainnet 295), fetching Hermes update payloads, paying updatePriceFeeds, calling
  getPriceNoOlderThan, checking confidence, or normalizing signed price + expo to 18 decimals.
---

# Pyth Price Feeds (Hedera)

**Pull pattern:** Pyth is not a fire-and-forget push feed. Fresh reads usually need a Hermes payload submitted on-chain (payable) **before** `getPriceNoOlderThan`.

```text
Hermes → updatePriceFeeds{value: fee}(updateData) → getPriceNoOlderThan(priceId, maxAge)
```

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

## Quick Reference

| Piece | Role |
| ----- | ---- |
| Pyth contract | Network `IPyth` address |
| Price ID | `bytes32` feed id (not an aggregator address) |
| Update | Payable `updatePriceFeeds` with Hermes `updateData` |
| Fee | `getUpdateFee(updateData)` — `msg.value` must cover it |
| Read | `getPriceNoOlderThan(priceId, maxAge)` |
| Confidence | Reject when `conf > uint64(price)` |
| Scale | Signed `price` + `expo` → consumer decimals (often 18) |

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

See [references/hedera-feeds.md](references/hedera-feeds.md) for where to source the Pyth contract and price IDs. See [references/examples.md](references/examples.md) for update / read / expo sketches.

## Critical: Update Before Fresh Reads

If the on-chain price is older than your staleness bound, fetch Hermes update data and submit it:

```solidity
function updatePrice(bytes[] calldata updateData) external payable {
    uint256 fee = PYTH.getUpdateFee(updateData);
    if (msg.value < fee) revert UpdateFeeTooLow(msg.value, fee);
    PYTH.updatePriceFeeds{ value: msg.value }(updateData);
}
```

Hedera `msg.value` is tinybars via JSON-RPC — attach enough native value for the Pyth fee. Do not treat a stale `getPriceUnsafe` as a valid trading price.

## Critical: Confidence And Signed Expo

After `getPriceNoOlderThan`:

| Check | Why |
| ----- | --- |
| `publishTime != 0` | Incomplete |
| `price > 0` | Invalid / non-positive |
| `conf > uint64(price)` | Confidence wider than the price |
| Normalize `expo` | `expo` is signed; not the same as ERC-20 decimals |

```solidity
PythStructs.Price memory price = PYTH.getPriceNoOlderThan(priceId, maxStaleness);
if (price.publishTime == 0) revert IncompleteRound();
if (price.price <= 0) revert InvalidPrice();
if (price.conf > uint64(price.price)) revert InvalidConfidence();
```

## Checklist

When implementing or reviewing Pyth on Hedera:

- [ ] Pyth contract + price IDs taken from Pyth Hedera / Hermes docs (not Ethereum defaults)
- [ ] Hermes payloads submitted with sufficient `msg.value` before relying on a fresh price
- [ ] Reads use `getPriceNoOlderThan` (or equivalent max-age API), not unbounded unsafe prices for trading
- [ ] Confidence wider than price reverts
- [ ] Signed `expo` 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) — update, read, and expo sketches
- [references/hedera-feeds.md](references/hedera-feeds.md) — where to source Pyth contract and price IDs
- [Pyth Price Feeds](https://docs.pyth.network/price-feeds)
- [Pyth EVM contract addresses](https://docs.pyth.network/price-feeds/core/contract-addresses/evm)
- [Hermes price feeds](https://hermes.pyth.network/v2/price_feeds)

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

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

Всё по теме «Бэкенд и API» →
chainlink-data-feeds-skill smartcontractkit Помогает агенту писать контракты и офчейн-код для чтения ценовых фидов Chainlink через AggregatorV3Interface и latestRoundData. CX Codex +1 364установок compose goldsky-io Скилл для работы с Goldsky Compose: помогает писать и деплоить TypeScript-задачи, которые срабатывают по cron, HTTP или событию в сети. CX Codex +1 3 500установок solidity Mindrally Скилл для написания и ревью Solidity-контрактов: паттерны защиты от reentrancy, оптимизация gas, тесты и связка с React-фронтендом. CX Codex +1 721установок develop-secure-contracts OpenZeppelin Скилл учит ИИ подключать библиотеки OpenZeppelin к контрактам. Модель дополняет существующий код вместо грубой перезаписи. CX Codex +1 545установок blockchain-developer sickn33 Скилл направляет разработку смарт-контрактов, Web3-приложений и децентрализованных систем. Пригодится для проектирования, ревью и проверки рисков до действий в сети. CX Codex +1 1 200установок web3-testing Seth Hobson Скилл помогает тестировать Solidity-контракты через Hardhat и Foundry: от модульных проверок до форка mainnet. Подойдёт для тестовых наборов и DeFi-протоколов. CX Codex 10 800установок

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

Quality Gates Скилл настраивает автоматические проверки кода: линт и типы после каждой правки, локальный CI перед пушем, чек-лист перед деплоем. CX Codex +1 536установок Hedera Agent Kit v4 Migration Ведёт проект с [email protected] на v4: меняет пакеты, импорты и переписывает кастомные инструменты на BaseTool. CX Codex +1 484установок agent-kit-plugin Скилл помогает создавать плагины и инструменты для Hedera Agent Kit. Он пригодится при добавлении операций с токенами, аккаунтами и другими сервисами Hedera. CX Codex +1 463установок create-harness-spec Превращает идею фичи Hedera в готовый рецепт для hedera-harness: PRD, spec.yaml, валидаторы. Пригодится, когда нужно перейти от замысла к запускаемой спецификации. CX Codex +1 465установок harness-spec-anatomy Описывает, из чего состоит рецепт hedera-harness: файлы, значения по умолчанию v3, стадии прогона и правило слепой проверки. Нужен тем, кто пишет или проверяет такие рецепты. CX Codex +1 464установок 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установок supra-push-oracle Скилл для чтения push-оракула Supra на Hedera: getSvalue(pairId), миллисекундные метки времени и пары USDT. Пригодится, если контракт берёт цены из Supra. CX Codex +1 448установок

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

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