| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| pir-x86_64-linux-ghc96 | 2026-08-07 | 9.3 MB | |
| plc-x86_64-linux-ghc96 | 2026-08-07 | 9.2 MB | |
| plutus-metatheory.tar.gz | 2026-08-07 | 213.1 kB | |
| plutus-x86_64-linux-ghc96 | 2026-08-07 | 8.7 MB | |
| uplc-x86_64-linux-ghc96 | 2026-08-07 | 9.3 MB | |
| 1.67.0.0 source code.tar.gz | 2026-08-06 | 13.4 MB | |
| 1.67.0.0 source code.zip | 2026-08-06 | 18.7 MB | |
| README.md | 2026-08-06 | 5.7 kB | |
| Totals: 8 Items | 68.9 MB | 0 | |
plutus-core
Removed
LowerInitialCharacteris no longer exported fromPlutusCore.Evaluation.Machine.ExBudget; it existed solely to supportderiving-aeson, whichplutus-coreno longer depends on.
Added
-
New builtin
multiIndexArray(CIP-0156) of typeforall a. array a -> list integer -> list a, returning the array elements at the given indices in order (duplicates preserved) and failing the whole call on any out-of-bounds index. Placeholder costing; gated underfuturePV, so it is not available in any released protocol version. -
The
policiesbuiltin (CIP-0168): returns the currency symbols of aValuein ascending order. Expected to be enabled at PV12. -
A PIR optimization pass, CollapseCase, that rewrites list casing into
dropList.
Changed
- Replaced the
deriving-aeson-based JSON instances of the cost model types with plainaesongeneric instances. The JSON format is unchanged.
plutus-ledger-api
Added
-
Shell completion (bash/zsh/fish) and worked
Examplessections in--helpfor theuplc,plcandpirexecutables, via completion metadata in the sharedplutus-execliboption parsers and a newPlutusCore.Executable.Helpmodule. -
unsafeLovelaceValueOfinPlutusLedgerApi.V1.ValueandPlutusLedgerApi.V1.Data.Value: assumes the first amount of the first currency represents lovelace without verifying this, which makes it much faster thanlovelaceValueOf. It is sound only when this is true. -
PlutusLedgerApi.V2,PlutusLedgerApi.V3, andPlutusLedgerApi.Data.V1/V2/V3re-export the fullValueAPI thatPlutusLedgerApi.V1already exposed (read accessors,AssetClass, helpers), and all of these umbrellas (includingV1) now also exposegeq,gt,leq,lt, andwithCurrencySymbol. Reading or comparing aValuefrom these modules no longer requires importingPlutusLedgerApi.V1.ValueorPlutusLedgerApi.V1.Data.Value. -
Add first draft Plutus V4 script context types.
-
The
uplcandplcexecutables now deduce the input and output format from the file extension when--if/--ofis not supplied:.uplc/.plc/.pir→ textual,.flat→ flat, and (foruplconly).hex→ hex and.cbor→ serialised. An explicit--if/--ofalways overrides the deduced format, and reading from stdin, writing to stdout, or an unrecognised extension still falls back to textual. - The
applycommand now deduces the format of each input file independently from its own extension, so a script and arguments in different formats can be applied together (for example a textual script applied to flat-encoded arguments). An explicit--ifstill forces a single format for every file.
Changed
- When an output file is given with
-obut no--of, the output format is now deduced from the file's extension instead of always defaulting to textual. A command that relied on the old default (for exampleuplc convert -i p.uplc -o p.flatwith no--of) will now write the format implied by the extension; pass--of textualexplicitly to restore the previous behaviour.
Fixed
- The
plcexecutable no longer advertises theserialised,hexandblueprintformats, which it never supported:--if/--ofnow accept onlytextualand theflatvariants, and unsupported values are rejected when the command line is parsed rather than a failure occurring at runtime.
plutus-tx
Added
-
PlutusTx.Builtins.multiIndexArray: themultiIndexArraybuiltin from CIP-0156, returning the array elements at the given indices and failing on any out-of-bounds index. -
PlutusTx.Builtins.policies, exposing thepoliciesbuiltin (CIP-0168). Expected to be enabled at PV12.
Changed
- Improve
asDatacodegen to use list casing instead ofheadandtail.
Fixed
- Evaluating the Haskell definition of
PlutusTx.Builtins.indexArraywith an index exceedingmaxBound :: Intnow fails, matching the builtin, instead of silently indexing with the wrapped value. - The Haskell definitions of
indexByteString,sliceByteString,readBit,replicateByteandcaseIntegerlikewise check their integer arguments in theIntegerdomain, matching the builtins, instead of silently wrapping values that exceed the machine-integer range. -
The Haskell definition of
consByteStringnow follows the PlutusV3 builtin semantics and fails on a byte outside[0..255]; the PlutusV1/V2 builtins reduce the byte modulo 256 instead, which a single Haskell definition cannot also mirror. -
The Haskell definitions of
shiftByteStringandrotateByteStringnow fail when the shift or rotation amount does not fit in a machineInt, matching the builtin semantics that the van Rossem HF activates (variants D and E); earlier variants accept any amount on-chain.
plutus-tx-plugin
Removed
- Removed the
BuiltinCasingoption for Plinth compiler flagdatatypes. Use theSumsOfProductsoption (which is the default) to enable builtin casing.
Added
- Compilation support for the
multiIndexArraybuiltin (CIP-0156).
plutus-executables
No changes.
plutus-metatheory
Added
- Postulated definitions for
Valueand its corresponding built-in functions
Fixed
- Fixed a performance bug in the certifier regarding decidable equality.
Full Changelog: https://github.com/IntersectMBO/plutus/compare/1.66.0.0...1.67.0.0