TriportRPC

RPC error -32000: insufficient funds for gas * price + value

Last updated:

At a glance

Error details
PropertyValue
Applies toEthereum, Polygon, BNB Smart Chain, Base and Robinhood Chain
JSON-RPC code-32000 (upstream)
Checked againstvalue + gasLimit × maxFeePerGas
Gas spentNone — rejected before broadcast
Gas currencyETH on Ethereum, Base and Robinhood Chain; POL on Polygon; BNB on BNB Smart Chain

Cause

A node admits a transaction only if the balance covers value + gasLimit × maxFeePerGas — the worst case, not the fee you expect to pay. A transaction that would succeed at the current base fee is still refused when the limit multiplied by the cap exceeds the balance. Triport relays the refusal unchanged.

Solution

  1. Compute the requirement as value + gasLimit × maxFeePerGas and compare it with eth_getBalance; the reservation uses the cap, not the expected price.
  2. Lower maxFeePerGas towards the current base fee, or lower gasLimit to the value eth_estimateGas returns plus a margin.
  3. On an L2, remember that gas is paid in the chain's native currency — on Base and Robinhood Chain that is ETH, on Polygon POL, on BNB Smart Chain BNB.
  4. Top up the sender before retrying: the check is arithmetic, so an unchanged retry is refused identically.

Example

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32000,
    "message": "insufficient funds for gas * price + value"
  }
}

FAQ

Why is it refused when the fee would actually be lower?
The node reserves the worst case: gasLimit multiplied by maxFeePerGas, plus value. Lowering the cap or the limit changes the reservation.
Does a failed check cost gas?
No. The transaction never enters the pool, so nothing is charged.