Please describe your proposed solution.
More and more dApps require users to sign some messages with their wallet. This is done for different purposes, the most common purpose is to validate that the user owns a secret key to the injected public key (when performing actions such as log in to dApp, prove ownership of address, asset, stake key, governance voting etc). This feature was long missing on HW wallets which blocks HW wallets users from using some popular Cardano dApps and we would like to fix it.
Many dApps developers were shy of implementing message signing functionality to their dApps because this was not supported by HW wallets in the past.
Here are a few examples of Cardano apps currently using message signing:
- Jpg.store - login
- summon dao - login
- Sundaeswap - voting
- GateKeeper - prove ownership of digital assets
Looking at the Ethereum ecosystem, we may expect widespread use of message signing for different purposes in the future.
We will implement the signData endpoint (as described in https://cips.cardano.org/cips/cip30/#apisigndataaddraddresspayloadbytespromisedatasignature) for Ledger and Trezor devices (we may not be able to do it for Nano S due to memory constraints) and in cardano-hw-cli.
Details: COSE_Sign1 (with the only allowed context "Signature1"), with support for hashed payload and also non-hashed payload with a limit on payload length (to be still determined, depending on Ledger and Trezor capabilities). No COSE encryption.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
This proposal will enable HW wallet users to use core web3 functionality which is becoming more and more used on Cardano blockchain and we can expect many more dapps will be using message signing in the future.
How do you intend to measure the success of your project?
HW wallet users will be able to use dApps that are using message signing.
Please describe your plans to share the outputs and results of your project?
We will inform all popular dApps that use message signing about the possibility to enable message signing for HW users. This should be easy to enable for dApps as most of the work will be done by the integration libraries.