Skip to content

celocli transfer:dollars fails with Ledger "Invalid data received (0x6a80)" #742

@alchemydc

Description

@alchemydc

Package

@celo/celocli

Have you ensured that all of these are up to date?

  • the package you are using

What version of the package are you on?

v24.8.0

What command or function is the bug in?

@celo/celocli/8.0.1

Operating System

macOS (Apple Silicon)

Describe the bug

bug in celocli transfer:dollars with ledger

celocli transfer:dollars fails with Ledger "Invalid data received (0x6a80)"

Describe the bug

When attempting to transfer cUSD using celocli transfer:dollars with a Ledger device, the command fails with Ledger device: Invalid data received (0x6a80), even when "Blind Signing" (or "Contract Data") is enabled on the Ledger device.
This issue seems specific to transfer:dollars. Other commands like releasecelo:transfer-dollars (which interacts with the ReleaseGold contract) work correctly with the same Ledger setup.

To Reproduce

Steps to reproduce the behavior:

  1. Connect a Ledger Nano X with the Celo (or Ethereum) app open.
  2. Ensure "Blind Signing" / "Contract Data" is ENABLED in the Ledger app settings.
  3. Run the following command:
    npx celocli transfer:dollars --from <LEDGER_ADDRESS> --to <RECIPIENT_ADDRESS> --value <AMOUNT_IN_WEI> --useLedger --ledgerCustomAddresses="[<INDEX>]"
  4. Observe the error.

Expected behavior

The Ledger should prompt to review and sign the transaction, and the transaction should be broadcast successfully.

Actual behavior

The command fails immediately (or after a brief delay) with the following error:

Sending Transaction: cUSD->Transfer... failed: An unknown error occurred while executing the contract function "transfer".
...
Docs: https://viem.sh/docs/contract/writeContract
Details: Ledger device: Invalid data received (0x6a80)
Version: viem@2.38.6
...
cause: TransportStatusError: Ledger device: Invalid data received (0x6a80)
    at TransportNodeHid.send ... {
  statusCode: 27264,
  statusText: 'INCORRECT_DATA'
}

Environment

OS: macOS (darwin-arm64)
Node Version: v24.8.0
Celocli Version: @celo/celocli/8.0.1
Ledger: Nano X
Ledger App: Ethereum (Blind signing enabled)

Additional Context

The account has sufficient cUSD balance.
The account has sufficient CELO balance for gas.
We attempted to explicitly set --gasCurrency to the CELO token address, but this failed validation (is not a valid fee currency).
releasecelo:transfer-dollars works fine in the same environment suggesting the Ledger connection and general setup are correct.
The error 0x6a80 typically indicates "Incorrect Data" or "Blind signing disabled", but we have verified Blind Signing is enabled. This suggests the data payload constructed by celocli might be malformed or incompatible with the current Ledger app version for this specific contract call.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions