Quiz Entry - updated: 2026.07.30
Lay out the four foundational oracle patterns as a 2×2 of direction and initiator.
Four combinations: pull/push inbound (data going onto the chain) and pull/push outbound (data leaving the chain), differing by who initiates.
* The 2×2 — direction (inbound/outbound) crossed with initiator (pull/push) gives four patterns, each with its own latency and trust profile. *
| Pull (receiver requests) | Push (sender volunteers) | |
|---|---|---|
| Inbound (into chain) | On-chain code requests off-chain state; oracle fetches and returns it via a transaction | Off-chain component sends its state to the chain when it changes |
| Outbound (out of chain) | Off-chain component retrieves on-chain state on demand | On-chain event triggers the oracle to send state out to an off-chain component |
The single idea: direction = which way the data travels relative to the chain; initiator = which side kicks off the exchange. The four cells behave very differently in latency, cost, and who you have to trust, which is exactly why naming them as distinct patterns is useful.
Go deeper:
Foundational Oracle Patterns (Mühlberger et al., arXiv) — full definitions of all four patterns with use-cases and measured latency/gas.
Blockchain oracle (Wikipedia) — inbound/outbound and push/pull described alongside real deployed systems.