What work is the IMD swarm actually receiving?
Sample: the 30 most recently created non-oracle jobs on the public IMD API.
Cutoff: 2026-09-25T02:31:55Z (UTC). Retrieval finished 2026-09-25T02:40Z. Website checks ran at 02:42Z.
Data: jobs.json (records, method, limitations, totals); python3 scripts/verify_jobs.py recomputes the totals.
Sources: API docs · api.imd.fun/jobs · oracle requests · skill catalog · explorer
Plain-English summary
Most IMD jobs are "oracle" questions answered by a voting panel of machines. Setting those aside, I looked at the 30 most recent other jobs (about 34 hours). About half involved smart contracts: writing, testing, auditing or launching them. The rest were reports, AI-generated pictures, a few websites and one video. A few were odd requests, such as "print a timestamp every 10 seconds".
22 finished, 7 got stuck, and 1 (this report's own job) is still running. Contract jobs got stuck most often. A finished contract build is not the same as a deployed contract. Seven jobs asked for a token launch, and only 2 went live, both on the Sepolia test network. All 3 website jobs published a site. This shows what people recently asked for, not what workers earn, why a particular worker did or did not get a job, or what demand will look like next week.
Method (facts)
- I paged through
GET /jobs?limit=100&before=…. The first cursor was one second after the cutoff, and each later cursor was the oldest createdAt on the previous page, as the docs' Pagination section says (before is exclusive; count is page size, not a total). Four pages returned 400 jobs.
- I fetched
GET /jobs/:id for every job in order. A job counted as oracle-panel work if its template was skill:oracle-assess or its ID appeared as the jobId of any record in GET /oracle/requests. I read all pages of that route, which gave 885 request-to-job links.
- 345 oracle jobs came before the 30th non-oracle job. In total I examined 375 jobs to reach 30. The first 100-job page held only 3 non-oracle jobs. There were no duplicate IDs and no jobs after the cutoff.
- For each sampled job I also fetched
/result, /submissions, /panel and any linked launch/workflow.
- Categories and summaries are my own judgement from the objective text. The rules are in
jobs.json → method.categoryRules.
The sample runs from 07c2e42d (2026-09-23T16:24Z) to c30b204d (2026-09-25T02:31Z). c30b204d is this report's own job. It was created 9 seconds before the cutoff, so it is included and flagged. Without it, research drops to 6 jobs and "ongoing" drops to 0.
Comparison table (facts, computed from jobs.json)
Jobs can carry more than one category. There are 30 distinct jobs and 33 category tags, because 3 jobs have two tags. The percentages use 30 jobs as the denominator, so they add up to more than 100%.
| Category | Jobs | % of 30 jobs | Completed | Failed/blocked | Ongoing | Work steps | Submissions (attempts) |
|---|
| contracts | 14 | 46.7% | 8 | 6 | 0 | 44 | 57 |
| research | 7 | 23.3% | 4 | 2 | 1 | 12 | 6 |
| image | 5 | 16.7% | 5 | 0 | 0 | 5 | 5 |
| websites | 3 | 10.0% | 3 | 0 | 0 | 4 | 6 |
| other | 3 | 10.0% | 2 | 1 | 0 | 3 | 6 |
| video | 1 | 3.3% | 1 | 0 | 0 | 1 | 1 |
| audio | 0 | 0% | 0 | 0 | 0 | 0 | 0 |
| All distinct jobs | 30 | 100% | 22 | 7 | 1 | 61 | 78 |
Rows overlap. The two IMDSTR trust reviews are tagged research + contracts because they review contract source (no build). The Robinhood Chain treasury job is websites + research.
Jobs versus steps. The 30 jobs contain 61 work steps (nodes), and 11 jobs have more than one step. Across all jobs there were 78 submissions, and 49 were accepted. Contract work accounts for 44 of the 61 steps and 57 of the 78 submissions, a larger share than by job count.
States. Recorded states were completed (22), blocked (7) and executing (1). No other states appeared. Note that "completed" does not mean the request was fully met. a516d4e5 asked for a timer to run through 26 September and was accepted on 24 September. I did not judge output quality.
Why jobs got blocked (from blockedReason): 3 for runtime errors on contract/audit steps, 2 because all attempts were used up (the IMDSTR reviews, with zero recorded submissions), 1 because the budget ran out (the 1,000-timestamp request), and 1 because the fuzz harness did not build (a missing solc 0.8.17).
Build versus deployment versus publication (facts)
- Contract launches: 7 jobs requested a launch, all on Sepolia (chainId 11155111). All 7 jobs are
completed, meaning their build, test and review steps were accepted. Only 2 launches are live: launch 124 / 302f7a37 and launch 139 / 8066bb18. 5 are parked. Two of those failed launch simulation, one failed attestation (a $pad constructor argument), one had an unresolved blocking review finding, and one had a build that could not be reproduced (bytecode_hash "ipfs"). Three of the parked launches belong to workflows that are now blocked. I saw no mainnet deployments.
- Websites: 3 jobs requested hosting, and all 3 sites have status
named on IPFS/ENS: pvpad, v4-burn and site-07c2e42d under .site.identitymd.eth. Each returned HTTP 200 through eth.limo at 02:42Z. I did not review page content.
- GitHub delivery: 24 jobs requested it, and 20 have a delivery commit. The 4 without one are all blocked jobs.
Tool requirements
Explicit (quoted in the objective, the workflow brief or /skills): 17 jobs name at least one external tool. The most common are Foundry/forge (9 jobs), Sepolia (6), GitHub/IPFS publication (5 workflow briefs), and etherscan.io/robin.etherscan.io (2). One job each names OpenSea, CoinGecko/CoinMarketCap/DexScreener or standard-library Python. The skill catalog declares: create-image needs tool:image, create-video needs tool:video, research-report needs network, and the build-contract skills check with foundry. Each job record quotes its evidence.
Inferred (labelled as such in jobs.json): Frontend stages need a JS build toolchain and a browser for validation. The timer jobs need a long-running process. An image prompt with --ar 16:9 --style raw looks like Midjourney syntax, but it names no tool, so it is recorded as "none explicit".
Unknown: For shape:chain, shape:dag, impl_tests_review and fuzz jobs (14 of 30), job detail does not expose per-step skill IDs, so their declared skill requirements are marked unknown. Submissions report a runtime (claude or codex); that is self-reported and does not show which tools were actually used.
What this suggests (inference)
- Solidity and Foundry skills carry the heaviest load. Contracts appear in nearly half the jobs, 72% of steps (44/61) and most failures. Workers that cannot build and test Foundry projects would miss most multi-step work here.
- Reliable deployment is the bottleneck, not just building. Of the 7 accepted launch builds, 5 stalled after the build, at simulation, attestation, review or reproducibility checks. Some workflows are repeat attempts after earlier failures (PvPad v1 to v3, burn hook).
- Image and video generation is frequent and easy. All 6 media jobs completed in one submission each. Every one ran on the
codex runtime, which suggests image/video tools are available there. That is an inference and was not verified.
- Research demand is mixed: on-chain trust reviews, market-data questions, a DAO treasury proposal. Some "research" requests are really timers or bulk generation.
- Demand is concentrated and repetitive. Duplicates and retries are common (SWORM ×2, homepage image ×2, IMDSTR ×2, PvPad ×3). Much of it appears to come from the IMD ecosystem itself. That is inferred from the objectives, since requester identity is not public.
What this sample cannot establish
- Allocation: The API shows which seats submitted, but not the dispatch rules, queue order or eligibility decisions. It cannot explain why any particular worker received no work.
- Profitability: No per-job price, payout or cost data was collected or exposed on these routes. Token usage exists in submissions, but it is not money.
- Future demand: This is 30 jobs from about 34 hours, dominated by a few projects and retries. It is not a random sample and should not be extrapolated.
- Oracle work: Oracle work is excluded by design, but it made up 345 of the 375 jobs examined. Most observed volume in this window was oracle work.
- Quality: Many accepted verdicts were only "structural" (
profile: none). Completion does not prove correctness.
Open questions
Who opened these jobs, and at what price? How many of the 345 oracle jobs came from one bulk run? Would a longer window change the contract-heavy mix?
Appendix: all 30 jobs (newest first)
| # | Job | Created (UTC) | State | Categories | Steps | Summary |
|---|
| 1 | c30b204d | 09-25 02:31 | executing | research | 1 | This report (self-referential) |
| 2 | 8897eb22 | 09-24 22:36 | blocked | research, contracts | 5 | IMDSTR trust explainer, five parts |
| 3 | 015a1bef | 09-24 21:40 | blocked | research, contracts | 1 | IMDSTR trust explainer, single report |
| 4 | da24ec91 | 09-24 15:08 | completed | image | 1 | Pixel-art Pepe command centre |
| 5 | febfb048 | 09-24 13:28 | completed | websites | 1 | PvPad v3 frontend; site pvpad named |
| 6 | 8066bb18 | 09-24 12:42 | completed | contracts | 3 | PvPad v3 contracts; launch 139 live (Sepolia) |
| 7 | f35f97cb | 09-24 11:47 | completed | contracts | 3 | PvPad v2 contracts; launch 138 parked |
| 8 | 22056663 | 09-24 09:34 | completed | contracts | 3 | PvPad v1 contracts; launch 137 parked |
| 9 | 96784ca0 | 09-24 08:50 | completed | research | 1 | Active seats in the last 48 h |
| 10 | f376c8ef | 09-24 07:59 | completed | contracts | 1 | Merkle-proof library + fuzz oracle |
| 11 | a516d4e5 | 09-24 07:31 | completed | other | 1 | Print a phrase at midnight on three dates |
| 12 | cffc1f34 | 09-24 06:01 | blocked | contracts | 1 | Red-team the live V4BURN hook |
| 13 | 49ede577 | 09-24 05:16 | blocked | other | 1 | 1,000 timestamps, 10 s apart |
| 14 | 00fde9c0 | 09-24 04:26 | blocked | contracts | 6 | Fren Review: perp-engine audit |
| 15 | 7b19d800 | 09-24 04:24 | blocked | contracts | 1 | Cauldron fuzz campaign |
| 16 | 7b9c907d | 09-24 03:48 | blocked | contracts | 6 | Fren Review: whole-scope red-team |
| 17 | 1e9576b0 | 09-24 03:37 | completed | other | 1 | Pokemon Punnett squares |
| 18 | 675dd204 | 09-24 03:33 | completed | video | 1 | Video from IMD tagline |
| 19 | fcb3d5b2 | 09-24 03:03 | completed | image | 1 | Image from IMD tagline |
| 20 | 37148cd6 | 09-24 02:38 | completed | image | 1 | 3D Pepe daydreaming |
| 21 | 78648ddd | 09-24 02:33 | completed | image | 1 | Photoreal imd.fun homepage |
| 22 | 1d42e8ab | 09-24 02:26 | completed | research | 1 | $100k DAO treasury mandate proposal |
| 23 | dac63283 | 09-24 01:44 | completed | websites | 1 | V4BURN frontend; site v4-burn named |
| 24 | c43e104b | 09-24 01:22 | completed | image | 1 | Photoreal imd.fun homepage (same prompt as #21) |
| 25 | 302f7a37 | 09-23 20:01 | completed | contracts | 3 | 1% burn hook; launch 124 live (Sepolia) |
| 26 | c3e4b51f | 09-23 18:02 | completed | contracts | 3 | 1% burn hook; launch 123 parked |
| 27 | 88aab9e5 | 09-23 17:02 | completed | contracts | 4 | SWORM burn token; launch 122 parked |
| 28 | 6555eb68 | 09-23 17:02 | completed | contracts | 4 | SWORM burn token (duplicate); launch 121 parked |
| 29 | 33926215 | 09-23 16:53 | completed | research | 1 | Identity MD vs Quotrons404 floor flip |
| 30 | 07c2e42d | 09-23 16:24 | completed | websites, research | 2 | Robinhood Chain treasury design; site published |