Skip to content

[bug] eth_sendTransaction returns 65-byte ECDSA signature instead of tx hash via wagmi baseAccount connector #251

@remiroyc

Description

@remiroyc

Description

When using the baseAccount wagmi connector (via Reown AppKit), eth_sendTransaction returns a 65-byte ECDSA signature (packed r + s + v) instead of a standard 32-byte transaction hash. This causes waitForTransactionReceipt() to fail with:

InvalidParamsRpcError: invalid argument 0: hex string has length 130, want 64 for common.Hash

Steps to Reproduce

  1. Connect with Coinbase Wallet using the baseAccount wagmi connector (via @reown/appkit v1.8.17)
  2. Call sendTransaction() via wagmi's WalletClient
  3. The returned hash is 65 bytes (130 hex chars) instead of 32 bytes (64 hex chars)
  4. Passing this to waitForTransactionReceipt()eth_getTransactionReceipt fails

Example invalid response

0x03fdfd595361b21b53574b61e8dec99b1840150e1a38440f59b74fef209bb7c1
4e58f33b45a03c90f19685177b6d91cf1a5ad5f5be5408f9f932301f7a4a35b01b

Last byte 0x1b = 27 = v recovery byte → this is a packed ECDSA signature, not a tx hash.

Expected behavior

eth_sendTransaction should return a standard 32-byte (64 hex char) transaction hash after the UserOperation has been bundled and submitted on-chain.

Looking at Signer.ts, eth_sendTransaction is delegated to the wallet popup via sendRequestToPopup(). The popup should handle the full flow (create UserOp → submit via bundler → return on-chain tx hash), but it appears to return the raw signature instead.

Context

This issue was surfaced while investigating reown-com/appkit#5494 and reown-com/appkit#5541. AppKit v1.8.x migrated from coinbaseWallet to baseAccount connector (PR reown-com/appkit#5269), which now forces all Coinbase users through the Smart Wallet path.

Versions

  • @base-org/account: via @wagmi/connectors 5.11.2
  • @reown/appkit: 1.8.17
  • @reown/appkit-adapter-wagmi: 1.8.17
  • wagmi: 2.19.5
  • viem: 2.45.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions