Skip to content

State Override in eth_call Stopped Working - Breaking Account Abstraction #4417

@mgarbs

Description

@mgarbs

Description

State override parameters in eth_call that previously worked are now returning "Invalid params" errors. This is a regression that occurred within the last 2 months and is blocking production Account Abstraction (AA) functionality.

Impact

  • Severity: Production blocking Thirdweb on mainnet and testnet
  • Affected: Account Abstraction wallets on Hedera
  • Users impacted: All developers using AA with Hedera through ThirdWeb and potentially other providers

Steps to Reproduce

1. Execute eth_call WITH state override (currently fails):

curl https://296.rpc.thirdweb.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "eth_call",
    "params": [
      {
        "from": "0x27a979fFaF23cA83c0789E3d475f14A0B7D45e6b",
        "to": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
        "data": "0xd6383f940000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006800000000000000000000000001de7c049399a48dd2eb1c29ad8349b7e1adcaa6017fb1af8c06a0b8677b595891a399b9bbbab931db2d8416700000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d090000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244b61d27f6000000000000000000000000bf6a62bc394d5abe717ff432f0e9f43d15528acf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a457bc3d780000000000000000000000001de7c049399a48dd2eb1c29ad8349b7e1adcaa6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000174b2aA3511A31327d47D562c292D8B445A900B2ABf0000000000000000000000000000000000000000000000000000000068d6662f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000003c7465616d5f636c726b67646264323038646b396430756a696f6a756965642d70726a5f636c76326d34686e6a30306777747776773932346b646c3572000000000000000000000000000000000000000000000000000000000000000000000041fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
      },
      "latest",
      {
        "0x1de7C049399a48Dd2eB1c29aD8349B7E1AdCaA60": {
          "balance": "0x56bc75e2d63100000"
        }
      }
    ]
  }'

Current Result:

{
  "error": {
    "code": -32602,
    "message": "[Request ID: ...] Invalid params"
  }
}

Expected Result: Successful execution with overridden balance

2. Even simple state overrides fail:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_call",
  "params": [
    {
      "to": "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
      "data": "0x"
    },
    "latest",
    {
      "0x1de7C049399a48Dd2eB1c29aD8349B7E1AdCaA60": {
        "balance": "0x56bc75e2d63100000"
      }
    }
  ]
}

Previous Behavior

  • Timeline: Thirdweb - "State overrides were working as recently as July 2025"
  • What changed: This functionality stopped working without any changes on Thirdwebs end (they upgraded their relay to 0.71 recently and this is when they noticed the change
  • Last known working: Approximately 2 months ago

Why This Is Critical

1. Account Abstraction Requirement

Balance overrides are required for AA to function properly on Hedera due to decimal differences:

  • HBAR: 8 decimal places (1 HBAR = 100,000,000 tinybar)
  • ETH: 18 decimal places (1 ETH = 1,000,000,000,000,000,000 wei)

Without balance overrides, AA wallets encounter validation errors due to this decimal mismatch.

2. Standard JSON-RPC Feature

State overrides are part of the standard Ethereum JSON-RPC specification for eth_call and eth_estimateGas. They're essential for:

  • Testing contract interactions without spending gas
  • Simulating transactions with modified balances
  • Account Abstraction implementations

3. Multi-chain Compatibility

This regression breaks Hedera's compatibility with standard Ethereum tooling and makes it inconsistent with other EVM-compatible chains.

Environment

  • JSON-RPC Relay Version: Latest (issue persists across versions)
  • Network: mainnet and testnet
  • RPC Endpoint: https://296.rpc.thirdweb.com
  • First noticed: Within the last 2 months
  • Last confirmed working: July 2025

Additional Context

  • Thirdweb hasn't updated our node in 2 months (previous verion 0.70) and it is not qorking in 0.71
  • The v0.71.0 release notes mention "stricter balance validation" which may be related
  • This is affecting production AA wallets and blocking deployments

Requested Resolution

  1. Restore state override functionality for eth_call and eth_estimateGas
  2. If intentionally removed: Please provide migration path and reasoning
  3. Urgent timeline needed as this is blocking production functionality

References

Thank you for your attention to this critical issue.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions