A powerful plugin for interacting with Pyth Network price feeds and data streams. This plugin provides real-time access to cryptocurrency, forex, and other asset price data through a natural language interface.
- Real-time price feed streaming
- Latest price updates retrieval
- Publisher caps information
- Comprehensive price feed listings
- Natural language processing for price feed queries
Stream real-time price updates for specific assets.
Example Prompts:
Stream price updates for 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43
Stream BTC/USD price updates
Retrieve the most recent price updates for specific assets.
Example Prompts:
Latest price updates for 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43
Fetch information about publisher capabilities and limits.
Example Prompts:
Get me all the published caps
Show publisher capabilities
List all publisher caps
Retrieve available price feeds and their metadata.
Example Prompts:
Get all available price feeds from Pyth Network
List all crypto price feeds
Show me available forex feeds
Create a .env
file in your project root with the following variables:
# Network Environment (mainnet or testnet)
PYTH_NETWORK_ENV=mainnet
# Mainnet Configuration
PYTH_MAINNET_HERMES_URL=https://hermes.pyth.network
PYTH_MAINNET_WSS_URL=wss://hermes.pyth.network/ws
PYTH_MAINNET_PYTHNET_URL=https://pythnet.rpcpool.com
PYTH_MAINNET_CONTRACT_REGISTRY=https://pyth.network/developers/price-feed-ids
PYTH_MAINNET_PROGRAM_KEY=FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH
# Testnet Configuration
PYTH_TESTNET_HERMES_URL=https://hermes.pyth.network
PYTH_TESTNET_WSS_URL=wss://hermes.pyth.network/ws
PYTH_TESTNET_PYTHNET_URL=https://pythnet.rpcpool.com
PYTH_TESTNET_CONTRACT_REGISTRY=https://pyth.network/developers/price-feed-ids#testnet
PYTH_TESTNET_PROGRAM_KEY=FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH
PYTH_MAX_RETRIES=3
PYTH_RETRY_DELAY=1000
PYTH_TIMEOUT=5000
PYTH_GRANULAR_LOG=true
PYTH_LOG_LEVEL=info
# General runtime configuration
RUNTIME_CHECK_MODE=false
# Streaming Configuration
PYTH_ENABLE_PRICE_STREAMING=true # Enable/disable price streaming functionality
PYTH_MAX_PRICE_STREAMS=2 # Number of price updates to collect before closing stream
# Can be set to higher values (e.g., 10000) for production use
The streaming configuration controls how the price feed streaming works:
PYTH_ENABLE_PRICE_STREAMING
: Toggle to enable/disable the streaming functionality. Set totrue
to allow real-time price updates.PYTH_MAX_PRICE_STREAMS
: Controls how many price updates to collect before automatically closing the stream. While set to 2 for testing, this can be increased to much higher values (e.g., 10000) for production use cases where continuous streaming is needed.
PYTH_TEST_ID01=0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43
PYTH_TEST_ID02=0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace
- Automatic Price ID Detection: Supports both hex IDs and common symbols (BTC/USD, ETH/USD, etc.)
- Flexible Data Formats: Supports both hex and base64 encoding
- Granular Logging: Detailed logging for debugging and monitoring
- Error Handling: Comprehensive error handling with detailed feedback
- Streaming Control: Configurable stream limits and timeouts
This plugin uses the official @pythnetwork/hermes-client
for reliable data access and streaming capabilities.
The plugin includes comprehensive error handling for:
- Invalid price feed IDs
- Network connection issues
- Configuration errors
- Validation failures
- Stream management
Enable granular logging by setting PYTH_GRANULAR_LOG=true
for detailed operation insights.
Contributions are welcome! Please ensure you:
- Follow the code style
- Add tests for new features
- Update documentation as needed
- Maintain type safety