# Liquidcrawl > Liquidcrawl puts a crawler on every company whose stock is tokenized on Robinhood Chain. Each crawler reads its company's new SEC filings and brings each one home as a scoop: a hash of the document and its parsed fields, written onchain with the name of the crawler that caught it. Crawlers are paid in the stock they read. Anyone can spawn one by burning $LCRAWL. Site: https://liquidcrawl.org Agents: https://liquidcrawl.org/agents Docs: https://liquidcrawl.org/docs Builders: https://liquidcrawl.org/build Full version of this file: https://liquidcrawl.org/llms-full.txt ## MCP Server: https://liquidcrawl.org/api/mcp (JSON-RPC over HTTP POST, protocol 2025-06-18) Claude Code: claude mcp add --transport http liquidcrawl https://liquidcrawl.org/api/mcp Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=liquidcrawl&config=eyJ1cmwiOiJodHRwczovL2xpcXVpZGNyYXdsLm9yZy9hcGkvbWNwIn0= - latest_scoops(ticker, form, crawler, limit): Latest scoops, optionally for one company, form or crawler - get_scoop(accession): One scoop and its full record by EDGAR accession (the full record is free 15 minutes after the scoop) - crawlers(): Every crawler with its company, status line, scoops, live catches and rank - get_crawler(name): One crawler by name, with its scoops - insider_tape(ticker, side, min): Form 4 lines with the crawler that brought each in - grid(): Every company whose stock is tokenized on the chain, with its crawler and scoop count - reads(): Published reads with citations (questions are asked on /read) ## HTTP API Base: https://liquidcrawl.org. JSON. Free and rate limited, except the paid window below. - GET /api/v1/crawl: The live crawl: every company on the grid, the last status lines, scoops landing, the leaderboard and totals - GET /api/v1/crawlers: Every crawler: name, company, status line, scoops, live catches, median seconds after the SEC, rank - GET /api/v1/crawlers/{name}: One crawler and its last 100 scoops - GET /api/v1/scoops: Latest scoops, newest first; ?ticker= &form= &crawler= &limit= (up to 200) - GET /api/v1/scoops/{accession}: One scoop and its full record. The scoop is always free; the full record costs $0.002 in USDG through x402 during its first 15 minutes, then it is free - GET /api/v1/tape: Form 4 lines: who, role, bought or sold, shares, price, value, 10b5-1, after hours, crawler; ?ticker= &crawler= &side=buy|sell &min= &plan= &after= - GET /api/v1/grid: Every company whose stock is tokenized on the chain, with its crawler, pool and coverage - GET /api/v1/ledger: Round payouts and the house's traffic to the SEC - GET /api/v1/name?n=: Whether a crawler name is free and valid - POST /api/v1/read: Ask a question about the filings; the answer cites every sentence - POST /api/mcp: MCP (JSON-RPC over HTTP): latest_scoops, get_scoop, crawlers, get_crawler, insider_tape, grid, reads ## x402 The full record of a scoop costs $0.002 (2000 base units of USDG, 6 decimals) during its first 15 minutes, paid with an EIP-3009 transferWithAuthorization on chain 4663 sent base64 in the X-PAYMENT header. Without the header the endpoint answers 402 with the payment requirements. The revenue goes to the crawler that brought the scoop in. After 15 minutes the record is free. Example request: curl -s 'https://liquidcrawl.org/api/v1/scoops?ticker=FLY&limit=1' Response (shortened): { "scoops": [{ "accession": "0001193125-26-417080", "crawler": "swift-silverfish", "ticker": "FLY", "stock": "0x03BC731Ffb162cdd7B98D3C6542bFC291126075d", "form": "4", "acceptedAt": 1791408003, "scoopedAt": 1791408315, "secondsAfterAcceptance": 312, "docUrl": "https://www.sec.gov/Archives/edgar/data/1860160/000119312526417080/ownership.xml", "docHash": "0xa058a27d89080465c85151cf94ddbe47536d9d6fcb5a0a4eeeee7ff61cbbdb12", "payloadHash": "0xb5d15445226e4f1d3583f9d7573d74700280afbb914d9487dcaa0a4b12714cd6", "flags": 40, "verdict": "verified", ... }] } ## The scoop format struct Scoop { uint64 accession; // EDGAR accession without dashes address stock; // stock token on this chain bytes8 form; // "4", "8-K", "10-Q" ... left-aligned ASCII 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 as served by the SEC bytes32 payloadHash; // keccak256 of the parser's canonical JSON (the full record) int128 headline; // Form 4: net open-market USD cents (buy > 0); 10-Q/10-K: revenue; else 0 uint16 flags; // 1 10b5-1, 2 amendment, 4 officer, 8 director, 16 10% owner, 32 after hours uint16 parser; // parser version } scoopHash = keccak256(abi.encode(scoop)), stored in LiquidcrawlScoops.entriesOf(accession) with the crawler id. ## Verify a scoop yourself Script: https://liquidcrawl.org/agents/verify-scoop.mjs. It fetches the filing from the SEC, hashes it, compares with the scoop's docHash, rebuilds the struct and finds its hash in the registry. npm i viem curl -sO https://liquidcrawl.org/agents/verify-scoop.mjs node verify-scoop.mjs 0001193125-26-417080 document hash matches 0xa058a27d89080465c85151cf94ddbe47536d9d6fcb5a0a4eeeee7ff61cbbdb12 registry entry matches: crawler #122, status confirmed 0xd1eedcdcb95facbfdc802b204a61ecd030f515663e0e466f0a63b0f68d18957a ## Spawning - Price: 1000000 $LCRAWL, burned when you spawn. The burn is final. - Name: 3 to 24 characters: lowercase letters, digits and single dashes. One name, one crawler, forever. - Beat: One company on the grid. Up to 5 spawned crawlers per company, plus the house's own crawler there. 300 spawned crawlers in all at launch. - Who runs it: The house hosts and runs every crawler, yours included. There is nothing to install and nothing to keep online. - Turns: Crawlers on the same company take turns in the order they were spawned, one new filing each, the house's crawler first. With two crawlers on a company, each takes every second filing. - What counts: A scoop counts once the verifier confirms it and its 24-hour flag window has passed. - Paid in: The stock of your crawler's company, bought on the chain's pools at round close. If no pool is deep enough (the quote moves more than 1%), USDG instead. Amounts under $1 carry over. - Rounds: Daily at 00:00 UTC. The pool is 70% of creator fees. Each confirmed scoop earns weight (from 1 for a routine Form 4 to 8 for a 10-K); each crawler's share is its weight over everyone's. The house crawlers' share rolls over to the next round. - Paid reads: When a reader pays for the full record of a scoop in its first 15 minutes, all of it goes to the crawler that brought it in. - Holding it: A crawler is a token you hold and can transfer. Each round pays whoever holds it. You can retire it; it then stops taking turns. ## Weights per confirmed scoop - Form 4 with an open-market buy or sale over $100k: 3 - Other Form 4: 1 - 8-K: 3 - 8-K with item 2.02 (results): 6 - 10-Q, 20-F half-year: 5 - 10-K, 20-F: 8 - 13D, 13G, S-1, S-3, 424B, DEF 14A: 2 - Fund filings, Form 3, Form 5, 6-K: 1 ## Ordering a crawl - What you get: A crawl of one company: its filings of the last 90 days read by the swarm, and a public report where every sentence cites a filing. - Price: 100000 $LCRAWL, held in escrow when you order. - Burn: The escrow is burned when the report is delivered. - Refund: If nothing is delivered within 24 hours, you take the tokens back and nothing is burned. ## Contracts (Robinhood Chain, id 4663) - LiquidcrawlScoops (registry): 0x675D965e521FBF4D88c34C9083034a830f775fD6 - LiquidcrawlCrawlers: 0x4038E12A74f1026d50528c025176C74901cb2B14 - LiquidcrawlRounds: 0xd9470e785Ac587915E9Bffadc247fB0e12af47Ac - LiquidcrawlOrders: 0xEcf4EA2ee67DBFcDcaD86EF7D68d784a31660beF ## Privacy and sources - Reading needs no account, no wallet and no cookie. The only thing the site stores in your browser is your cookie choice. - No analytics and no tracking scripts. - The house reads public documents only: filings on the SEC's EDGAR, nothing behind a login or a paywall. - It obeys robots.txt on every host and stays well under the SEC's fair-access rate of 10 requests a second: 1 a second on average, 5 at most, with a declared User-Agent and contact. - It never reads X.