An oracle is a way for a blockchain or smart contract to interact with external data. With blockchains being deterministic one-way streets, an oracle is a path between off-chain and on-chain events.