Is there a fully open-source hardware wallet DRep voting solution?

I have found only a few hardware wallets usable with Cardano:

  • Ledger (not fully open-source.)
  • Trezor (open-source but can only delegate to a DRep. Cannot do governance votes.)
  • Keystone (fully open-source and can do governance votes.)

So I could only find one open-source hardware wallet option for DRep voting on Cardano and that is Keystone.

My Keystone device works with Eternl software wallet and I can submit governance votes, but Eternl is not open-source.

So what about voting manually using cardano-hw-cli? It purports to have Keystone support. But I can’t get it to output the correct address details. See this bug report I submitted nearly 1 year ago with no response: Keystone address key-gen produces incorrect key · Issue #197 · vacuumlabs/cardano-hw-cli · GitHub

I have emailed Keystone and submitted a support request via their website. I did both these things nearly 1 year ago too.

I have been trying again recently with the latest software versions. Keystone firmware version 2.5.0 (29 June 2026), cardano-hw-cli version Cardano HW CLI Tool version 1.19.1
(Commit hash: 97047f09baf7165a8eda1058980f53b38ff7dcbb)

I am not aware of a single Cardano user who has successfully used cardano-hw-cli with a Keystone device to output correct public keys and address details. Not even one person! Has anyone else even tried?

If anyone reading this has a keystone device, would they please try using it with cardano-hw-cli which is open-source and available from Vacuum Labs github page: GitHub - vacuumlabs/cardano-hw-cli: Cardano CLI tool for hardware wallets · GitHub

Please try exporting your public payment and staking keys and then generate the address using cardano-cli. Does the address generated agree with what your Keystone device displays and what other wallets like Eternl display?

Is there any fully open-source way to submit a Cardano DRep governance vote using the protection of a hardware wallet?

2 Likes

At some point this was believed to work, and I’ve posted here to try to find out more about why that claim was made & what happened to prompt its retraction:

Hopefully that will provide some insight about whatever workarounds there might be for this — at least enough to get Keystone ada holders voting on the current proposals. cc @ATADA @HeptaSean @ryun1

1 Like

Seem to be two completely separate topics to me.

  1. What Keystone has implemented: I know that delegation and voting works with Keystone and Eternl without problem. Haven’t created a proposal and don’t have a stake pool, though. I don’t know if it makes sense to document the limitations of specific products in a CIP.
  2. That @Terminada does not want to use a non-open-source wallet app and, hence, Keystone and Eternl is not good enough. :woman_shrugging:
  1. The purpose of that CIP is to document the capabilities of the hardware wallet interfaces. I guess the fact that support for governance certificates was documented & then withdrawn (see the contents of the closed PR if you wish) indicates that Eternl wallets obtain them some other way: and then the voting process works as you report.
  2. That is an incidental observation and not the point of the post: which is to determine to what extent voting is possible from an entirely open-source platform.

I tagged a few more people here since I personally have little means of learning about cardano-hw-cli without a hardware wallet (I have my own reasons for believing, very subjectively, that they are “not good enough” — again, not the point of the discussion).

If it’s true that the open source wallet is only fully featured with a closed source piece of software, then we have a divergence between reality & the ultimate goals of standardisation on Cardano. We’re not obligated to fix all those divergences: but some of us are required to document them.

1 Like

Why should it “indicate” that?

The code for handling governance definitely is in Keystone (and has been for many months):

No, Eternl does not use “some other way”.

Still don’t think that the capabilities and limitations of commercial products with a plethora of hardware and software versions should be “documented” in a CIP. It’s the job of the vendors to document what they can do. A CIP will always be hopelessly outdated.

3 Likes

@HeptaSean I’m just trying to expose the reason for @Terminada’s problem report above. Your confirmation definitely helps to indicate that it should also be working for him… which would then indicate that there’s nothing special that Eternl is doing and no reason why this or any other software wallet intermediary was needed.

@Terminada please post all the detail about the problem you are having on the Keystone (regardless of the apparent support): including the scripts of cardano-hw-cli showing how the derived keys are different. I’ve done all I can to help introduce the problem and now it’s time to post every bit of relevant detail: even if it means with putting up with more sarcasm.

2 Likes

So, now I tried.

Yes, the address that I get is not the correct one:

It is the address for the Ledger/BitBox02 derivation, not the Cardano Native derivation.

Keystone can do both and you can switch between both in the three-dot menu if the ADA/Cardano view is open (the one showing you an address and a QR code for that address):

But switching does not seem to have any effect on what cardano-hw-cli gets. It’s always the public keys for the Ledger derivation.

Vacuum Labs quite prominently states: “NOTE: support for Keystone is developed and maintained by the Keystone team”

There seems to be a pull request for repairing all that now:

3 Likes

Thank you @HeptaSean .
Clearly nobody in Cardano land is using open-source cardano-hw-cli with their Keystone. Anyone else attempting would have failed. I originally submitted the bug report in August last year.

2 Likes

Does it have to be Keystone, or can it also be Ledger or Trezor? What’s the problem with sites that connect via CIP30/CIP95?

1 Like

Finally some perspective about Keystone support in cardano-hw-cli: “I believe it never worked, I don’t think we’ve ever tested it in-house” :face_with_monocle: https://github.com/vacuumlabs/cardano-hw-cli/pull/210#discussion_r3531088566

3 Likes

… and now an announcement that it’s been fixed (though I won’t be really happy until seeing confirmation from @Terminada here): :tada:

2 Likes

So they listen or read along (both is great)

Reading the issues in their own GitHub is kind of the bare minimum, though.