MLabs: Better arrays for everyone
MLabs LTD
ID: 69fb2e7485ddd26899aaf1fe
Arrays are one of the most fundamental data structures in computing — used everywhere developers care about performance, from financial calculations to graphics to data processing. Until recently, Cardano had no array support at all. The support that exists today (added through CIP-138) is a foundation, but it is uneven across Cardano's smart contract languages: Plutarch has the most developed array tooling, while Plinth and Aiken lag behind. None of the three benefit from the decades of research into how to make array computations actually fast in functional languages. This proposal closes that gap. We will: - Bring Plinth and Aiken up to parity with Plutarch for CIP-138 array support, so developers in any of Cardano's three smart contract languages have access to the same baseline. - Propose and implement a new CIP introducing array primitives to Plutus Core that unlock significantly better optimization techniques for all three languages. - Apply state-of-the-art functional optimization techniques across all three languages — using a comparative approach that lets each language benefit from what works in the others. - Document the techniques and their measured impact so the Cardano developer community can build on this work. The result: Cardano script and dApp developers get array performance comparable to what other chains offer, in any of the three languages they already use, with documentation explaining how to use it well. This makes Cardano materially easier to develop on, easier to learn, and easier to migrate to from other ecosystems. The work is fully open-source under MIT, contributes directly to Plutus Core, Plinth, Plutarch, and Aiken, and is delivered by a single MLabs team across all three languages.
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).
Vote intent
Export & audit
↓ Download scorecard.mdRaw payload · Treasury (false) / Admin (intersect)
{
"_meta": {
"schema_version": "1.2.0",
"proposal_id": "69fb2e7485ddd26899aaf1fe",
"proposal_title": "MLabs: Better arrays for everyone",
"proposer": "MLabs LTD",
"filename": "hydra-mlabs-better-arrays-for-everyone.json",
"processed_date": "2026-05-11",
"title": "MLabs: Better arrays for everyone"
},
"ask": {
"ada_amount": 1378470,
"usd_amount": 248125,
"ada_usd_rate_assumed": 0.18,
"usd_peg_vs_market": "conservative",
"duration_months": 12,
"milestone_payments_disclosed": true,
"milestone_schedule_disclosed": "amounts_only",
"milestone_notes": "5 milestones with weeks specified (8-12 weeks each) and acceptance criteria (merged PRs to Plutus Core, Plutarch, Aiken, Plinth). NoWitnessLabs audits each milestone. Single line-item engineering hours."
},
"identity": {
"doxxed": true,
"doxxed_notes": "MLabs LTD is a registered company with extensive Cardano dev track record."
},
"metadata": {
"open_source": "yes",
"has_prior_delivery": true,
"prior_delivery_notes": "MLabs built and maintains Plutarch (Catalyst Fund 8); long-standing Plinth contributor; first significant Aiken contribution acknowledged in proposal. Only organization outside IOG to ship Plutus Core primitives to mainnet (secp256k1/ECDSA, bit-level manipulation). 44 Catalyst proposals delivered.",
"admin_model": "intersect",
"admin_notes": "Intersect administers with 3% fee (40,150 ADA); each milestone independently audited by NoWitnessLabs before payment release.",
"duplicate_of_existing_solution": {
"value": "no",
"confidence": "high",
"set_by": "ai"
}
},
"treasury_return": {
"has_return_clause": false,
"treasury_favourability": "weak",
"return_notes": "Proposer answered 'No' on returning unused funds to Treasury."
},
"relationships": {
"competes_with": []
},
"ecosystem_demand": {
"evidence_level": "moderate",
"evidence_level_confidence": "medium",
"evidence_level_set_by": "ai",
"active_users_known": true,
"active_users_examples": [
{
"name": "Plutarch users (existing pull-array users to gain expanded API)",
"kind": "integrator"
},
{
"name": "Plinth users (Plutus Tx ecosystem)",
"kind": "integrator"
},
{
"name": "Aiken users (CIP-138 array support to be added)",
"kind": "integrator"
}
],
"developer_demand_signals": [
"CIP-138 already exists adding array support to UPLC — establishes that the broader Cardano dev community has signaled need for arrays",
"Three smart contract languages currently have uneven array support — gap is verifiable",
"Performance-sensitive Cardano dApps face array-handling friction today",
"Other chains' developers expect array operations as baseline functionality"
],
"adoption_risk_notes": "CIP-138 establishes ecosystem-level demand for array primitives. The proposal brings parity across three smart contract languages and introduces new primitives via a new CIP — both legitimate ecosystem-level needs. Demand is structural (developer tooling for all Cardano dApps) rather than tied to named integrators. Risk: new primitives require CIP acceptance process and Plutus Core merge, which involves coordination with IOG. M2 explicitly funds this CIP process."
},
"incumbents": {
"has_existing_solution": "partial",
"has_existing_solution_confidence": "high",
"has_existing_solution_set_by": "ai",
"existing_solutions": [
{
"name": "CIP-138 (existing UPLC array support)",
"status": "shipped",
"overlap": "partial",
"notes": "CIP-138 is the foundation this proposal builds on; Plutarch already has pull-array implementation."
},
{
"name": "Plutarch pull-array API (MLabs own prior work)",
"status": "shipped",
"overlap": "partial",
"notes": "Existing Plutarch array support to be extended; Plinth/Aiken parity is new."
}
],
"differentiation_claim": "Brings CIP-138 array parity to Plinth and Aiken; introduces new Plutus Core primitives via new CIP enabling defunctionalization techniques; applies state-of-the-art functional optimization across all three languages with measured benchmarks and public reports.",
"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": false
},
"id": "hydra-mlabs-better-arrays-for-everyone",
"source": {
"hydra_id": "69fb2e7485ddd26899aaf1fe",
"channels": [
"hydra"
]
}
}