THE HALT GATE. Your pool refuses a trade while the stock behind the token is halted, on our oracle's word. One file, no dependencies: curl -sSO https://www.harmonicagent.solutions/oracle/halt-gate/HarmonicHaltGate.sol Inherit it and ask it before a fill: import { HarmonicHaltGate } from "./HarmonicHaltGate.sol"; contract MyHook is BaseHook, HarmonicHaltGate { // the oracle on Robinhood Chain, and how old a row may be and still count as open constructor(IPoolManager pm) BaseHook(pm) HarmonicHaltGate(0x938097252667b9efac600c8dd1826f54eae96881, 1 hours) {} function _beforeSwap(address, PoolKey calldata key, SwapParams calldata, bytes calldata) internal view override returns (bytes4, BeforeSwapDelta, uint24) { _requireOpen(Currency.unwrap(key.currency1)); // reverts NotOpen, OracleQuiet or OracleUnreadable return (BaseHook.beforeSwap.selector, BeforeSwapDeltaLibrary.ZERO_DELTA, 0); } } // once, from any wallet: oracle.subscribe(address(myHook), months) The oracle on Robinhood Chain: 0x938097252667b9efac600c8dd1826f54eae96881 Its row for a token reads open, halted, paused, held, stale or unknown, with the time it was written. The gate fills only on a row that reads open and was written inside the age you set; a row that has gone quiet is not open whatever it last said. Everything else reverts with a reason: NotOpen(token, verdict), OracleQuiet(token, age) or OracleUnreadable(token). A read from inside a contract is a paid read: 100 USDG a month per reading contract, paid from any wallet to the operations wallet in one step with oracle.subscribe(yourContract, months), one to twelve months at a time. The oracle holds nothing. A paid reader may also keep up to twenty tokens on the hourly cadence with oracle.watch(yourContract, token). gateSubscribed() on your contract says whether it is paid and until when. The board and every row, free: https://www.harmonicagent.solutions/#/atlas and https://www.harmonicagent.solutions/api/oracle/equities Every hook on the chain that trades a stock token, and which are gated: https://www.harmonicagent.solutions/#/haltwatch For an agent: the registry's defi_oracle_gate tool returns this sheet, and defi_oracle_subscribe_build returns the subscribe steps.