Home / Input Output / cardano-api
May 09, 8-9 PM (0)
May 09, 9-10 PM (0)
May 09, 10-11 PM (0)
May 09, 11-12 AM (0)
May 10, 12-1 AM (0)
May 10, 1-2 AM (0)
May 10, 2-3 AM (0)
May 10, 3-4 AM (0)
May 10, 4-5 AM (0)
May 10, 5-6 AM (0)
May 10, 6-7 AM (0)
May 10, 7-8 AM (0)
May 10, 8-9 AM (0)
May 10, 9-10 AM (0)
May 10, 10-11 AM (0)
May 10, 11-12 PM (0)
May 10, 12-1 PM (0)
May 10, 1-2 PM (0)
May 10, 2-3 PM (0)
May 10, 3-4 PM (0)
May 10, 4-5 PM (0)
May 10, 5-6 PM (0)
May 10, 6-7 PM (0)
May 10, 7-8 PM (0)
May 10, 8-9 PM (0)
May 10, 9-10 PM (0)
May 10, 10-11 PM (0)
May 10, 11-12 AM (0)
May 11, 12-1 AM (0)
May 11, 1-2 AM (0)
May 11, 2-3 AM (0)
May 11, 3-4 AM (0)
May 11, 4-5 AM (0)
May 11, 5-6 AM (1)
May 11, 6-7 AM (1)
May 11, 7-8 AM (2)
May 11, 8-9 AM (1)
May 11, 9-10 AM (0)
May 11, 10-11 AM (0)
May 11, 11-12 PM (0)
May 11, 12-1 PM (0)
May 11, 1-2 PM (0)
May 11, 2-3 PM (0)
May 11, 3-4 PM (0)
May 11, 4-5 PM (0)
May 11, 5-6 PM (0)
May 11, 6-7 PM (0)
May 11, 7-8 PM (2)
May 11, 8-9 PM (0)
May 11, 9-10 PM (0)
May 11, 10-11 PM (0)
May 11, 11-12 AM (0)
May 12, 12-1 AM (0)
May 12, 1-2 AM (0)
May 12, 2-3 AM (0)
May 12, 3-4 AM (0)
May 12, 4-5 AM (0)
May 12, 5-6 AM (0)
May 12, 6-7 AM (0)
May 12, 7-8 AM (0)
May 12, 8-9 AM (0)
May 12, 9-10 AM (0)
May 12, 10-11 AM (0)
May 12, 11-12 PM (0)
May 12, 12-1 PM (1)
May 12, 1-2 PM (0)
May 12, 2-3 PM (0)
May 12, 3-4 PM (0)
May 12, 4-5 PM (0)
May 12, 5-6 PM (0)
May 12, 6-7 PM (0)
May 12, 7-8 PM (0)
May 12, 8-9 PM (0)
May 12, 9-10 PM (0)
May 12, 10-11 PM (0)
May 12, 11-12 AM (0)
May 13, 12-1 AM (0)
May 13, 1-2 AM (0)
May 13, 2-3 AM (0)
May 13, 3-4 AM (0)
May 13, 4-5 AM (0)
May 13, 5-6 AM (0)
May 13, 6-7 AM (0)
May 13, 7-8 AM (0)
May 13, 8-9 AM (1)
May 13, 9-10 AM (0)
May 13, 10-11 AM (0)
May 13, 11-12 PM (0)
May 13, 12-1 PM (0)
May 13, 1-2 PM (0)
May 13, 2-3 PM (0)
May 13, 3-4 PM (0)
May 13, 4-5 PM (0)
May 13, 5-6 PM (0)
May 13, 6-7 PM (0)
May 13, 7-8 PM (0)
May 13, 8-9 PM (0)
May 13, 9-10 PM (0)
May 13, 10-11 PM (0)
May 13, 11-12 AM (0)
May 14, 12-1 AM (0)
May 14, 1-2 AM (0)
May 14, 2-3 AM (0)
May 14, 3-4 AM (0)
May 14, 4-5 AM (0)
May 14, 5-6 AM (1)
May 14, 6-7 AM (1)
May 14, 7-8 AM (0)
May 14, 8-9 AM (0)
May 14, 9-10 AM (0)
May 14, 10-11 AM (0)
May 14, 11-12 PM (1)
May 14, 12-1 PM (1)
May 14, 1-2 PM (0)
May 14, 2-3 PM (0)
May 14, 3-4 PM (0)
May 14, 4-5 PM (0)
May 14, 5-6 PM (0)
May 14, 6-7 PM (1)
May 14, 7-8 PM (0)
May 14, 8-9 PM (0)
May 14, 9-10 PM (0)
May 14, 10-11 PM (0)
May 14, 11-12 AM (0)
May 15, 12-1 AM (0)
May 15, 1-2 AM (0)
May 15, 2-3 AM (0)
May 15, 3-4 AM (0)
May 15, 4-5 AM (0)
May 15, 5-6 AM (1)
May 15, 6-7 AM (0)
May 15, 7-8 AM (0)
May 15, 8-9 AM (0)
May 15, 9-10 AM (1)
May 15, 10-11 AM (0)
May 15, 11-12 PM (1)
May 15, 12-1 PM (3)
May 15, 1-2 PM (6)
May 15, 2-3 PM (0)
May 15, 3-4 PM (0)
May 15, 4-5 PM (0)
May 15, 5-6 PM (6)
May 15, 6-7 PM (0)
May 15, 7-8 PM (0)
May 15, 8-9 PM (0)
May 15, 9-10 PM (0)
May 15, 10-11 PM (0)
May 15, 11-12 AM (0)
May 16, 12-1 AM (0)
May 16, 1-2 AM (0)
May 16, 2-3 AM (0)
May 16, 3-4 AM (0)
May 16, 4-5 AM (0)
May 16, 5-6 AM (0)
May 16, 6-7 AM (0)
May 16, 7-8 AM (0)
May 16, 8-9 AM (0)
May 16, 9-10 AM (0)
May 16, 10-11 AM (0)
May 16, 11-12 PM (0)
May 16, 12-1 PM (0)
May 16, 1-2 PM (0)
May 16, 2-3 PM (0)
May 16, 3-4 PM (0)
May 16, 4-5 PM (0)
May 16, 5-6 PM (0)
May 16, 6-7 PM (0)
May 16, 7-8 PM (0)
May 16, 8-9 PM (0)
32 commits this week May 09, 2026 - May 16, 2026
Slim Cardano.Api.Certificate.Internal to pool-only definitions
Strip the deprecated legacy `Certificate era` GADT, its
`ShelleyRelatedCertificate`/`ConwayCertificate` constructors, every
`make*Certificate` constructor function, every `*Requirements` GADT,
`selectStakeCredentialWitness`, `toShelleyCertificate`,
`fromShelleyCertificate`, `isDRepRegOrUpdateCert`, and the legacy
`AnchorDataFromCertificateError` + `getAnchorDataFromCertificate`. The
module is now responsible only for the (non-deprecated) pool parameter
types and their conversion helpers.

