Skip to content

[bug] baseAccount connector returns 65-byte signature instead of tx hash from sendTransaction #5541

@remiroyc

Description

@remiroyc

Steps to Reproduce

  1. Connect with Coinbase Wallet on a dApp using AppKit v1.8.x
  2. The baseAccount connector is used (due to migration in PR feat: base account #5269)
  3. User connects with a Smart Wallet (ERC-4337)
  4. Call sendTransaction() via wagmi's WalletClient
  5. The connector returns a 65-byte ECDSA signature (packed r + s + v) instead of a 32-byte transaction hash
  6. Passing this to waitForTransactionReceipt() fails with:
InvalidParamsRpcError: invalid argument 0: hex string has length 130, want 64 for common.Hash

Summary

Related to #5494 — the migration from coinbaseWallet to baseAccount connector (PR #5269) forces all Coinbase users through the Smart Wallet (ERC-4337) path.

Beyond the coinbasePreference option being ignored (as reported in #5494), this also causes a functional regression: sendTransaction() returns a raw signature instead of a transaction hash.

Example response from sendTransaction() (65 bytes / 130 hex chars):

0x03fdfd595361b21b53574b61e8dec99b1840150e1a38440f59b74fef209bb7c1
4e58f33b45a03c90f19685177b6d91cf1a5ad5f5be5408f9f932301f7a4a35b01b

Last byte 0x1b = 27 = v recovery byte, confirming this is a packed ECDSA signature.

Impact on our production dApp: 129 occurrences, 24 users affected over the last 10 days. Transactions are signed on-chain but the dApp cannot track their confirmation — users see an error even though the tx may have succeeded.

List of related npm package versions

@reown/appkit: 1.8.17
@reown/appkit-adapter-wagmi: 1.8.17
wagmi: 2.19.5
viem: 2.45.0

Node.js Version

v22.x

Package Manager

pnpm@10.6.3

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