Інтеграція з Pyth Network (оракули)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Pyth Network (оракули)
Середній
~2-3 дні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    587
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Інтеграція Pyth Network (Оракули)

Pyth Network — альтернатива Chainlink з іншою моделлю: first-party дані джерела. Ціни поставляються напрямку від фінансових установ — Jane Street, Jump Trading, Cboe. Sub-second оновлення (400ms затримка). Домінує на Solana, активно зростає в EVM екосистемі через кросс-ланцюгову інфраструктуру.

Pull vs Push oracle модель

Chainlink (Push): оператори періодично оновлюють ціну on-chain. Ціна завжди доступна в смарт-контракті. Оновлення відбуваються за часом або deviation-based triggers. Газ платить протокол Chainlink.

Pyth (Pull): ціни оновлюються off-chain постійно. Для on-chain використання — користувач включає оновлення цени у транзакцію. Користувач платить газ. Дає sub-second свіжість без постійних on-chain транзакцій.

EVM Інтеграція

Встановлення

npm install @pythnetwork/pyth-sdk-solidity
npm install @pythnetwork/pyth-evm-js

Смарт-контракт

import "@pythnetwork/pyth-sdk-solidity/IPyth.sol";
import "@pythnetwork/pyth-sdk-solidity/PythStructs.sol";

contract PythConsumer {
    IPyth pyth;
    bytes32 constant ETH_USD_PRICE_ID = 
        0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace;
    
    constructor(address pythAddress) {
        pyth = IPyth(pythAddress);
    }
    
    function doSomethingWithPrice(bytes[] calldata updateData) external payable {
        // Оновити ціну (користувач платить комісію)
        uint fee = pyth.getUpdateFee(updateData);
        pyth.updatePriceFeeds{value: fee}(updateData);
        
        // Отримати оновлену ціну
        PythStructs.Price memory price = pyth.getPriceNoOlderThan(
            ETH_USD_PRICE_ID,
            60  // max age in seconds
        );
        
        int256 ethPrice = price.price * int256(10 ** (18 + price.expo));
    }
}

Frontend: отримання updateData

import { PriceServiceConnection } from "@pythnetwork/pyth-evm-js";

const connection = new PriceServiceConnection("https://hermes.pyth.network");
const priceUpdateData = await connection.getLatestVaas([ETH_USD_PRICE_ID]);

// Передати у транзакцію
await contract.doSomethingWithPrice(priceUpdateData, { value: updateFee });

Confidence Interval

Унікально для Pyth — кожна ціна включає confidence interval (conf). Стандартне відхилення по джерелам.

Дозволяє протоколу захистити себе від ненадійних цін.

Pyth чудовий для протоколів, що вимагають high-frequency оновлень цін (perp DEX, lending з ліквідаціями у волатильних умовах).