A JavaScript/TypeScript utility library for interacting with various price oracle providers on Euler.
Oracle SDK is a comprehensive toolkit that provides a unified interface for interacting with multiple price oracle providers. It simplifies the process of fetching and managing metadata and price data from various sources including Chainlink, Pyth, RedStone, Pendle, and more.
- Unified interface for multiple oracle providers: Chainlink, Pyth, Pendle, RedStone, Chronicle, and more
- Support for indexing Euler contracts:
SnapshotRegistry
,EulerRouterFactory
,EulerRouter
, and more - Canonical deployment and verification artifacts for Euler oracle adapters
- TypeScript support with full type definitions
- Modern ESM and CommonJS support
Depending on the provider, there may be metadata available off-chain. This metadata can be used to decide which contracts / configurations are valid and official according to the provider.
Provider | Metadata Location | Metedata Contents |
---|---|---|
Chainlink | https://reference-data-directory.vercel.app/[slug].json | Proxy address, description, heartbeat, threshold... |
RedStone | https://github.com/redstone-finance/redstone-oracles-monorepo/tree/main/packages/on-chain-relayer/relayer-manifests | Proxy address, description, heartbeat, threshold... |
Pyth | https://hermes.pyth.network/v2/price_feeds | Feed id, feed type, symbol, description... |
Pendle | https://api-v2.pendle.finance/bff/v3/markets/all?chainId=${chainId} | Market address, accounting asset, underlying asset, expiry, and more |
npm install @objectivelabs/oracle-sdk
# or
yarn add @objectivelabs/oracle-sdk
# or
pnpm add @objectivelabs/oracle-sdk
See DEVELOPMENT.md for details on adding support for a new chain, oracle provider or adapter class.
- Node.js (v16 or higher recommended)
- npm, yarn, or pnpm
- Clone the repository:
git clone https://github.com/objectivedefi/oracle-sdk.git
cd oracle-sdk
- Install dependencies:
npm install
npm run build
- Build the project (outputs both CJS and ESM formats)npm run dev
- Watch mode for developmentnpm run test
- Run testsnpm run lint
- Run ESLintnpm run lint:fix
- Fix ESLint issuesnpm run format
- Format code with Prettier
viem
- Ethereum interaction library
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed and maintained by Objective Labs.