✦ squircle
decomposed withdrawal success by network.
Read: the blended 98.7% looks healthy — but it's masking one network. Arbitrum fell to 96.1% on stale gas estimates. Funds are safe (auto-refunded), but it needs a fix. 1 move for you.You're clear — Kavin's flipping Arbitrum to the failover RPC; the other six networks are healthy.
Withdrawal success · all networks · 7d
98.7%
−0.3pts WoW
held ~99.0% — the blended line barely moved
✦ but it's hiding 1 network — see below
✦ NEEDS YOUwithdrawals · Arbitrumlive since 09:12 UTC
Arbitrum withdrawals are failing on stale gas estimates — funds are safe, but it's a fix
The blended number is fine, so this didn't trip a top-line alarm. Decomposed by network, Arbitrum withdrawal success fell
99.4% → 96.1% (−3.3pts) from 09:12 UTC, while the other six networks held.
89% of Arbitrum's failures trace to one root cause — a stale gas oracle, surfacing as two codes (gas_estimation_failed71% + rpc_timeout18%). That lines up with
Arbitrum's ArbOS gas-schedule change this morning: our wallet service estimates gas off the Alchemy RPC oracle, which went stale, so withdrawals submit underpriced, stick pending, hit our 20-min timeout, and get
marked failed + auto-refunded. ~340 withdrawals this morning — no funds lost, but they saw "failed" and Arbitrum support contacts are up 6×.
✓ No funds at risk. Every timed-out withdrawal was auto-refunded to the user's balance — total $1.9M across 340 tx, all reconciled. This is an experience + success-rate problem, not a loss event.
Deferred — nothing changed on the withdrawal path. squircle will resurface this if Arbitrum success drops below 95% or by tomorrow's standup.
✦ NEXTconfirmed · ship the fix
Trace · WD-11837740.42 ETH → Arbitrum One · 09:41 UTCtap a stage for its source
The break is stage 3. Gas was estimated at 0.00021 ETH off Alchemy's stale oracle; the live base fee needed ~0.00049 ETH. Underpriced → never mined → auto-refunded. 23 of 25 sampled failures match this exact path.
Send Kavin the fix: route Arbitrum gas estimation to the QuickNode failover
The safe, reversible fix is a wallet-service config flag: estimate Arbitrum gas off the QuickNode failover endpoint and raise the buffer to 1.8× until Alchemy's oracle re-syncs. No deploy needed. squircle drafted the ask to
Kavin (eng), cc'd on-call, and a P1 ticket — but
won't flip a money-path flag itself; that's an eng change.
“Arbitrum withdrawals 96.1% (−3.3pts) since 09:12 — Alchemy's gas oracle went stale after the ArbOS change, so we underprice and tx's stick → 20-min timeout → auto-refund (funds safe, 340 tx). Flip Arbitrum gas estimation to the QuickNode failover endpoint + raise the buffer to 1.8× until Alchemy re-syncs. Config flag, reversible, no deploy. Revert when success > 99%.”
Slack #withdrawals · Jira WALLET-2208 (P1)
✓
Cause isolated — and handed off
Kavin's on the failover flip · WALLET-2208 filed (P1) · on-call cc'd
✦ GET AHEADproactive · catch it earlier next time
One move to get ahead: today you found out from the success rate — a lagging number that the blend nearly hid. squircle can watch the
RPC gas-oracle freshness per network and surface a Move (same card, your call) the moment any provider's estimate drifts >25% from the on-chain base fee for 5 min — the leading signal, before it dents withdrawals.
✓ Watch armed — squircle surfaces a Move when any network's gas oracle drifts >25% for 5 min. It alerts; you decide whether to fail over. Edit in Roadmap → routines.
That's everything — withdrawals are back in your court when Kavin's flag lands. squircle will confirm when Arbitrum clears 99%.
What squircle looked at
success by network + failure-reason drill
✦ Why the top-line looked healthy
Arbitrum is only ~6% of withdrawal volume, so a −3.3pt drop there moves the blended number just ~0.2pt — which is why the dashboard still reads a calm 98.7%. The fix for that isn't staring at the top line; it's decomposing it. That's what squircle did first.
Success rate by network · 7dtap a network to see its failure breakdown
Failure reasons ·
the break
Every network but Arbitrum is flat WoW, and only Arbitrum shows a single failure cause dominating — healthy networks fail in a spread of small, random ways. squircle decomposed the blend so you didn't have to slice seven networks by hand.
Traces use transaction metadata & on-chain data only — never private keys or customer PII. Any change to the withdrawal path is logged to the wallet-service audit and needs eng sign-off.