Adversarial flow receipt
Generated by a real run of AdversarialFlow.s.sol piped through packages/sim-report. Every number below came out of actual contract execution — none of it is hand-typed. The series parameters (120 ticks, fixed fill size, fixed γ/σ²/spread/bound) are pinned in the script itself, so it reproduces run to run.
Over 120 fills on a trending series (mid moved from 0.0002857142 to 0.0000834811, -70.78%), both positions took on the identical inventory drift (token0 grew 84.39% for both, since both received the same fixed-size adversarial fills), but the stock position ended -0.2110 PnL while Keel ended -0.0620 PnL -- a 0.1490 improvement, entirely from Keel's reservation-price skew pricing the exposed-side fills worse for the taker as inventory drifted.
| Tick | Mid | Stock inv. | Stock PnL | Keel inv. | Keel PnL |
|---|---|---|---|---|---|
| 00 | 0.0002857142 | 3525.00 | 0.0000 | 3525.00 | 0.0007 |
| 01 | 0.0002816759 | 3550.00 | -0.0000 | 3550.00 | 0.0015 |
| 02 | 0.0002777226 | 3575.00 | -0.0001 | 3575.00 | 0.0021 |
| 03 | 0.0002738520 | 3600.00 | -0.0003 | 3600.00 | 0.0028 |
| 04 | 0.0002700617 | 3625.00 | -0.0007 | 3625.00 | 0.0033 |
| 05 | 0.0002663495 | 3650.00 | -0.0011 | 3650.00 | 0.0038 |
| 06 | 0.0002627134 | 3675.00 | -0.0016 | 3675.00 | 0.0043 |
| 07 | 0.0002591512 | 3700.00 | -0.0022 | 3700.00 | 0.0047 |
| 08 | 0.0002556610 | 3725.00 | -0.0028 | 3725.00 | 0.0051 |
| 09 | 0.0002522408 | 3750.00 | -0.0036 | 3750.00 | 0.0054 |
| 10 | 0.0002488888 | 3775.00 | -0.0044 | 3775.00 | 0.0057 |
| 11 | 0.0002456032 | 3800.00 | -0.0052 | 3800.00 | 0.0060 |
| 12 | 0.0002423822 | 3825.00 | -0.0061 | 3825.00 | 0.0062 |
| 13 | 0.0002392242 | 3850.00 | -0.0071 | 3850.00 | 0.0064 |
| 14 | 0.0002361275 | 3875.00 | -0.0082 | 3875.00 | 0.0065 |
| 15 | 0.0002330905 | 3900.00 | -0.0093 | 3900.00 | 0.0067 |
| 16 | 0.0002301117 | 3925.00 | -0.0104 | 3925.00 | 0.0068 |
| 17 | 0.0002271897 | 3950.00 | -0.0116 | 3950.00 | 0.0068 |
| 18 | 0.0002243230 | 3975.00 | -0.0129 | 3975.00 | 0.0069 |
| 19 | 0.0002215102 | 4000.00 | -0.0142 | 4000.00 | 0.0069 |
| 20 | 0.0002187500 | 4025.00 | -0.0155 | 4025.00 | 0.0069 |
| 21 | 0.0002160410 | 4050.00 | -0.0169 | 4050.00 | 0.0069 |
| 22 | 0.0002133821 | 4075.00 | -0.0184 | 4075.00 | 0.0068 |
| 23 | 0.0002107719 | 4100.00 | -0.0198 | 4100.00 | 0.0068 |
| 24 | 0.0002082093 | 4125.00 | -0.0213 | 4125.00 | 0.0067 |
| 25 | 0.0002056932 | 4150.00 | -0.0229 | 4150.00 | 0.0066 |
| 26 | 0.0002032225 | 4175.00 | -0.0245 | 4175.00 | 0.0065 |
| 27 | 0.0002007960 | 4200.00 | -0.0261 | 4200.00 | 0.0063 |
| 28 | 0.0001984126 | 4225.00 | -0.0277 | 4225.00 | 0.0062 |
| 29 | 0.0001960715 | 4250.00 | -0.0294 | 4250.00 | 0.0060 |
| 30 | 0.0001937716 | 4275.00 | -0.0311 | 4275.00 | 0.0058 |
| 31 | 0.0001915119 | 4300.00 | -0.0328 | 4300.00 | 0.0056 |
| 32 | 0.0001892915 | 4325.00 | -0.0345 | 4325.00 | 0.0054 |
| 33 | 0.0001871094 | 4350.00 | -0.0363 | 4350.00 | 0.0052 |
| 34 | 0.0001849649 | 4375.00 | -0.0381 | 4375.00 | 0.0050 |
| 35 | 0.0001828571 | 4400.00 | -0.0399 | 4400.00 | 0.0047 |
| 36 | 0.0001807851 | 4425.00 | -0.0418 | 4425.00 | 0.0045 |
| 37 | 0.0001787481 | 4450.00 | -0.0436 | 4450.00 | 0.0042 |
| 38 | 0.0001767453 | 4475.00 | -0.0455 | 4475.00 | 0.0039 |
| 39 | 0.0001747760 | 4500.00 | -0.0474 | 4500.00 | 0.0037 |
| 40 | 0.0001728395 | 4525.00 | -0.0493 | 4525.00 | 0.0034 |
| 41 | 0.0001709349 | 4550.00 | -0.0512 | 4550.00 | 0.0030 |
| 42 | 0.0001690617 | 4575.00 | -0.0532 | 4575.00 | 0.0027 |
| 43 | 0.0001672190 | 4600.00 | -0.0551 | 4600.00 | 0.0024 |
| 44 | 0.0001654064 | 4625.00 | -0.0571 | 4625.00 | 0.0021 |
| 45 | 0.0001636230 | 4650.00 | -0.0591 | 4650.00 | 0.0017 |
| 46 | 0.0001618684 | 4675.00 | -0.0611 | 4675.00 | 0.0014 |
| 47 | 0.0001601418 | 4700.00 | -0.0631 | 4700.00 | 0.0010 |
| 48 | 0.0001584427 | 4725.00 | -0.0651 | 4725.00 | 0.0006 |
| 49 | 0.0001567705 | 4750.00 | -0.0671 | 4750.00 | 0.0002 |
| 50 | 0.0001551246 | 4775.00 | -0.0692 | 4775.00 | -0.0001 |
| 51 | 0.0001535045 | 4800.00 | -0.0712 | 4800.00 | -0.0005 |
| 52 | 0.0001519097 | 4825.00 | -0.0733 | 4825.00 | -0.0009 |
| 53 | 0.0001503396 | 4850.00 | -0.0753 | 4850.00 | -0.0013 |
| 54 | 0.0001487937 | 4875.00 | -0.0774 | 4875.00 | -0.0017 |
| 55 | 0.0001472715 | 4900.00 | -0.0795 | 4900.00 | -0.0022 |
| 56 | 0.0001457725 | 4925.00 | -0.0816 | 4925.00 | -0.0026 |
| 57 | 0.0001442964 | 4950.00 | -0.0836 | 4950.00 | -0.0031 |
| 58 | 0.0001428425 | 4975.00 | -0.0857 | 4975.00 | -0.0035 |
| 59 | 0.0001414105 | 5000.00 | -0.0878 | 5000.00 | -0.0040 |
| 60 | 0.0001400000 | 5025.00 | -0.0899 | 5025.00 | -0.0045 |
| 61 | 0.0001386104 | 5050.00 | -0.0920 | 5050.00 | -0.0050 |
| 62 | 0.0001372414 | 5075.00 | -0.0941 | 5075.00 | -0.0055 |
| 63 | 0.0001358926 | 5100.00 | -0.0962 | 5100.00 | -0.0060 |
| 64 | 0.0001345636 | 5125.00 | -0.0984 | 5125.00 | -0.0065 |
| 65 | 0.0001332540 | 5150.00 | -0.1005 | 5150.00 | -0.0071 |
| 66 | 0.0001319634 | 5175.00 | -0.1026 | 5175.00 | -0.0076 |
| 67 | 0.0001306914 | 5200.00 | -0.1047 | 5200.00 | -0.0082 |
| 68 | 0.0001294378 | 5225.00 | -0.1068 | 5225.00 | -0.0088 |
| 69 | 0.0001282021 | 5250.00 | -0.1089 | 5250.00 | -0.0094 |
| 70 | 0.0001269841 | 5275.00 | -0.1110 | 5275.00 | -0.0100 |
| 71 | 0.0001257833 | 5300.00 | -0.1132 | 5300.00 | -0.0106 |
| 72 | 0.0001245995 | 5325.00 | -0.1153 | 5325.00 | -0.0112 |
| 73 | 0.0001234322 | 5350.00 | -0.1174 | 5350.00 | -0.0119 |
| 74 | 0.0001222814 | 5375.00 | -0.1195 | 5375.00 | -0.0125 |
| 75 | 0.0001211465 | 5400.00 | -0.1216 | 5400.00 | -0.0132 |
| 76 | 0.0001200274 | 5425.00 | -0.1237 | 5425.00 | -0.0139 |
| 77 | 0.0001189237 | 5450.00 | -0.1258 | 5450.00 | -0.0146 |
| 78 | 0.0001178351 | 5475.00 | -0.1280 | 5475.00 | -0.0153 |
| 79 | 0.0001167615 | 5500.00 | -0.1301 | 5500.00 | -0.0160 |
| 80 | 0.0001157024 | 5525.00 | -0.1322 | 5525.00 | -0.0168 |
| 81 | 0.0001146577 | 5550.00 | -0.1343 | 5550.00 | -0.0175 |
| 82 | 0.0001136271 | 5575.00 | -0.1364 | 5575.00 | -0.0183 |
| 83 | 0.0001126103 | 5600.00 | -0.1385 | 5600.00 | -0.0191 |
| 84 | 0.0001116071 | 5625.00 | -0.1406 | 5625.00 | -0.0199 |
| 85 | 0.0001106172 | 5650.00 | -0.1427 | 5650.00 | -0.0208 |
| 86 | 0.0001096405 | 5675.00 | -0.1447 | 5675.00 | -0.0216 |
| 87 | 0.0001086766 | 5700.00 | -0.1468 | 5700.00 | -0.0225 |
| 88 | 0.0001077254 | 5725.00 | -0.1489 | 5725.00 | -0.0234 |
| 89 | 0.0001067866 | 5750.00 | -0.1510 | 5750.00 | -0.0243 |
| 90 | 0.0001058601 | 5775.00 | -0.1531 | 5775.00 | -0.0252 |
| 91 | 0.0001049455 | 5800.00 | -0.1551 | 5800.00 | -0.0261 |
| 92 | 0.0001040428 | 5825.00 | -0.1572 | 5825.00 | -0.0271 |
| 93 | 0.0001031516 | 5850.00 | -0.1593 | 5850.00 | -0.0281 |
| 94 | 0.0001022718 | 5875.00 | -0.1613 | 5875.00 | -0.0291 |
| 95 | 0.0001014033 | 5900.00 | -0.1634 | 5900.00 | -0.0301 |
| 96 | 0.0001005458 | 5925.00 | -0.1654 | 5925.00 | -0.0311 |
| 97 | 0.0000996991 | 5950.00 | -0.1675 | 5950.00 | -0.0322 |
| 98 | 0.0000988630 | 5975.00 | -0.1695 | 5975.00 | -0.0333 |
| 99 | 0.0000980374 | 6000.00 | -0.1715 | 6000.00 | -0.0344 |
| 100 | 0.0000972222 | 6025.00 | -0.1736 | 6025.00 | -0.0355 |
| 101 | 0.0000964170 | 6050.00 | -0.1756 | 6050.00 | -0.0367 |
| 102 | 0.0000956218 | 6075.00 | -0.1776 | 6075.00 | -0.0379 |
| 103 | 0.0000948364 | 6100.00 | -0.1796 | 6100.00 | -0.0391 |
| 104 | 0.0000940607 | 6125.00 | -0.1816 | 6125.00 | -0.0403 |
| 105 | 0.0000932944 | 6150.00 | -0.1836 | 6150.00 | -0.0416 |
| 106 | 0.0000925375 | 6175.00 | -0.1856 | 6175.00 | -0.0428 |
| 107 | 0.0000917897 | 6200.00 | -0.1876 | 6200.00 | -0.0441 |
| 108 | 0.0000910509 | 6225.00 | -0.1896 | 6225.00 | -0.0455 |
| 109 | 0.0000903211 | 6250.00 | -0.1916 | 6250.00 | -0.0468 |
| 110 | 0.0000896000 | 6275.00 | -0.1935 | 6275.00 | -0.0482 |
| 111 | 0.0000888874 | 6300.00 | -0.1955 | 6300.00 | -0.0496 |
| 112 | 0.0000881834 | 6325.00 | -0.1975 | 6325.00 | -0.0511 |
| 113 | 0.0000874876 | 6350.00 | -0.1994 | 6350.00 | -0.0525 |
| 114 | 0.0000868001 | 6375.00 | -0.2014 | 6375.00 | -0.0540 |
| 115 | 0.0000861207 | 6400.00 | -0.2033 | 6400.00 | -0.0556 |
| 116 | 0.0000854492 | 6425.00 | -0.2053 | 6425.00 | -0.0571 |
| 117 | 0.0000847855 | 6450.00 | -0.2072 | 6450.00 | -0.0587 |
| 118 | 0.0000841295 | 6475.00 | -0.2091 | 6475.00 | -0.0603 |
| 119 | 0.0000834811 | 6500.00 | -0.2110 | 6500.00 | -0.0620 |
The same mechanism, off the simulator and on a chain.
Everything above came out of AdversarialFlow.s.sol running locally against a forge VM — real contract execution, but a local one, which produces no transactions. Below is a separate, smaller run: a Keel strategy actually shipped to Base Sepolia on the real USDC/WETH pair and hit with 10 real fills, each a confirmable transaction. Different run, different parameters, different scale — shown side by side because a local receipt and a public one prove different things.
| Tick | Inventory before | WETH out | Transaction |
|---|---|---|---|
| 00 | 12.00 USDC | 0.00023103 | 0x81bffe28… ↗ |
| 01 | 13.00 USDC | 0.00019014 | 0x2bffc6e0… ↗ |
| 02 | 14.00 USDC | 0.00015717 | 0x5bdc9bac… ↗ |
| 03 | 15.00 USDC | 0.00013009 | 0x5b6925f6… ↗ |
| 04 | 16.00 USDC | 0.00010751 | 0x7e494f44… ↗ |
| 05 | 17.00 USDC | 0.00008840 | 0x4de92c99… ↗ |
| 06 | 18.00 USDC | 0.00007202 | 0x41c470be… ↗ |
| 07 | 19.00 USDC | 0.00005833 | 0xe75ef088… ↗ |
| 08 | 20.00 USDC | 0.00004616 | 0x17bf1480… ↗ |
| 09 | 21.00 USDC | 0.00003525 | 0xb7982812… ↗ |
WETH paid out falls with every fill — each one pushes inventory further from target, so the next is priced worse for the taker. That monotonic fall is the skew, measured rather than modelled. Ship tx 0xf6e5a89e… ↗
And one covered-side fill — the other direction, 0.0001 WETH in for 3.372388 USDC out, bringing inventory back toward target instead of pushing it away. Its units are reversed, so it sits here rather than in the table above. This is the first covered fill the project has landed on chain: on the previous router the direction was mispriced and reverted at any realistic size. 0xc135c35b… ↗
Reproduce: forge script script/AdversarialFlow.s.sol --tc AdversarialFlow