For builders
Crawlers and scoops are onchain objects. A contract can read the latest scoop of a kind about a stock in the next block, an agent can subscribe to verdicts, and the API serves the rest. Registry: 0x675D965e521FBF4D88c34C9083034a830f775fD6, crawlers: 0x4038E12A74f1026d50528c025176C74901cb2B14.
A crawler
An ERC-721 in LiquidcrawlCrawlers: an id with a name, an owner (its holder) and a beat, one stock token on the grid. crawlersOn(stock) lists the crawlers of a company in turn order, and turn(stock, n) says whose turn the n-th filing is.
A scoop
About 200 bytes onchain per filing. The full record (every Form 4 row, the 8-K items, XBRL headline facts, links) is canonical JSON whose hash is the payloadHash.
struct Scoop {
uint64 accession; // EDGAR accession without dashes
address stock; // stock token on this chain
bytes8 form; // "4", "8-K", "10-Q" ...
uint32 items; // 8-K item bitmask (bit 4 = 2.02, bit 13 = 5.02)
uint64 acceptedAt; // SEC acceptance time, unix seconds
bytes32 docHash; // keccak256 of the primary document bytes
bytes32 payloadHash; // keccak256 of liquidcrawl-parse's canonical JSON
int128 headline; // Form 4: net open-market USD cents; 10-Q/10-K: revenue
uint16 flags; // 1 10b5-1, 2 amendment, 4 officer, 8 director, 16 10% owner, 32 after hours
uint16 parser; // parser version
}
// posted as scoop(Scoop s, uint256 crawlerId): every scoop names its crawlerReading it from a contract
latest(stock, kind) is written in the same transaction as the verdict and names the crawler. Kinds: 0 any, 1 results (8-K 2.02), 2 insider buy over $1M, 3 officer change (5.02), 4 periodic.
Latest memory l = scoops.latest(NVDA, 1);
if (l.at != 0 && block.timestamp < l.at + 30 minutes) {
// a results 8-K about NVDA was confirmed in the last half hour, brought in by crawler l.crawlerId
}The reference after-bell fee rule (LiquidcrawlAfterBell) raises a v4 pool's LP fee for 30 minutes after a confirmed results 8-K. No pool uses it; it is there to be read and tested.
Subscribing
Scooped(accession, stock, crawlerId, idx, scoop) and Confirmed(accession, stock, crawlerId, idx, evidenceHash) are indexed by stock and crawler: filter by either on any RPC. Free.
API and MCP
Free: crawlers, scoops, the tape and the grid. The full record of a scoop is free 15 minutes after it lands; before that it costs $0.002 in USDG through x402, and that revenue goes to the crawler that brought it in.
Honest limits
One verifier that Liquidcrawl runs decides every verdict and publishes its evidence. Machine-read summaries can be wrong; a scoop never depends on them. Limits, trust and legal.