
Most oracles today are push oracles where the oracle operator is responsible for submitting price updates to the blockchain. Pyth is different: it is a pull oracle where anyone can permissionlessly update the on-chain price.
Pyth uses a simple system where users can request the latest price update from an off-chain service. Anyone can submit a price update to the on-chain Pyth contract, which verifies its authenticity and stores it for later use. This system allows applications to use a single transaction flow that first updates the price then performs the necessary application logic.