Update consumers:

- `Sign.hs` re-exports `AsTxId` by importing it directly from
  `Cardano.Api.Tx.Internal.TxIn` (the previous re-export chain went
  through the legacy `AsType (AsCertificate, AsTxId)` in Internal). The
  `-Wno-deprecations` pragma is dropped because no deprecated symbol
  remains.
- `Body.hs` and `Certificate/Internal/OperationalCertificate.hs` drop
  their `Cardano.Api.Certificate.Internal` imports, which became unused
  once the legacy surface was removed.
Delete public Cardano.Api.Certificate module and update consumers
The public `Cardano.Api.Certificate` module exists only to re-export
deprecated names. Delete it (and the cabal `exposed-modules` entry, and
the `Cardano.Api` re-export) and migrate every remaining consumer to
`Cardano.Api.Experimental.Certificate`.

Test modules pick up `KESPeriod`, `OperationalCertificate`,
`OperationalCertificateIssueCounter`, `issueOperationalCertificate`,
`AsOperationalCertificate`, `AsOperationalCertificateIssueCounter`,
`DRepMetadata`, `OperationalCertIssueError`, and
`StakePoolMetadataValidationError` from the experimental module
directly. `cardano-wasm` switches its `PoolId` import to the
experimental module. `Cardano.Api.Tx.Internal.Body` swaps its
`Cardano.Api.Certificate` import for the internal module (where the
re-exports still live for now).

`Cardano.Api.Certificate.Internal` itself is unchanged in this commit
— the slim-down happens next.
Rewrite genCertificate to produce Exp.Certificate directly
Replace the legacy `genCertificate :: ShelleyBasedEra era -> Gen
(Certificate era)` generator with one that produces
`Exp.Certificate (ShelleyLedgerEra era)` directly using ledger
constructors gated by ShelleyToBabbageEra/ConwayEraOnwards evidence.

Delete `extractCertificate` (no longer needed, since there is no
legacy-to-experimental conversion to perform) and the 11 obsolete
`gen*Requirements` helpers. Update `genTxCertificates` and
`genScriptWitnessedTxCertificates` to consume the new generator
directly.

Drop now-redundant `Typeable era` constraints that were only required
by the legacy GADT's `Typeable era =>` constructor signatures
(`genTxCertificates`, `genScriptWitnessedTxCertificates`,
`genTxBodyContent`, `genValidTxBody`, `genTxBody`, `genTx`,
`genWitnesses`, `genShelleyBootstrapWitness`,
`genShelleyKeyWitness`, `genShelleyWitness`, `genCardanoKeyWitness`)
and the `Data.Typeable` import that became unused as a result.
Slim Cardano.Api.Certificate.Internal to pool-only definitions
Strip the deprecated legacy `Certificate era` GADT, its
`ShelleyRelatedCertificate`/`ConwayCertificate` constructors, every
`make*Certificate` constructor function, every `*Requirements` GADT,
`selectStakeCredentialWitness`, `toShelleyCertificate`,
`fromShelleyCertificate`, `isDRepRegOrUpdateCert`, and the legacy
`AnchorDataFromCertificateError` + `getAnchorDataFromCertificate`. The
module is now responsible only for the (non-deprecated) pool parameter
types and their conversion helpers.

Update consumers:

- `Sign.hs` re-exports `AsTxId` by importing it directly from
  `Cardano.Api.Tx.Internal.TxIn` (the previous re-export chain went
  through the legacy `AsType (AsCertificate, AsTxId)` in Internal). The
  `-Wno-deprecations` pragma is dropped because no deprecated symbol
  remains.
- `Body.hs` and `Certificate/Internal/OperationalCertificate.hs` drop
  their `Cardano.Api.Certificate.Internal` imports, which became unused
  once the legacy surface was removed.
Delete public Cardano.Api.Certificate module and update consumers
The public `Cardano.Api.Certificate` module exists only to re-export
deprecated names. Delete it (and the cabal `exposed-modules` entry, and
the `Cardano.Api` re-export) and migrate every remaining consumer to
`Cardano.Api.Experimental.Certificate`.

Test modules pick up `KESPeriod`, `OperationalCertificate`,
`OperationalCertificateIssueCounter`, `issueOperationalCertificate`,
`AsOperationalCertificate`, `AsOperationalCertificateIssueCounter`,
`DRepMetadata`, `OperationalCertIssueError`, and
`StakePoolMetadataValidationError` from the experimental module
directly. `cardano-wasm` switches its `PoolId` import to the
experimental module. `Cardano.Api.Tx.Internal.Body` swaps its
`Cardano.Api.Certificate` import for the internal module (where the
re-exports still live for now).

`Cardano.Api.Certificate.Internal` itself is unchanged in this commit
— the slim-down happens next.
Move filterUnRegCreds/filterUnRegDRepCreds to experimental certificate module
Both functions already operate on the experimental `Exp.Certificate`
wrapper; they only lived in `Cardano.Api.Certificate.Internal` for
historical reasons. Move them next to the type they operate on and
re-export them from `Cardano.Api.Experimental.Certificate`. Update the
sole caller in Query/Internal/Convenience.hs to import directly from the
new location.
Rewrite genCertificate to produce Exp.Certificate directly
Replace the legacy `genCertificate :: ShelleyBasedEra era -> Gen
(Certificate era)` generator with one that produces
`Exp.Certificate (ShelleyLedgerEra era)` directly using ledger
constructors gated by ShelleyToBabbageEra/ConwayEraOnwards evidence.

Delete `extractCertificate` (no longer needed, since there is no
legacy-to-experimental conversion to perform) and the 11 obsolete
`gen*Requirements` helpers. Update `genTxCertificates` and
`genScriptWitnessedTxCertificates` to consume the new generator
directly.

Drop now-redundant `Typeable era` constraints that were only required
by the legacy GADT's `Typeable era =>` constructor signatures
(`genTxCertificates`, `genScriptWitnessedTxCertificates`,
`genTxBodyContent`, `genValidTxBody`, `genTxBody`, `genTx`,
`genWitnesses`, `genShelleyBootstrapWitness`,
`genShelleyKeyWitness`, `genShelleyWitness`, `genCardanoKeyWitness`)
and the `Data.Typeable` import that became unused as a result.
Remove legacy Certificate type and Cardano.Api.Certificate module
Delete the deprecated `data Certificate era` GADT in
`Cardano.Api.Certificate.Internal` along with all 13 `make*Certificate`
functions, all 11 `*Requirements` GADTs, and the helpers
`selectStakeCredentialWitness`, `toShelleyCertificate`,
`fromShelleyCertificate`, `isDRepRegOrUpdateCert`, and the legacy
`getAnchorDataFromCertificate`. The internal module is reduced to pool
parameters, relays, metadata references, and their conversion functions.

Delete the public `Cardano.Api.Certificate` re-export module and remove
it from cabal `exposed-modules` and from `Cardano.Api`. Consumers should
use `Cardano.Api.Experimental.Certificate` (Era-parameterized, Conway
onwards) or `Cardano.Api.Compatible.Certificate` (covers all
Shelley-based eras).

Move `filterUnRegCreds` and `filterUnRegDRepCreds` to
`Cardano.Api.Experimental.Tx.Internal.Certificate` and re-export them via
`Cardano.Api.Experimental.Certificate`.

Re-export `AsOperationalCertificate` and
`AsOperationalCertificateIssueCounter` via
`Cardano.Api.Experimental.Certificate` so test consumers can roundtrip
op-certs without depending on the internal module.

Rewrite `genCertificate` in `gen/Test/Gen/Cardano/Api/Typed.hs` to
produce `Exp.Certificate (ShelleyLedgerEra era)` directly using ledger
constructors gated by `ShelleyToBabbageEra`/`ConwayEraOnwards` evidence.
Delete `extractCertificate` and all 11 obsolete `gen*Requirements`
helpers. Drop now-redundant `Typeable era` constraints that cascaded
from the legacy GADT.

Rewire remaining consumers: `Sign.hs` imports `AsTxId` directly from
`Tx.Internal.TxIn` and drops `-Wno-deprecations`; `Body.hs` and
`OperationalCertificate.hs` drop their unused
`Cardano.Api.Certificate.Internal` imports; `Query/Internal/Convenience.hs`
gets `filterUnRegCreds`/`filterUnRegDRepCreds` from the experimental
module; `wasm/StakeCertificate.hs` gets `PoolId` from
`Cardano.Api.Experimental.Certificate`; test modules pick up
`OperationalCertIssueError`, `StakePoolMetadataValidationError`,
`DRepMetadata`, and the op-cert `AsType` constructors from
`Cardano.Api.Experimental.Certificate`.