Wires the client-side optimistic-chain-plus-retry pattern from
`Parameters/ASM_Native/ASM-single-asset-throughput.md` §2d into both ASM
surfaces (beta wallet AsmCore + Potidaea dApp), plus a shared node.js
retry lib and a chipnet script that proves the fix on live infrastructure.
Same-target reservoir contention (measured 1/6 collision under naïve
parallel broadcast in Parameters/ASM_Native/ASM-no-shared-state-contention.md
§4) now resolves silently: on `txn-mempool-conflict`, the wallet
re-plans against the mempool-inclusive tip and rebroadcasts, bounded to
5 attempts with linear `n × 200 ms` backoff. Fully trustless — no
sequencer, no relay, no coordinator.
Chipnet-proven end-to-end: same 6 wallets, same reservoir tip, same
simultaneous `Promise.all` broadcast — Phase A (baseline) gets 1/6
accepted (reproducing §4 exactly), Phase B (wrapped in withRetry) gets
6/6 accepted, 20 total broadcasts, mean 3.3 attempts, all under 3 s.
Snapshots: 0272 (wallet), 0277 (Potidaea), 0275 (chipnet proof).
Contention doc amended with §4a "Wallet-layer resolution — client-side
retry turns 1/6 into 6/6".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Prove the Potidaea platform-fee revenue model live on chipnet with two
end-to-end swap-relay tests, then sweep the cumulative chipnet-swap tally
from "17,000+" to the exact figure 52,998 across every referencing doc.
Snapshot 0239 (four revisions) captures the full arc — GMX Potidaea
(9,296 swaps · 5.47 M platform bits) → OpenMint Potidaea (26,599 swaps ·
15.02 M platform bits · 30.03 M founder bits · 44 swaps/sec peak · 2:1
founder/platform ratio matching ADR-0053 spec exactly). Client-added
platform-fee output at tx.outputs[3] — no covenant change required.
Ships the multi-source connectivity layer used throughout:
scripts/lib/chipnet-multisource.mjs (race local Fulcrum + BCHN RPC +
public electrums, chipnet-only endpoint list, wrong-network tip-guard,
belt-and-braces broadcast) and scripts/lib/chipnet-keystore.mjs (single
Keys/chipnet-keystore.json for all wallets, legacy per-file fallback).
Keys/ added to .gitignore.
Also: GMX/Game.X zero-bet-fee policy — chipnet-gmx-game-loop-test.mjs
now returns 0n from escrowFee() by default (feeAmount=0 on the escrow
covenant; already covered by the "if feeAmount > 0" gate at
GamePoolEscrowFlat.cash:54, no covenant change needed). Old formula
kept behind ARBITER_FEE_LEGACY=1 env flag.
Canonical tally table lives in
Parameters/ASM_Native/ASM-single-asset-throughput.md §4a; update it
first when the next throughput runs land, then grep-replace the exact
number across dependent files.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>