Read at the node 11.2.0 tag and the component versions published with the release. Activation is either the node upgrade itself, the fork to protocol version 12, or a later intra-era step.
New ledger era Dijkstra at major protocol version 12
pv12decode-breakera-identity
devnet confirmed Node 11.2.0 forks to Dijkstra and reaches protocol version 12
Dijkstra follows Conway (protocol versions 9-11) as the eighth hard-fork-combinator era. Plutus gates PlutusV4 on the same version.
5 citations
Node-to-client handshake offers only NodeToClientV_23
node-11.2-upgradeinterface-changenode-to-client-protocol
devnet confirmed Node-to-client handshake accepts only V23
Consensus 5.1.x (selected by the 11.2 branch) offers only V23; consensus 4.2.1.0 (node 11.1.x) offered V16-V23. Dijkstra is enabled inside V23, with no new version.
3 citations
Non-segregated block body with per-transaction is_valid (CIP-0176)
pv12decode-breakblock-encoding
devnet confirmed The node's Dijkstra block: non-segregated body, ten-field Babbage header
block = [header, block_body]; each block transaction is [body, witnesses, auxiliary_data / nil, is_valid]; invalid_transactions is removed; block_body carries optional Leios and Peras certificates.
4 citations
Submitted transactions drop the is_valid flag (CIP-0167)
pv12additivetransaction-encoding
devnet confirmed Which Conway-built transactions the node accepts after the fork
mempool_transaction is [body, witnesses, auxiliary_data / nil]; the legacy four-element form is still accepted only with is_valid = true and is announced as disallowed in the next era.
2 citations
Nested transactions (CIP-0118)
pv12decode-breaktransaction-encodingtransaction-rules
Transaction body key 23 carries sub_transactions, each with its own body (no fee or collateral), witnesses and auxiliary data. Sub-transaction execution units count towards transaction and block limits and minimum script fees. PlutusV1-V3 scripts cannot run in a sub-transaction.
4 citations
Guards replace required signers (CIP-0112)
pv12decode-breaktransaction-encodingplutus-script-context
devnet confirmed Which Conway-built transactions the node accepts after the fork · Only a Conway key-hash required signer was exercised.
Body key 14 becomes guards: a set of key hashes or an ordered set of credentials, including script hashes. Key 24 adds required_top_level_guards; native scripts gain type 6 script_require_guard; redeemer tag 6 is guarding.
5 citations
Direct deposits and account balance intervals (CIP-0159 phase 1)
pv12additivetransaction-encodingtransaction-rules
Body keys 25 (direct_deposits), 26 (account_balance_intervals) and 27 (starting_account_balance_intervals, top level only), all keyed by reward account.
3 citations
Encodings valid in Conway that Dijkstra rejects
pv12encode-breaktransaction-encoding
devnet confirmed Which Conway-built transactions the node accepts after the fork · Only the deposit-less registration was exercised.
Removed: deposit-less stake registration/unregistration certificates (types 0 and 1), the legacy array encoding of redeemers, and empty per-policy multiasset maps. Bootstrap witness chain_code must be exactly 32 bytes; witness-set lists become sets.
6 citations
PlutusV4 language and script context
pv12additiveplutus-languageplutus-script-contextprotocol-parameters
Language 3 / script tag 4 / witness key 8 / auxiliary-data key 5 / cost-model key 3. The V4 TxInfo adds txInfoSubTxIx, direct deposits, account balance intervals, guards and required top-level guards, and drops txInfoFee. ScriptPurpose gains Guarding. Builtin batches 1-6 are available; batch 7 is not approved for any version.
6 citations
PlutusV1-V3 restricted from new features
pv12rule-changetransaction-rules
Transactions running PlutusV1-V3 scripts cannot use direct deposits, account balance intervals, guard script hashes or required top-level guards, and fail when any output carries a pointer stake reference.
2 citations
23 new protocol parameters (keys 34-56)
pv12additiveprotocol-parameters
devnet confirmed Node 11.2.0 forks to Dijkstra and reaches protocol version 12
Reference-script limits and pricing (34-37), max pledge leverage (38), min pool margin (39), Leios (40-48), Peras (49-54) and reference-input fees per policy and per datum byte (55-56). Peras, min pool margin and the fee-function change activate only at intra-era v13.
4 citations
Pool registration gains an optional BLS key
pv12decode-breakstake-pool-registration
pool_params has an optional bls_key [96-byte public key, 48-byte proof of possession], verified on (re-)registration. The Leios committee is seated from the top pools carrying BLS keys.
3 citations
Reward withdrawals no longer require DRep delegation (CIP-0181)
pv12rule-changetransaction-rules
The ledger drops the DRep-delegation precondition for reward withdrawals.
1 citations
Earlier-era transactions are re-decoded as Dijkstra after the fork
pv12encode-breaktransaction-encoding
devnet confirmed Which Conway-built transactions the node accepts after the fork
When a submitted transaction's era differs from the ledger tip, consensus re-serializes it and decodes it in the tip era; it is rejected with an era mismatch if those bytes are not valid Dijkstra. On the devnet, Conway-built payments, deposit registrations, required_signers bodies and metadata transactions are accepted; a Conway deposit-less registration is rejected as an era mismatch (devnet check cross-era-submission).
1 citations
cardano-api and cardano-cli add Dijkstra; `latest` still means Conway
node-11.2-upgradeinterface-changecardano-clicardano-api-haskell
cardano-api 11.8 adds ShelleyBasedEraDijkstra and an experimental DijkstraEra; cardano-cli 11.3 adds a `dijkstra` command group while `latest` still maps to Conway at the pinned commit.
3 citations
Leios and Peras consensus artefacts
pv12additiveconsensus-participationblock-encoding
Leios endorser-block references, certificates and committee parameters ship at v12. Peras serialization and parameters ship at v12, but the ledger currently rejects any Peras certificate in a block, and the HFWG scope activates Peras at intra-era v13.
2 citations
Dijkstra genesis file and experimental hard-fork gating in node configuration
node-11.2-upgradeinterface-changenode-configurationprotocol-parameters
devnet confirmed Node 11.2.0 forks to Dijkstra and reaches protocol version 12
Node 11.2 reads DijkstraGenesisFile (and optional DijkstraGenesisHash) and the TestDijkstraHardForkAt* keys only when ExperimentalHardForksEnabled is true; without a file it uses an empty genesis. The genesis holds the Dijkstra upgrade parameters (reference-script limits, pool leverage and margin, the PlutusV4 cost model as an array, Leios and Peras parameters, reference-input costs). The same flag switches the node's protocol version from 11 to 12, and cardano-testnet's default configuration leaves it off.
9 citations
Protocol parameters returned by local state query grow from 31 to 54 positional fields
pv12decode-breakprotocol-parametersnode-to-client-protocol
devnet confirmed Node 11.2.0 forks to Dijkstra and reaches protocol version 12 · cardano-cli 11.6.0.0 decodes 54 parameters through local state query.
Protocol parameters are encoded as a CBOR array of the era's parameter list. Dijkstra keeps Conway's 31 entries in order and appends 23 (reference-script limits and cost, pool leverage and margin, Leios, Peras, reference-input costs), so GetCurrentPParams and GetFuturePParams answers become 54-element arrays once the era is Dijkstra.
4 citations
Published node configurations use a versioned envelope
node-11.2-upgradeinterface-changenode-configuration
devnet confirmed The versioned node configuration needs adaptation for Ogmios and Kupo
Node 11.2.0 publishes configuration sections inside a versioned Configuration envelope. Consumers that directly read legacy top-level genesis paths need an equivalent flat configuration or envelope support. Released Ogmios and Kupo fail at configuration loading when given the new envelope; their decoder tests use a separate flattened configuration.
1 citations