Skip to content

Ledger-signed messages exceeding 255 bytes cannot be verified #660

@jobotics

Description

@jobotics

Description

We are integrating TronWeb into our dApp (near-intents.org). When signing a message via Ledger, verification fails if the signed message length exceeds 255 bytes.

It seems that the current Ledger C implementation splits the data into packets, and the part of the message beyond 255 bytes is moved into the next packet. That "tail" portion is not included in verification, which leads to invalid signatures.

Steps to Reproduce

  1. Use Ledger with TronWeb to sign a message longer than 255 bytes.
  2. Attempt to verify the signed message.
  3. Verification fails.

Expected Behavior

  • The entire message (including any data beyond 255 bytes) should be included in the signature and verifiable.

Actual Behavior

  • Signature verification fails when the message length exceeds 255 bytes.

Environment

  • tronweb: ^6.0.4
  • @tronweb3/tronwallet-adapter-react-hooks: 1.1.10
  • Ledger: ledger nano x + firmware latest
  • Browser/OS: Chrome 140.0.7339.186 / macOS Sequoia 15.16.1

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