we should solve this problem if we want mainstream adoption:
wallets and apps treat nonce state as a private thing despite it being global shared data that lives in the mempool.
without a synchronization layer different frontends will diverge and users will face invisible deadlocks like what i had today.
the fix may be:
> expose pending nonce information through a common api and surface any "stuck" statuses in wallet client uis + prompt replacement logic so users do not have to solve this stuff themselves
users should *never* touch nonce gymnastics or need to be exposed to mempool heuristics.
until that coordination exists at the apps/wallets level, we will need @basedkarbon & @AgentChud to save us each time.
as for what happened, if you're curious:
> every evm account maintains a monotonic sequence number called the nonce.
>the chain will only accept a transaction whose nonce = the account’s current onchain value.
>once a transaction is pending, the same nonce is locked until that transaction lands or is explicitly replaced.
>i underpriced one transaction on base so it sat in limbo.
>my local nonce cache in rainbow said next nonce is "x" yet the network still expected "n"
rainbow coinbase wallet and rabby all signed new payloads with nonce x but without the required gas bump to satisfy the replacement rule every node discarded them and no txs went through.
as a user *every* wallet gave zero user feedback that this was the root of the issue.
to actually implement the solution, @MetaMask rescued me because its advanced panel exposes both nonce and dynamic fee fields.
i resubmitted a 0 eth transfer to myself with the identical nonce as my last tx and a much higher priority fee + gas limit and the backlog cleared within seconds.