20 rows at 31–72 s: most at 61–72 s, plus one at 31 s.
21 rows at 602–640 s: most at 602–608 s, plus one at 640 s.
Good point Dipankar, and the 41 rows with validAfter set do price it. Settlement minus validAfter isn’t spread out; it falls into two tight groups. 20 rows sit at 31–72 s (most at 61–72) and 21 at 602–640 s (most at 602–608). That’s what you’d expect from clients that backdate validAfter by a fixed 60 or 600 seconds (the x402 SDK uses 10 minutes) and then settle a few seconds later. Taking the backdate off, the implied delay from signing to settlement is about 2–12 s for most rows and 40 s at the very most. Your two 70-minute windows are in the second group: they settled 2 s after their backdated start, so they were signed for an hour almost exactly.
So validAfter does track signing time, offset by a fixed backdate, and the delay is seconds, not minutes. If the 1,400 validAfter = 0 clients behave like these, their lifetime is their time left plus a few seconds, well clear of the hour. The caveat is that 41 rows come from clients that chose to set validAfter, and the validAfter = 0 clients might queue differently. I can’t rule that out from calldata alone. Pairing each settlement with its x402 /verify call would settle it, but that’s facilitator-side data I don’t have.
