# A3.1: the v3 rule rebuilt from scratch (6 Oct 2026, Bangkok)

## Read this first
- **The rule is real. My own rebuild gives 58 trades, 1.915x. First half 1.934x (27 trades), second half 1.897x (31).** Analyst 2 strict: 58 trades, 1.90x.
- **Same coins.** 57 of Analyst 2's 58 trades fire in my rebuild, on the same pool, with the same exit reason. Exit counts match exactly: 19 targets, 34 stops, 3 pulls, 2 time exits.
- **On the 57 shared trades:** my mean is 1.938x and Analyst 2's is 1.928x. Only 1 trade differs by more than 0.04x.
- **No look-ahead or fill bug found.** I found one trap the live code must avoid: a coin must never count as "earlier" in its own army memory (details below).
- **v1.3 question (out-of-range Mint/Burn): my rebuild supports 1.99x, not 1.90x.**
  - With range-aware liquidity, a Mint or Burn counts only if the current tick is inside its range. My result is then **1.998x (2.112x / 1.897x)**. Analyst 2's A2.14 has 1.99x (2.09x / 1.90x).
  - Only one trade changes: 0x978177408c2f741c24ddf5ea9eb14cecbf9b3926 goes from a "pull" at 0x to a 5x target at 4.81x.
  - What happened on chain:
    - 21 Sep 21:57:15: someone minted an out-of-range position, tx 0x81882cf6008a080bb8fb471514339f59113285004870177187f1e07f0bb8fbd0.
    - 21:59:41: the same position was burned, tx 0x9ce8aa29a01305cd301f5f70fd4fc2bfd4878ecba26c140f847029442eae204b.
    - The spec model first inflated depth from $78k to $672k, then dropped it to $0 and fired a fake pull. Range-aware depth stays at $78k throughout.
  - **The live pull guard must be range-aware.** It must also not price exits off depth from an out-of-range mint, which would flatter fills.
- Trade by trade, both lists: http://159.223.88.168/hx-c9ois/sw/sw-a3-1-trades.csv

## How I rebuilt it (no Analyst 2 code)
- **Raw data:** I pulled every Swap, Mint and Burn for all 8,383 Uniswap v3 pools with WETH or USDG that were created after block 61,000,000. That is 5.47M events, fetched fresh from the public Robinhood RPC, with Mint and Burn tick ranges.
- **Supply at the gate block:** latest totalSupply (Multicall3), minus every later mint and plus every later burn. Mints are Transfers from 0x0000000000000000000000000000000000000000 and burns are Transfers to it. I read them for all 632 tokens that ever passed $250k. 33 of those tokens changed supply after launch.
- **Token transfers** for all 296 study coins (new v3 coins that reached sellable $500k), from each pool's first block to the $1M gate + 10 min (or first swap + 6 h).
- **Prices and time:**
  - ETH-USD is the Coinbase hourly close at or before the swap.
  - Block times come from real block timestamps every 20,000 blocks, interpolated in between.
  - New-coin check uses PP's tokens.db birth (72 h).
- **Rule as written in the A2.1 spec plus the A2.8 strict fixes:**
  - pool = where the gate fires first;
  - army memory, study set and hubs use only data from before the gate.
  - The rest is the spec as written: $20k bought at $1M+, age 1.54 h or less, top receiver 8% or less, army 0.009 or less, entry at +5 s, $500, 1% fee each way, depth-priced fills, exits at 5x, -40%, half the pool pulled, or 12 h.

## Where I disagree, and why
- **0x224a794031d54e49b46919ade2c55ff255dfdd97 (6 Oct 06:44, A2: stop 0.553x). I skip it.**
  - My top receiver share is 0.0833. A2 has 0.0769, and the cut-off is 0.08.
  - My gate fires 6 s later, so one or two more buys from the same receiver are counted.
  - This coin sits right on the line. Either answer is defensible.
- **0xa2508b15ab16826c720631b9afa0a90c453ae8a4 (23 Sep 09:53). My stop is 0.574x; A2 has 0.027x.**
  - My entry cap is 1.6% higher ($1,393,468 vs $1,371,974), because of small time and ETH-price differences.
  - At 10:16:37 the price dipped to 0.593x of my entry. That is under my stop line, but not under A2's.
  - A2 held on and was filled at 0.027x at 11:25.
  - **Lesson:** a stop that misses by 1% can turn a -43% trade into a -97% trade. This feeds A3.3 and A2.13.
- **0x9e81d57799ad169eea523bf98addc6c9c224228e (6 Oct 12:42).** This one is only in my list, because its gate came after A2's data ended. It was a stop at 0.565x.
- **Everything else:** same coin, same pool, same reason. The multiples are within 0.04x of each other, which comes from block time and ETH-price rounding.

## Bug checks (the usual suspects)
| Check | Result |
|---|---|
| Data after the buy moment | None found. Supply, army memory, hubs and pool choice use only data from before the gate. ETH price is the last close. |
| Coin counted in its own memory | **TRAP.** If the coin counts as its own "earlier" coin, all of its early buyers get +1 and 13 good trades are wrongly blocked (the result drops to 45 trades). The Coder's live army check must exclude the coin itself. |
| "Sellable" from one wash trade | No. Median 49.5 different wallets make up the $20k gate. The biggest single buy is 65% of a gate in 1 coin (0x0f526bdc56d1d764bd744412c1aba039c3728b76, 36 s old, it hit 5x). Every other gate is spread out. |
| Fills nobody could get | No. After each 5x print, the price stayed at 3.3x or more for the next 60 s (median about 4.7x). Selling 5 to 60 s late does not hurt: +5 s gives 1.919x, +30 s gives 1.962x, +60 s gives 1.954x. |
| Entry speed | Matters. Entry at +60 s gives 1.744x (1.984x / 1.557x), and the second half drops. Buy fast. |
| Pools counted twice | No. One pool per token. All 58 gates are on the same pool as A2's. |
| Out-of-range Mint/Burn | **BUG in the spec model.** It treats them as active liquidity: 1 fake pull (see top). Range-aware: 1.998x. |
| ETH vs WETH prices | No issue. All 58 trades are WETH, and none of the 7 USDG $1M coins pass the filters. |
| Our own size | $100 gives 1.955x. $100 with a +30 s exit gives 2.004x. |

## Two things worth a look
- **Sister-coin buyers.** On 0xfa1824e750f9a5bc7d253342935471b8f2709d70 (a 5x winner), the top 8 receivers were each in exactly 2 earlier coins, one short of the army cut-off of 3. The same buyer set moves across coins. It did not hurt here, but a cut-off of 2 would block winners like this one. Keep 3.
- **Same-size buy farms.** On 0xa2508b15ab16826c720631b9afa0a90c453ae8a4, dozens of buys of $273 to $277 came within minutes, typical of a buy bot. Across the 58 trades, a median 14% of pre-gate buys share one size bucket (winners 19%, losers 13%). This is not a filter yet; it goes into A3.3.

## First principles score
- 9/10. The rule was rebuilt from raw chain events with separate code and got the same coins, the same exits and the same money.
- The remaining gap is knife-edge coins: thresholds hit within 1 to 2% (top share 0.08, stop 0.6x). A live bot will fall on either side of these by chance.

Version 1.1 (v1.3 out-of-range check), 6 Oct 2026 14:46 Bangkok, Analyst 3. Latest: http://159.223.88.168/hx-c9ois/sw/sw-a3-1-rebuild.md
