Why might I be getting this MissingVKeyWitnessesUTXOW error?


When I try to register a stakepool by sending a tx to the blockchain, by running

cardano-cli shelley transaction submit --tx-file tx.signed --mainnet

I get the following error:

Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (MissingVKeyWitnessesUTXOW (WitHashes (fromList [KeyHash “beedxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”]))))]

Why would that be?


1 Like

Hi Diego,

This means you failed to sign the transaction with one or more of skeys corresponding to a vkey used in the transaction.

For stake pool registration, you will want to sign the transaction with skeys for the payment address paying for the transaction, all stake address being assigned either as rewards account or owner account (each delegation certificate), and the pool cold key.

This is an example of how to sign a pool registration having separate rewards and pledge addresses:

cardano-cli shelley transaction sign /
–tx-body-file pooltx.raw /
–signing-key-file payment.skey /
–signing-key-file stake.skey /
–signing-key-file pledge-stake.skey /
–signing-key-file cold.skey /
–mainnet /
–out-file pooltx.signed

Your friend, FROG

1 Like

@ADAfrog I have the same problem.

I’m trying to update my stake pool to have multiple owners, and an operator.

I did include --signing-key-file values for all accounts. How can I find out what is missing from value xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ?

Shelley command failed: transaction submit Error: Error while submitting tx: ApplyTxError [LedgerFailure (UtxowFailure (MissingVKeyWitnessesUTXOW (WitHashes (fromList [KeyHash “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”]))))]

Problem solved: I found out the --signing-key-file I used for the transaction payment was causing the error and not associated with the payment address.

Thanks for rubber ducking

1 Like

@bjorn (@ADAfrog ) What singing-key did you use that was not associated with the payment address? I’m currently facing the same issue, and the commands i used was:

cardano-cli transaction sign \
    --tx-body-file tx.raw \
    --signing-key-file payment.skey \
    --signing-key-file $HOME/cold-keys/node.skey \
    --signing-key-file stake.skey \
    --mainnet \
    --out-file tx.signed

(following coincashews guide)

But I don’t understand how the payment.skey and the stake.skey is related / linked to the node.skey.

Also is there a way to confirm that the current payment.skey and the stake.skey I currently have are related?