Skip to content

Ledger wallet connection fails with "Buffer is not defined" on lite.desmos.network/wallet #5

Description

@Pantojassss

Summary

Selecting the "Ledger" option on the Wallet page (reached via x.forbole.com → redirects to https://lite.desmos.network/) throws a Buffer is not defined error immediately, before any Ledger device interaction (no USB permission prompt, no app-selection step). The Keplr option is not affected by this specific error. This makes it impossible to connect a Ledger device to Lite-Dipper at all.

Steps to reproduce

  1. Go to https://lite.desmos.network/wallet (also reachable via x.forbole.com, which redirects here).
  2. Click "Connect wallet" / open the Wallet page.
  3. Click the "Ledger" card ("Direct browser signing path with account selection. Use the Desmos app on the Ledger device.").
  4. The error Buffer is not defined is displayed inline under the wallet-selection cards.

Expected behavior

Selecting "Ledger" should proceed to the account-selection / device-connection flow (WebUSB/WebHID permission prompt), allowing the user to pick an HD account and connect their Ledger with the Desmos app open.

Actual behavior

An unhandled JavaScript error, Buffer is not defined, appears immediately and the flow stops. No connection attempt to the physical device is made.

Environment

  • Reported by user: Chrome on macOS.
  • Independently reproduced in a Chromium-based browser (Chrome/148, Electron/42.7.0, macOS) — same result, same error text, occurring purely client-side with no Ledger device attached.

Likely cause (hypothesis, not confirmed)

Buffer is a Node.js global that isn't available in browsers by default. Libraries commonly used for Cosmos/Ledger integration (e.g. @ledgerhq/hw-app-cosmos, @cosmjs/*, bech32) often assume Buffer exists. Bundlers like Webpack 4 used to polyfill it automatically, but modern bundlers (Vite, Webpack 5, esbuild) do not unless explicitly configured (e.g. vite-plugin-node-polyfills, or aliasing buffer and injecting it as a global). This looks like a missing polyfill/build-config issue in the Ledger code path specifically, since the Keplr path (which doesn't rely on those Node-oriented libs client-side) does not hit this error.

Impact

Any user relying on a Ledger hardware wallet — the safer option for holding funds — currently cannot connect to Lite-Dipper at all. Keplr remains usable, but this removes hardware-wallet support entirely for the explorer's wallet page.

Additional notes

No transaction signing or address derivation could be attempted, since the flow fails before reaching that stage. This was reported after independently verifying (via desmosd/Ledger CLI outside the browser) that the Ledger device itself and the Desmos Ledger app work correctly for address derivation — the problem is isolated to the Lite-Dipper web app's Ledger integration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions