The PONS buyback is not a revenue-linked TWAP. It is a fixed-clip schedule that
fires every 15 minutes through a permissionless poke() on one contract, and the
clip sizes are set by the operator. Everything below was read from Robinhood Chain transaction
receipts on 7 September 2026. Nothing is taken from Pons documentation or press.
Memo No. 001 called the buyback a TWAP tracking revenue. That was the operator's word for it, and the daily totals looked the part. The tick-level record says otherwise, and this memo supersedes that reading.
A single contract executes every burn: the buyback splitter at
0x5795d2…c324.
Every 900 seconds a keeper calls poke(). In that one transaction the contract wraps
a fixed ETH clip, sells a fixed clip of each fee asset it holds for WETH, swaps all of the WETH
into PONS on the PONS/WETH 1% pool, and sends the PONS to the dead address. The splitter
never holds PONS.
On 6 September the tick never stopped, but its size was halved at 16:59 UTC while price fell from 0.90 to 0.77, then raised fivefold at 20:59 UTC after 24 configuration calls from the deployer's wallet. The founder's "twapping" post came three hours after that. Holders should read burn per tick, not burn per day, and should know that the schedule is a decision someone makes.
0x0DAdfA92…)
calls poke() (selector 0x18178358) every 15 minutes. The function
has no access control. A JIT-liquidity bot
(0x9f7607c4…,
contract 0xbecd8da6…)
sometimes calls it first inside its own bundle, minting concentrated liquidity on the PONS
pool so the buyback fills against it and the bot keeps the 1% fee.0x10cc6b…26ba
(token0 WETH, token1 PONS, 1% fee), recipient the splitter.0x…dEaD
in the same transaction. A normal tick has about 17 burn logs.0xda4bCe…3968
via calls with selector 0x249bc14b, one per asset. The splitter's implementation
(0x1c65eA…1748)
is unverified, so the sizing rule cannot be read; the effect of the calls
can.This is the whole memo in one picture. Each bar is one poke(), hover or tap a
bar for the transaction. The price line sits underneath on the same clock rather than on a
second axis, so the eye compares timing, not height.
Ticks in PONS burned (timestamps estimated from block height, accurate to about a minute). Hover a row to see its window on the chart:
| Window, 6 Sep UTC | PONS per tick | Price |
|---|---|---|
| 10:00 to 16:44 | 9,100 to 10,400 | 0.90 to 0.95 |
| 16:59 to 20:44 (16 ticks) | 4,175 to 4,528 | 0.90 down to 0.77 |
| 20:59 to 23:45 | 48,149 falling to 37,933 | 0.80 bounce to 0.87 |
| 7 Sep 00:00 to 04:31 | about 24,000 | 0.85 down to 0.74, back to 0.76 |
Admin configuration calls: 24 transactions from
0xda4bCee7…
between 20:52:20 and 20:54:04 UTC
(the first of the batch),
then one more (selector 0x75134ede) at 21:02:21. The first large tick was 20:59.
The 16:59 halving is inferred from tick sizes; the corresponding admin calls were not
retrieved (see method).
Founder post: @MEADGod, 00:10 UTC 7 Sep, "for those wondering." with the dashboard screenshot ($3.19M in the splitter, $480k in escrow), then "*twapping 15m fyi". That is three hours after the fivefold increase.
| UTC day | Ticks | PONS burned | WETH spent | USD at hourly ETH |
|---|---|---|---|---|
| 4 Sep | 88 | 1,693,681 | 470.5 | 1,172,216 |
| 5 Sep | 86 | 1,492,275 | 512.5 | 1,262,111 |
| 6 Sep | 93 | 1,254,897 | 440.2 | 1,101,670 |
| 7 Sep to 04:31 | 17 | 457,068 | 146.3 | 366,546 |
From the splitter only; a second burn source, clones of the verified SinjohFeeRouter, is negligible and excluded.
poke(). If the keeper is late, the schedule
can still be run.Burns are Transfer events on the PONS token with to = 0x…dEaD,
read with eth_getLogs and grouped by transaction. WETH spent is the
Swap events on the PONS/WETH pool with the splitter as recipient and positive
amount0. Tick cadence and callers come from eth_getTransactionByHash
on each burn transaction. Admin calls are Blockscout's transaction list for the splitter,
filtered to incoming, page one. Contract types are Blockscout's smart-contract endpoint: the
splitter is an ERC1967 proxy; EIP-1167 clones of the verified SinjohFeeRouter are the second,
tiny burn source. The RPC needs a User-Agent header and caps at 10,000 logs per call.