In the case of multiple datums and redeemers provided in a transaction, I see that TxInfo contains all datum in txInfoData :: [(DatumHash, Datum)] but not all redeemers are included.

    data TxInfo = TxInfo
    { txInfoInputs      :: [TxInInfo] -- ^ Transaction inputs
    , txInfoOutputs     :: [TxOut] -- ^ Transaction outputs
    , txInfoFee         :: Value -- ^ The fee paid by this transaction.
    , txInfoMint        :: Value -- ^ The 'Value' minted by this transaction.
    , txInfoDCert       :: [DCert] -- ^ Digests of certificates included in this transaction
    , txInfoWdrl        :: [(StakingCredential, Integer)] -- ^ Withdrawals
    , txInfoValidRange  :: POSIXTimeRange -- ^ The valid range for the transaction.
    , txInfoSignatories :: [PubKeyHash] -- ^ Signatures provided with the transaction, attested that they all signed the tx
    , txInfoData        :: [(DatumHash, Datum)]
    , txInfoId          :: TxId
    -- ^ Hash of the pending transaction (excluding witnesses)
    } deriving stock (Generic, Haskell.Show, Haskell.Eq)

Is it possible to retrieve all redeemers at once ?

1 Answer 1


This was Lars response to this question in the ppp Q&A on 25/Jan/22. Recording timestamp 0:43:17

You cant retrieve all redeemers at once, You can only see your own redeemer,

You are always in the context of validating your specific input, There maybe one or more script inputs, but for each script input the validator is run, and it gets the datum, redeemer and context.

The context is always more or less the same in each case except the context also knows which inputs you are presently validating and you get the datum and redeemer belonging to that input (the datum belonging to the output you are consuming and the redeemer for the input).

So I think you can only see the current redeemer, the one belonging to the input you are currently validating.

I may be wrong but that's how I think how it is, not only you can't retrieve them at once but you can't see them at all

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.