Linked from every report. One page, kept current.
Every number Candor Labs publishes comes from one of two records: a continuous log of what pools advertise, and a reconstruction from chain logs of what liquidity positions received. They are different measurements and are never mixed.
A snapshot of every pool tracked by DefiLlama is taken four times a day, at 02:51, 08:51, 14:51 and 20:51 UTC. Historical series are backfilled to the earliest date the source holds, which is February 2022.
The server runs on UTC and never observes local time. This is deliberate: a schedule expressed in a zone with daylight saving will, twice a year, either skip a run or execute one twice.
An hourly catch-up job collects if the most recent run is more than seven hours old or failed, and exits silently otherwise. Within a run, a network-class failure is retried to a maximum of four attempts in total — the first try plus three retries, backing off 30 s, then 120 s, then 300 s. A malformed payload fails immediately rather than being retried into the record. The attempt number is written to the run log, so a blip that was recovered stays visible instead of looking like an uninterrupted success.
Collection outcomes are published in full at /status/ — failures and gaps included.
Liquidity positions are reconstructed from Base chain logs.
Transfer(0x0 → owner) event.Collect events the position actually emitted.
Nothing is inferred from balances or estimated from pool averages.eth_getLogs is capped at 10,000 blocks per call by the public endpoint, and the
endpoint rate-limits, so retrieval paces itself adaptively. No archive node is
required: mainnet.base.org serves state and logs back to genesis.
Gas. Every position figure ignores transaction costs. Including them moves every result in the same direction — worse — so results are best read as an upper bound on what providers kept.
Impermanent loss is not netted against fees unless a report says so explicitly. Fee income and price outcome are reported as separate quantities.
Errors that inflate a finding are the ones that survive review, so they are recorded here rather than quietly fixed.
This log covers two kinds of correction, not one. Corrections to figures — the arithmetic slipped. And corrections to claims about provenance, method, or what we collected — we described data differently from how it was actually gathered. The second kind is the more serious of the two, and it is logged here on the same terms.
og:description — the text
that appears whenever the link is shared. No figure changed. The retention
figure of 33.5%, the sample of 7,853 pools and the 61.3% share
losing more than half all stand exactly as published, and the report's figures
remain computed at 26 August 2026. Anyone who cited a number from this
report can keep citing it.
The three entries below are undated. They were made before this log existed,
and nothing on record fixes the day each was corrected. A date could be taken
from file timestamps or from repository history, but this repository was created
after these corrections had already happened — so any date we gave would be the
artifact's date, not the correction's. We would rather show the hole than fill it
with a plausible number.The rule from here: every correction is dated on the day it is made. An undated entry means the date is not establishable — never that nobody bothered.
Collect events produced a 195% return figure. Corrected: 98.6%.Every one of those corrections made the finding less interesting. That is the expected direction, and it is why single-pass results are not published.
Two kinds of number appear on this site and they behave in opposite ways.
Archive counts — pool totals, observation totals, the collection log — are queried from the database every time the site is built, rather than typed in. A stale count is a build failure rather than an oversight.
Published findings are frozen. Each carries the date its figures were computed, and no later build recomputes it. A finding is a claim about a specific dataset at a specific moment: if it drifted silently, every citation of it would become wrong and the corrections log below would mean nothing. When a finding does change, it changes here, in public, with the old value shown.
If you want to check something, ask for the underlying rows: contact@candorlabs.xyz.