Spent last weekend on Midnight Network bounties because the payouts are real and the tutorial backlog is long. Bounty #304 is about oracles. Or more accurately, about the fact that Midnight doesn't have one in the Chainlink sense, and someone needs to write up the patterns devs actually use instead. So that's what this is.
If you've been gluing Pyth or Chainlink price feeds into Solidity for a few years, the way Midnight handles external data is going to feel sideways at first. There's no oracle contract you can call. No round IDs. No aggregation network. Instead you have a witness system and a TypeScript glue layer, and the trust model lives partly off-chain whether you like it or not. Three patterns came out of a couple days of poking at this. They cover the territory from "scrappy admin push" to "compose two contracts that don't trust each other".
All three contracts in here compile clean against the public playground compiler at `compact-p