Release Notes - v0.5.0
v0.5.0 (August 27, 2026)
Section titled “v0.5.0 (August 27, 2026)”Title: Align compatibility checks and expand Plutus language support
Date: August 27, 2026
Version: v0.5.0
This release aligns builtin availability with the Plutus ledger language and Cardano protocol, expands V4 and serialization support, strengthens program validation, and improves handling of large or bounded inputs.
✨ What’s New
Section titled “✨ What’s New”- Clarified builtin availability: Plutigo now checks each builtin operation against the chosen Plutus ledger language and Cardano protocol major version instead of treating all operations as available after the previous PV11 rule that unlocked every builtin. Availability follows protocol boundaries at Alonzo 5, Vasil 7, Valentine 8, Chang 9, Plomin 10, and Dijkstra 12. V4 batches require protocol major 12, while protocol major 0 checks language only. The execution engine and conformance checks use the same availability matrix.
- Expanded V4 language support: Plutigo now includes authoritative V4 cost model parameter names and the
multiIndexArray,policies, andassetCountbuiltins with stable tags 101 to 103. The V4 builtins remain unavailable until protocol activation.multiIndexArrayaccepts typed arrays or lists, requires nonnegative 64-bit integer indices, checks bounds, and limits each request to 1,024 indices. V4 parameter ordering no longer follows V3, so execution budgets can differ. - Preserved V1 and V2
consByteStringbehavior: Large positive and negative integer prefixes now use a floored modulo-256 reduction, matching the V1 and V2 variants. V3 and later variants C and E continue to require values from 0 through 255.
🔧 Fixes
Section titled “🔧 Fixes”- Validated Plutus programs with context:
ProgramContextandValidateProgramnow apply ledger language and protocol context, whileParseWithContext,DecodeWithContext, andDecodeDeBruijnWithContextapply the same checks during parsing and decoding. These APIs verify supported Untyped Plutus Core (UPLC) versions 1.0.0 and 1.1.0, builtin availability, unavailable builtins in unevaluated branches, the UPLC 1.1.0 requirement forConstrandCasesyntax, and the PV11 and later limit of 1,024 constructor fields. Replay decoding now uses context as well.
⚡ Performance
Section titled “⚡ Performance”- Optimized large integer decoding: The FLAT serialization format now accumulates large integers directly in native word storage with a
uint64fast path. The decoder scales linearly with bounded allocation while preserving truncation behavior.
📦 Additional Changes
Section titled “📦 Additional Changes”- Extended supported universe types: FLAT serialization now provides stable tags for BLS12-381 G1, G2, and Miller loop values, plus array and value types, and returns identical bytes after round trips.
ProtoArrayandValuetypes support parsing and formatting; the execution engine preserves array and value identity, validates canonicalValueentries, and the decoder rejects unsupported standalone BLS payloads.Machine.RunContext(ctx, term)provides synchronous cancellation,valueDataaccepts at most 40,000 entries, and the decoder enforces a 64-byte limit on CBOR encoded bytestring leaves or chunks by returningDecodeLimitErrorfor violations.
📋 What You Need to Know
Section titled “📋 What You Need to Know”Integrations using context-aware parsing or bounded input handling should update their error paths for the new validation and limit checks.
🙏 Thank You
Section titled “🙏 Thank You”Thank you for using Plutigo.
Docs authored by Doc Holiday