Connecting and Using Keplr Wallet with DCL WebApp

Initial Connection Process

Install Keplr Wallet

If you haven't already, install the Keplr wallet extension for your browser. Keplr extension is available for Chrome, Firefox, and Edge browsers. Please refer to the official Keplr documentation for installation instructions.

Click "Connect Keplr"

Look for and click the "Connect Keplr" button on DCL WebApp.

Keplr Popup Appears

A Keplr popup will appear. It will attempt to suggest the DCL chain since it's not a standard chain recognized by Keplr.

Review Chain Suggestion

You will see a message stating "This chain's info is not available on Keplr Chain Registry." This is normal for custom chains like DCL. You can safely ignore the "Click here to update chain info on Github" link.

Approve Chain Suggestion

After reviewing the DCL chain details, click "Approve" to add the DCL chain to your Keplr wallet. Don't worry about the warning message; this is expected for custom chains.

Approve Connection

After approving the chain suggestion, you'll be prompted to approve the connection between DCL WebApp and your Keplr wallet. Review the connection details and approve it.

Connection Complete

Once approved, you'll see your wallet address displayed in the DCL WebApp, indicating a successful connection.

Account Management in Keplr

Creating a New Account

  1. Open the Keplr extension in your browser.
  2. Click on the account name at the top to open the account menu.
  3. Select "Add Account" and follow the prompts to create a new account.

Selecting Different Accounts

  1. Open the Keplr extension.
  2. Click on the account name to see all your accounts.
  3. Select the account you want to use.
  4. Important: After switching accounts in Keplr, you must disconnect and reconnect from the DCL WebApp for the changes to take effect.

Migrating from Legacy Wallet

  1. Go to the Legacy Wallet page in the DCL WebApp.
  2. Extract your mnemonic phrase (seed words) from the Legacy Wallet.
  3. In Keplr, create a new account using the "Import existing account" option.
  4. Enter your mnemonic phrase to recreate your Legacy Wallet account in Keplr.

Transaction Signing Process

Once your Keplr wallet is connected to the DCL WebApp, here's how transactions work:

  1. Initiate a transaction in the DCL WebApp.
  2. A Keplr window will automatically open, displaying the transaction details.
  3. Review the transaction information carefully in the Keplr window.
  4. If everything looks correct, approve and sign the transaction in Keplr.
  5. Once submitted, close the Keplr window.
  6. A success message will appear in the DCL WebApp confirming the transaction.

Known Issues

Hardware Wallet Signing Limitation

Currently, there is a known issue with hardware wallet signing (e.g., Ledger Nano) when using Protobuf-based SIGN_MODE_DIRECT for transaction encoding:

  • The DCL WebApp uses Protobuf-based SIGN_MODE_DIRECT for efficient transaction encoding, as introduced in ADR-020.
  • However, Ledger hardware wallets still use SIGN_MODE_LEGACY_AMINO_JSON for displaying transaction details to users.
  • As a result, hardware signing with Ledger Nano devices is not currently supported in our application.

Reasons for This Limitation

Hardware wallets cannot transition to SIGN_MODE_DIRECT because:

  • SIGN_MODE_DIRECT is binary-based and not suitable for display to end-users. Displaying raw binary data would be considered blind signing, which is a security concern.
  • Hardware devices cannot decode the Protobuf sign bytes due to memory constraints, as the Protobuf definitions would need to be embedded on the device.

Future Developments

The Cosmos ecosystem is actively working on a solution to this issue:

  • A new sign mode, tentatively called SIGN_MODE_TEXTUAL, is being developed for hardware devices.
  • This new mode will be text-based, allowing for easy display and verification on hardware wallet screens.
  • It aims to replace SIGN_MODE_LEGACY_AMINO_JSON while maintaining compatibility with Protobuf-based transactions.

For detailed information on this development, please refer to:

Cosmos SDK ADR-050: SIGN_MODE_TEXTUAL

We recommend using the Keplr browser extension for signing transactions until hardware wallet support is fully implemented with the new sign mode.

Troubleshooting

Ensure that you have installed the Keplr wallet extension and that it's enabled in your browser.

Additional Resources