IO & VacuumLabs: Enhancing Plutus - Performance, Correctness, and Usability
Input Output (IO) & VacuumLabs
Three workstreams enhancing Plutus: (1) UPLC capabilities — casing on Data, multiIndexArray (CIP-0156), BuiltinValue functions (CIP-0168), SNARK-friendly Poseidon hash, scope check investigation, laziness/memoization CIP; (2) Formal specification and security — property-based conformance testing framework, Agda formalization of programmatic built-ins, structured evaluator + costing security audit; (3) Developer experience — new GHC Plinth backend, improved error messages, reduced boilerplate, multi-version GHC support, dependency decoupling from Nix/native C libs. Co-venture with VacuumLabs distributing Plutus stewardship.
Scorecard
How this score works
Each criterion is worth between 1 and 4 points. The score is the points earned out of the points on criteria that have been answered — shown as a percentage. Green is 75% or higher, Amber is 50–74%, and Red is below 50%.
Some criteria are checked automatically against the proposal data (open source, doxxed team, treasury return clauses, etc.). Others are human-judgment calls — value for money, public good, whether the deliverables are realistic. Those stay blank until a DRep ticks them.
Criteria can also be marked Not applicablewhen they don't fit the proposal — for example, "open source" doesn't apply to a DAO governance proposal with no software output. Those are excluded from the score entirely, neither helping nor hurting.
Green requires 80% coverage. If less than 80% of the applicable criteria (by points) have been answered, the verdict stays at Amber — "pending review" — even when every answered criterion passes. This proposal's coverage is currently 68% (13 of 19 applicable criteria answered). The auto-calculated band would have been Green, but coverage is below the threshold so the verdict is shown as Amber to flag that judgment criteria are still pending.
Vote intent
Export & audit
↓ Download scorecard.mdRaw payload · Treasury (true) / Admin (intersect)
{
"schema_version": "1.2.0",
"id": "onchain-io-vacuumlabs-plutus-enhancement",
"ingestion": {
"ingested_at": "2026-05-11T16:00:00Z",
"ingested_by": "claude-opus-4.7",
"source_documents": [
"https://www.cardanocube.com/governance/gov_actions/gov_action1w0shrfxqwv95kk0v4cn34wylz25a2cmqkq5jpc0e2yrahhqava3qvczhx6t",
"https://ipnso-com.ipns.dweb.link/?cid=Qmd7G7L6xinunTLU9JorPLYyFCLGRarXEn7RngdNYgNH3B"
],
"extraction_notes": "IO 2026 portfolio (tx #6). Co-venture with VacuumLabs. Yes 177.15M — low, similar to DevEx. Some deliverables (casing on Data, multiIndexArray, BuiltinValue functions) require Dijkstra hard fork to activate on mainnet — benefits gated on separate governance action. CIP-0168 not yet ratified (PR #1090) — risk flagged. Duration 12 months (Q3 2026 – Q2 2027). Extremely detailed milestone table (24 individual deliverables). Philip Wadler (Haskell designer) named as external researcher collaborator for laziness investigation."
},
"source": {
"channels": [
"onchain"
],
"hydra_id": null,
"onchain_tx_hash": "73e171a4c0730b4b59ecae271ab89f12a9d56360b02920e1f95107dbdc1d6762",
"onchain_action_id": "gov_action1w0shrfxqwv95kk0v4cn34wylz25a2cmqkq5jpc0e2yrahhqava3qvczhx6t"
},
"identity": {
"title": "IO & VacuumLabs: Enhancing Plutus - Performance, Correctness, and Usability",
"proposer_name": "Input Output (IO) & VacuumLabs",
"proposer_id": "io-research",
"proposer_type": "coalition",
"proposer_url": "https://www.iog.io",
"doxxed": true,
"primary_contact": null,
"team_size_disclosed": null,
"team_size_disclosed_note": "WS1 (UPLC capabilities): ~4 engineers. WS2 (DevEx/compiler): ~4 engineers. WS3 (formal spec/security): ~3 engineers. VacuumLabs contributes specialist formal methods and security-critical Haskell capacity. Philip Wadler (Haskell designer) named as external researcher for laziness investigation."
},
"classification": {
"official_pillar_primary": [
"Infrastructure & Research Excellence",
"Adoption & Utility"
],
"official_pillar_secondary": [
"Community & Ecosystem Growth",
"Ecosystem Sustainability & Resilience"
],
"official_pillar_confidence": "stated",
"working_category_suggestion": "Core Infrastructure",
"working_category_confidence": "high",
"tags": [
"plutus",
"uplc",
"plinth",
"compiler",
"formal-verification",
"agda",
"conformance-testing",
"vacuumlabs",
"cip-0156",
"cip-0168",
"scope-check",
"poseidon",
"laziness",
"ghc",
"security-audit"
]
},
"ask": {
"ada_amount": 11877575,
"ada_amount_note": "WS1 (UPLC capabilities) + WS2 (formal spec/security) + WS3 (DevEx). Budget: Development ₳10,214,715 (86%), Engagement ₳712,655 (6%), Operations ₳356,327 (3%), remainder at 1% each across Infrastructure/Security/Legal/Governance/Others.",
"usd_amount": 2850618,
"usd_peg_price": 0.24,
"pegged": true,
"currency_basis": "usd_pegged",
"usd_peg_vs_market": "conservative",
"implied_buffer_pct": -8,
"duration_months": 12,
"milestone_count": 24,
"milestone_payments_disclosed": false,
"milestone_schedule_disclosed": "names_only",
"raw_ask_text": "Total Treasury Ask: ₳11,877,575. USD figures ($2,850,618) are provided for reference only, based on an ADA/USD rate of 0.24."
},
"treasury_return": {
"has_return_clause": true,
"mechanisms": [
{
"type": "unspent_funds",
"trigger": "Funds undisbursed at end of delivery period OR partial delivery / scope reduction",
"deadline": "End of delivery period (Q2 2027)",
"excluded_costs": [],
"estimated_return_pct": null,
"estimated_return_pct_note": "Proportional to undelivered scope"
}
],
"treasury_favourability": "moderate",
"treasury_favourability_confidence": "high",
"treasury_favourability_note": "Standard IO 2026 proportional return language. ADA-denominated. No revenue share or price-peg surplus.",
"treasury_favourability_set_by": "ai",
"raw_return_text": "All funds not disbursed by the end of the delivery period will be returned to the Cardano Treasury. In the event of partial delivery or scope reduction, unspent funds associated with cancelled or reduced deliverables will be returned proportionally."
},
"lifecycle": {
"pipeline_state": "onchain_live",
"hydra_submitted_at": null,
"hydra_close_at": null,
"hydra_support_pct": null,
"onchain_submitted_at": "2026-04-22T00:00:00Z",
"onchain_vote_close_at": "2026-05-24T00:00:00Z",
"onchain_result": null,
"status_last_checked_at": "2026-05-11T16:00:00Z"
},
"links": {
"hydra_url": null,
"adastat_url": null,
"ipfs_cid": "Qmd7G7L6xinunTLU9JorPLYyFCLGRarXEn7RngdNYgNH3B",
"ipfs_gateway_url": "https://ipnso-com.ipns.dweb.link/?cid=Qmd7G7L6xinunTLU9JorPLYyFCLGRarXEn7RngdNYgNH3B",
"github_url": "https://github.com/IntersectMBO/plutus",
"website_url": "https://www.iog.io",
"forum_thread_url": null,
"other": [
{
"label": "Plutus Core formal spec",
"url": "https://plutus.cardano.intersectmbo.org/resources/plutus-core-spec.pdf"
},
{
"label": "Plutus metatheory",
"url": "https://plutus.cardano.intersectmbo.org/metatheory/latest/"
}
]
},
"content": {
"abstract": "Three workstreams enhancing Plutus: (1) UPLC capabilities — casing on Data, multiIndexArray (CIP-0156), BuiltinValue functions (CIP-0168), SNARK-friendly Poseidon hash, scope check investigation, laziness/memoization CIP; (2) Formal specification and security — property-based conformance testing framework, Agda formalization of programmatic built-ins, structured evaluator + costing security audit; (3) Developer experience — new GHC Plinth backend, improved error messages, reduced boilerplate, multi-version GHC support, dependency decoupling from Nix/native C libs. Co-venture with VacuumLabs distributing Plutus stewardship.",
"problem_statement": "Three interconnected Plutus weaknesses: (1) execution costs remain high for common patterns (Data casing via loops, multi-asset operations, 25% overhead from scope check); (2) Plutus metatheory lacks formalization for many built-ins, conformance testing falls back to Haskell reference implementation; (3) developer setup requires Nix and manual dependencies, error messages reference compiler internals not source, INLINEABLE pragma boilerplate required everywhere.",
"proposed_solution": "WS1: Implement casing on built-in Data type; multiIndexArray (CIP-0156); BuiltinValue functions (CIP-0168); Poseidon hash CIP + C bindings (conditional on benchmarks); scope check investigation leading to CIP or report; laziness/memoization investigation with Philip Wadler leading to CIP. WS2: Property-based conformance test framework (extending 1,982-test suite); Agda denotations for 10 programmatic built-in types; evaluator + costing security audit. WS3: Standalone GHC Plinth backend binary (Windows/macOS/Linux, single command install); clear source-level error messages; INLINEABLE boilerplate elimination; Nix/native-C-lib decoupling.",
"deliverables": [
"UPLC built-in casing on Data type (hard-fork-ready for Dijkstra)",
"multiIndexArray built-in per CIP-0156 (hard-fork-ready)",
"BuiltinValue functions per CIP-0168 (hard-fork-ready) — conditional on CIP-0168 ratification",
"Poseidon hash CIP + C bindings (conditional on benchmarks)",
"Scope check investigation — CIP or technical report",
"Laziness and memoization in UPLC — CIP submitted for community discussion",
"Property-based conformance testing framework (for alternative node client support)",
"Agda denotations for BuiltinUnit, Integer, Bool, ByteString, List, Pair, Data, String, Array, Value",
"Structured security audit of Plutus evaluator and costing code — written report",
"Standalone GHC Plinth backend (no Nix, no native C libs, single command install)",
"Source-level error messages, INLINEABLE boilerplate elimination",
"Multi-version GHC support for Plinth"
],
"milestones": [
{
"name": "Q3 2026 batch",
"deliverable": "Data casing phase 1, multiIndexArray, CIP-0168 phase 1, audit begins, Plinth dep analysis, Plinth GHC backend PoC, multi-version GHC",
"ada_release": null,
"deadline": "2026-09-30"
},
{
"name": "Q4 2026 batch",
"deliverable": "Data casing Plinth support, scope check analysis, CIP-0168 cost models + assetCount, Poseidon CIP+C bindings, conformance test framework, Agda denotations, evaluator audit complete, Plinth error messages, Plinth dep decoupling",
"ada_release": null,
"deadline": "2026-12-31"
},
{
"name": "Q1 2027 batch",
"deliverable": "Scope check CIP or report, conformance full suite ported, Agda integration, costing audit final report, Plinth boilerplate + frontend, laziness evaluation + prototyping",
"ada_release": null,
"deadline": "2027-03-31"
},
{
"name": "Q2 2027 batch",
"deliverable": "Laziness CIP, multiIndexArray + BuiltinValue full verification + docs, Agda conformance harness if needed",
"ada_release": null,
"deadline": "2027-06-30"
}
],
"team": [
{
"name": "VacuumLabs",
"role": "Co-proposer — formal methods, security-critical Haskell, Cardano infrastructure",
"background": "Specialist firm with deep expertise in formal methods and Haskell security engineering"
},
{
"name": "Philip Wadler",
"role": "External researcher — laziness and memoization investigation",
"background": "Haskell language designer; Professor of Theoretical Computer Science"
}
],
"risks_disclosed": [
"Technical (Medium/Low): Scope check removal may require bigger interpreter changes than anticipated — deliverable is CIP or report regardless",
"Technical (Medium/Low): Built-in casing costing discrepancies — resolvable iteratively",
"Technical (Medium/Low): Poseidon C bindings conditional on benchmarks",
"Technical (Medium/Medium): Property-based conformance test scaling for CI use",
"Technical (Low/Low): Agda formalization reveals specific built-ins not warranting formalization",
"Ecosystem (Low-Medium/Low): GHCup support not ready — fallback install script available",
"Ecosystem (Low/High): CIP-0168 not yet ratified — implementation tracks PR #1090 closely"
]
},
"metadata": {
"open_source": "yes",
"open_source_url": "https://github.com/IntersectMBO/plutus",
"has_prior_funding": true,
"prior_funding_sources": [
"IO prior treasury allocations (same as other IO 2026 proposals)"
],
"has_prior_delivery": true,
"prior_delivery_evidence": "IO is the Plutus language designer and maintainer since launch. Van Rossem hard fork preparation already completed. 1,982 existing Plutus conformance tests. CIP-0156 (multiIndexArray) already ratified.",
"admin_model": "intersect",
"administrator_name": "Intersect",
"oversight_committee": [
"Sundae Labs",
"Cardano Foundation",
"DQuadrant",
"Xerberus",
"NMKR"
],
"administration_fee_pct": 3,
"duplicate_of_existing_solution": {
"value": "no",
"confidence": "high",
"set_by": "ai"
},
"duplicate_notes": "IO is the canonical Plutus maintainer. VacuumLabs is a specialist partner distributing stewardship. No equivalent team working on these specific Plutus improvements. Some WS3 developer experience improvements are adjacent to the DevEx Initiative (IO, in this corpus) but non-overlapping: DevEx covers cardano-init and the Developer Portal; this covers the Plinth compiler and Plutus formal spec."
},
"relationships": {
"bundle_with": [
"onchain-cardano-vision-2026",
"onchain-io-developer-experience-initiative",
"onchain-io-ensurable-cardano-maintenance",
"onchain-io-cardano-high-assurance",
"onchain-io-consensus-initiative",
"onchain-io-cardano-upgrades",
"onchain-io-midgard-l2"
],
"supersedes": [],
"competes_with": [],
"depends_on": [],
"notes": "WS1 hard-fork-requiring deliverables depend on Dijkstra hard fork governance action (out of scope of this proposal). CIP-0168 (BuiltinValue) must be ratified for full implementation — currently PR #1090. Blaster (High Assurance proposal, in this corpus) operates at UPLC level and benefits from the Agda formalization and equivalence checking delivered here — complementary, not competing."
},
"community_signals": {
"comment_count": 0,
"notable_objections": [],
"notable_endorsements": [],
"forum_thread_urls": [],
"live_voting_state": {
"as_of": "2026-05-11",
"drep_yes_ada": 177150000,
"drep_no_ada": 5610000000,
"drep_explicit_no_ada": 35840000,
"drep_no_confidence_ada": 201000000,
"drep_not_voted_ada": 5380000000,
"drep_total_active_stake_ada": 14940000000,
"cc_yes": 1,
"cc_no": 0,
"cc_not_voted": 6,
"interpretation": "FAILING. Low Yes (177M), low Explicit No (35.8M) — mostly Not Voted. Pattern consistent with IO portfolio-wide abstention rather than specific opposition to Plutus work."
}
},
"ecosystem_demand": {
"evidence_level": "strong",
"evidence_level_confidence": "high",
"evidence_level_set_by": "ai",
"active_users_known": true,
"active_users_examples": [
{
"name": "All Cardano DApp developers (Plutus is the common compilation target)",
"kind": "user",
"url": null
},
{
"name": "Alternative node client teams (Amaru etc.) — depend on conformance testing",
"kind": "integrator",
"url": null
},
{
"name": "VacuumLabs",
"kind": "integrator",
"url": null
}
],
"developer_demand_signals": [
"Plutus is the compilation target of ALL Cardano smart contract languages (Aiken, Pebble, Scalus, Futura, Plinth) — universal dependency",
"Scope check adds ~25% overhead to script preparation with no security benefit — well-known pain point",
"INLINEABLE pragma requirement is a documented Plinth developer friction point",
"CIP-0156 (multiIndexArray) and CIP-0168 (BuiltinValue functions) were community-initiated — genuine demand signal",
"Property-based conformance tests directly enable Amaru and other alternative node implementations"
],
"adoption_risk_notes": "Demand is structural — Plutus underpins everything. Risk is primarily that hard-fork-gated benefits (Data casing, CIPs) are visible to DReps as IO-controlled pipeline, potentially contributing to portfolio-wide vote reluctance."
},
"incumbents": {
"has_existing_solution": "no",
"has_existing_solution_confidence": "high",
"has_existing_solution_set_by": "ai",
"existing_solutions": [],
"differentiation_claim": "IO and VacuumLabs are the canonical Plutus maintainers. No other team is positioned to deliver Plutus language extensions, formal metatheory, or the compiler architecture changes described.",
"differentiation_credibility": "high"
},
"risk_flags": {
"aggressive_peg": false,
"self_administered_no_oversight": false,
"incumbent_already_delivering": false,
"no_evidence_of_demand": false,
"competes_with_in_batch": false,
"concentration_risk": true,
"failing_live_vote": true,
"hard_fork_dependency": true
},
"risk_flags_note": "hard_fork_dependency: key WS1 deliverables (casing on Data, CIPs) require Dijkstra hard fork for mainnet activation — gated on a separate governance action. concentration_risk: IO portfolio bundle. failing_live_vote: Yes 177M vs No 5.61B, expires May 24.",
"_meta": {
"title": "IO & VacuumLabs: Enhancing Plutus - Performance, Correctness, and Usability",
"proposer": "Input Output (IO) & VacuumLabs"
}
}