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
- Connect with Coinbase Wallet using the
baseAccount wagmi connector (via @reown/appkit v1.8.17)
- Call
sendTransaction() via wagmi's WalletClient
- The returned hash is 65 bytes (130 hex chars) instead of 32 bytes (64 hex chars)
- 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
Description
When using the
baseAccountwagmi connector (via Reown AppKit),eth_sendTransactionreturns a 65-byte ECDSA signature (packedr + s + v) instead of a standard 32-byte transaction hash. This causeswaitForTransactionReceipt()to fail with:Steps to Reproduce
baseAccountwagmi connector (via@reown/appkitv1.8.17)sendTransaction()via wagmi'sWalletClientwaitForTransactionReceipt()→eth_getTransactionReceiptfailsExample invalid response
Last byte
0x1b= 27 =vrecovery byte → this is a packed ECDSA signature, not a tx hash.Expected behavior
eth_sendTransactionshould 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_sendTransactionis delegated to the wallet popup viasendRequestToPopup(). 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
coinbaseWallettobaseAccountconnector (PR reown-com/appkit#5269), which now forces all Coinbase users through the Smart Wallet path.Versions
@base-org/account: via@wagmi/connectors5.11.2@reown/appkit: 1.8.17@reown/appkit-adapter-wagmi: 1.8.17wagmi: 2.19.5viem: 2.45.0