Skip to content

gRPC: Dijkstra era support gaps in UTxO RPC #1263

Open
0 of 1 issue completed
Open

Description

@carbolymer

This is a work-in-progress tracking issue for Dijkstra era support gaps in cardano-rpc and the UTxO RPC integration.
It will be extended with new findings as Dijkstra support work continues.

Native guard scripts (CIP-112)

The utxorpc spec's NativeScript message has no variant for Dijkstra's RequireGuard constructor. utxorpc/spec#215 adds script_require_guard to the v1 spec. cardano-rpc compiles against v1beta, so it cannot use the new variant until it moves to v1.

Guard-bearing native scripts are encoded as empty messages

Since #1247, Dijkstra scripts no longer go through fromAllegraTimelock, so serving a guard-bearing native script no longer crashes. Instead, cardano-rpc encodes RequireGuard as an empty NativeScript, both for witness and auxiliary scripts and for reference scripts in outputs, which silently drops the guard. This stays until cardano-rpc can use the v1 variant.

RedeemerPurpose enum has no guarding value

The v1beta RedeemerPurpose enum has no value for Dijkstra's guarding purpose, so cardano-rpc maps GuardingScript to REDEEMER_PURPOSE_UNSPECIFIED. utxorpc/spec#215 adds REDEEMER_PURPOSE_GUARDING to v1.

Leios support (CIP-164)

utxorpc/spec#215 adds the Leios fields of the Dijkstra block header and body to v1. How the transactions of a certified endorser block reach block-consuming clients is still open. input-output-hk/ouroboros-leios#1106 tracks the client API design for both N2C and UTxO RPC.

Moving cardano-rpc to utxorpc v1

utxorpc/spec#215 adds the Dijkstra fields to v1 only, while cardano-rpc compiles against v1beta. To use them, cardano-rpc needs to move to v1 and add conversions for the following:

  • the Tx/TxCommon split and sub transactions;
  • guards and required top-level guards;
  • direct deposits and account balance intervals;
  • pool BLS keys;
  • the new protocol parameters and PParamsUpdate;
  • the Leios header and body fields;
  • ReadTx lookups by sub transaction hash.

#910 (switch to the utxorpc package) is related.

Related

Activity

  1. changed the title [-]Dijkstra era support gaps in UTxO RPC[/-] [+]gRPC: Dijkstra era support gaps in UTxO RPC[/+] on Jul 23, 2026
  2. self-assigned this
    on Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions