@@ -23,6 +23,10 @@ type Block {
2323 """
2424 author : HexEncoded
2525 """
26+ The hex-encoded ledger parameters for this block.
27+ """
28+ ledgerParameters : HexEncoded !
29+ """
2630 The parent of this block.
2731 """
2832 parent : Block
@@ -31,10 +35,6 @@ type Block {
3135 """
3236 transactions : [Transaction ! ]!
3337 """
34- The hex-encoded ledger parameters for this block.
35- """
36- ledgerParameters : HexEncoded !
37- """
3838 The system parameters (governance) at this block height.
3939 """
4040 systemParameters : SystemParameters !
@@ -75,6 +75,19 @@ type CollapsedMerkleTree {
7575 protocolVersion : Int !
7676}
7777
78+ """
79+ Committee member for an epoch.
80+ """
81+ type CommitteeMember {
82+ epochNo : Int !
83+ position : Int !
84+ sidechainPubkeyHex : String !
85+ expectedSlots : Int !
86+ auraPubkeyHex : String
87+ poolIdHex : String
88+ spoSkHex : String
89+ }
90+
7891"""
7992A contract action.
8093"""
@@ -257,6 +270,10 @@ type DustGenerationDtimeUpdate implements DustLedgerEvent {
257270 The maximum ID of all dust ledger events.
258271 """
259272 maxId : Int !
273+ """
274+ The protocol version.
275+ """
276+ protocolVersion : Int !
260277}
261278
262279"""
@@ -315,6 +332,10 @@ type DustInitialUtxo implements DustLedgerEvent {
315332 """
316333 maxId : Int !
317334 """
335+ The protocol version.
336+ """
337+ protocolVersion : Int !
338+ """
318339 The dust output.
319340 """
320341 output : DustOutput !
@@ -327,6 +348,7 @@ interface DustLedgerEvent {
327348 id : Int !
328349 raw : HexEncoded !
329350 maxId : Int !
351+ protocolVersion : Int !
330352}
331353
332354"""
@@ -352,6 +374,41 @@ type DustSpendProcessed implements DustLedgerEvent {
352374 The maximum ID of all dust ledger events.
353375 """
354376 maxId : Int !
377+ """
378+ The protocol version.
379+ """
380+ protocolVersion : Int !
381+ }
382+
383+ """
384+ Current epoch information.
385+ """
386+ type EpochInfo {
387+ epochNo : Int !
388+ durationSeconds : Int !
389+ elapsedSeconds : Int !
390+ }
391+
392+ """
393+ SPO performance for an epoch.
394+ """
395+ type EpochPerf {
396+ epochNo : Int !
397+ spoSkHex : String !
398+ produced : Int !
399+ expected : Int !
400+ identityLabel : String
401+ stakeSnapshot : String
402+ poolIdHex : String
403+ validatorClass : String
404+ }
405+
406+ """
407+ First valid epoch for an SPO identity.
408+ """
409+ type FirstValidEpoch {
410+ idKey : String !
411+ firstValidEpoch : Int !
355412}
356413
357414scalar HexEncoded
@@ -380,6 +437,32 @@ type ParamChange implements DustLedgerEvent {
380437 The maximum ID of all dust ledger events.
381438 """
382439 maxId : Int !
440+ """
441+ The protocol version.
442+ """
443+ protocolVersion : Int !
444+ }
445+
446+ """
447+ Pool metadata from Cardano.
448+ """
449+ type PoolMetadata {
450+ poolIdHex : String !
451+ hexId : String
452+ name : String
453+ ticker : String
454+ homepageUrl : String
455+ logoUrl : String
456+ }
457+
458+ """
459+ Presence event for an SPO in an epoch.
460+ """
461+ type PresenceEvent {
462+ epochNo : Int !
463+ idKey : String !
464+ source : String !
465+ status : String
383466}
384467
385468type Query {
@@ -407,6 +490,107 @@ type Query {
407490 Get the full history of Terms and Conditions changes for governance auditability.
408491 """
409492 termsAndConditionsHistory : [TermsAndConditionsChange ! ]!
493+ """
494+ List SPO identities with pagination.
495+ """
496+ spoIdentities (limit : Int , offset : Int ): [SpoIdentity ! ]!
497+ """
498+ Get SPO identity by pool ID.
499+ """
500+ spoIdentityByPoolId (poolIdHex : String ! ): SpoIdentity
501+ """
502+ Get total count of SPOs.
503+ """
504+ spoCount : Int
505+ """
506+ Get pool metadata by pool ID.
507+ """
508+ poolMetadata (poolIdHex : String ! ): PoolMetadata
509+ """
510+ List pool metadata with pagination.
511+ """
512+ poolMetadataList (limit : Int , offset : Int , withNameOnly : Boolean ): [PoolMetadata ! ]!
513+ """
514+ Get SPO with metadata by pool ID.
515+ """
516+ spoByPoolId (poolIdHex : String ! ): Spo
517+ """
518+ List SPOs with optional search.
519+ """
520+ spoList (limit : Int , offset : Int , search : String ): [Spo ! ]!
521+ """
522+ Get composite SPO data (identity + metadata + performance).
523+ """
524+ spoCompositeByPoolId (poolIdHex : String ! ): SpoComposite
525+ """
526+ Get SPO identifiers ordered by performance.
527+ """
528+ stakePoolOperators (limit : Int ): [String ! ]!
529+ """
530+ Get latest SPO performance entries.
531+ """
532+ spoPerformanceLatest (limit : Int , offset : Int ): [EpochPerf ! ]!
533+ """
534+ Get SPO performance by SPO key.
535+ """
536+ spoPerformanceBySpoSk (spoSkHex : String ! , limit : Int , offset : Int ): [EpochPerf ! ]!
537+ """
538+ Get epoch performance for all SPOs.
539+ """
540+ epochPerformance (epoch : Int ! , limit : Int , offset : Int ): [EpochPerf ! ]!
541+ """
542+ Get current epoch information.
543+ """
544+ currentEpochInfo : EpochInfo
545+ """
546+ Get epoch utilization (produced/expected ratio).
547+ """
548+ epochUtilization (epoch : Int ! ): Float
549+ """
550+ Get committee membership for an epoch.
551+ """
552+ committee (epoch : Int ! ): [CommitteeMember ! ]!
553+ """
554+ Get cumulative registration totals for an epoch range.
555+ """
556+ registeredTotalsSeries (fromEpoch : Int ! , toEpoch : Int ! ): [RegisteredTotals ! ]!
557+ """
558+ Get registration statistics for an epoch range.
559+ """
560+ registeredSpoSeries (fromEpoch : Int ! , toEpoch : Int ! ): [RegisteredStat ! ]!
561+ """
562+ Get raw presence events for an epoch range.
563+ """
564+ registeredPresence (fromEpoch : Int ! , toEpoch : Int ! ): [PresenceEvent ! ]!
565+ """
566+ Get first valid epoch for each SPO identity.
567+ """
568+ registeredFirstValidEpochs (uptoEpoch : Int ): [FirstValidEpoch ! ]!
569+ """
570+ Get stake distribution with search and ordering.
571+ """
572+ stakeDistribution (limit : Int , offset : Int , search : String , orderByStakeDesc : Boolean ): [StakeShare ! ]!
573+ }
574+
575+ """
576+ Registration statistics for an epoch.
577+ """
578+ type RegisteredStat {
579+ epochNo : Int !
580+ federatedValidCount : Int !
581+ federatedInvalidCount : Int !
582+ registeredValidCount : Int !
583+ registeredInvalidCount : Int !
584+ dparam : Float
585+ }
586+
587+ """
588+ Cumulative registration totals for an epoch.
589+ """
590+ type RegisteredTotals {
591+ epochNo : Int !
592+ totalRegistered : Int !
593+ newlyRegistered : Int !
410594}
411595
412596"""
@@ -539,6 +723,96 @@ type ShieldedTransactionsProgress {
539723 highestRelevantEndIndex : Int !
540724}
541725
726+ """
727+ SPO with optional metadata.
728+ """
729+ type Spo {
730+ poolIdHex : String !
731+ validatorClass : String !
732+ sidechainPubkeyHex : String !
733+ auraPubkeyHex : String
734+ name : String
735+ ticker : String
736+ homepageUrl : String
737+ logoUrl : String
738+ }
739+
740+ """
741+ Composite SPO data (identity + metadata + performance).
742+ """
743+ type SpoComposite {
744+ identity : SpoIdentity
745+ metadata : PoolMetadata
746+ performance : [EpochPerf ! ]!
747+ }
748+
749+ """
750+ SPO identity information.
751+ """
752+ type SpoIdentity {
753+ poolIdHex : String !
754+ mainchainPubkeyHex : String !
755+ sidechainPubkeyHex : String !
756+ auraPubkeyHex : String
757+ validatorClass : String !
758+ }
759+
760+ """
761+ Stake share information for an SPO.
762+
763+ Values are sourced from mainchain pool data (e.g., Blockfrost) and keyed by Cardano pool_id.
764+ """
765+ type StakeShare {
766+ """
767+ Cardano pool ID (56-character hex string).
768+ """
769+ poolIdHex : String !
770+ """
771+ Pool name from metadata.
772+ """
773+ name : String
774+ """
775+ Pool ticker from metadata.
776+ """
777+ ticker : String
778+ """
779+ Pool homepage URL from metadata.
780+ """
781+ homepageUrl : String
782+ """
783+ Pool logo URL from metadata.
784+ """
785+ logoUrl : String
786+ """
787+ Current live stake in lovelace.
788+ """
789+ liveStake : String
790+ """
791+ Current active stake in lovelace.
792+ """
793+ activeStake : String
794+ """
795+ Number of live delegators.
796+ """
797+ liveDelegators : Int
798+ """
799+ Saturation ratio (0.0 to 1.0+).
800+ """
801+ liveSaturation : Float
802+ """
803+ Declared pledge in lovelace.
804+ """
805+ declaredPledge : String
806+ """
807+ Current live pledge in lovelace.
808+ """
809+ livePledge : String
810+ """
811+ Stake share as a fraction of total stake.
812+ """
813+ stakeShare : Float
814+ }
815+
542816type Subscription {
543817 """
544818 Subscribe to blocks starting at the given offset or at the latest block if the offset is
@@ -833,6 +1107,10 @@ type ZswapLedgerEvent {
8331107 The maximum ID of all zswap ledger events.
8341108 """
8351109 maxId : Int !
1110+ """
1111+ The protocol version.
1112+ """
1113+ protocolVersion : Int !
8361114}
8371115
8381116"""
0 commit comments