Method
How every number on this site is produced, what is excluded, and what cannot be seen. Permanent and versioned; every change is in the changelog at the end. Written to be quoted. Where TOLL is uncertain, it says so here rather than rounding the uncertainty away.
The counters
Every record in the Coinbase CDP discovery catalogue carries three quality counters: l30DaysTotalCalls, l30DaysUniquePayers and lastCalledAt. TOLL pulls the full catalogue every six hours, unauthenticated, page by page, and appends one row per endpoint per pull to an append-only table. Nothing in that table is ever updated or deleted. Every Ledger page is built from one snapshot and prints that snapshot's timestamp. Binance's registry publishes no counters, so its 128 exclusive listings appear in the index without them.
The counters are recomputed in batches, and TOLL oversamples them
Across five snapshots spanning 66 minutes on 10 September 2026, not one endpoint's calls or last-call timestamp changed. The registry recomputes its counters on a schedule of its own; TOLL samples every six hours, more often than they change. So far 28 snapshots have been taken since , of which 25 carried a change from the previous one. The series on the Ledger page marks every snapshot and draws its trace through the changed ones, and states the observed refresh cadence as it accumulates.
The two counters differ in semantics; lastCalledAt is a trailing 30-day field
On the current snapshot 12 endpoints report zero calls in 30 days and still carry a last-call timestamp inside the 30-day window. Either the call count excludes something the timestamp includes, or the two windows differ. TOLL does not know which and does not guess. The earliest last-call value on every snapshot is 30 days before it ( on this one, latest ); nothing older is retained by the registry, so an endpoint last called 31 days ago is indistinguishable from one never called, and dormancy figures are bounded at 30 days.
The 12 endpoints with zero calls and a last-call timestamp inside the window
- svm402.com · last called
- api.gocreativeai.com · last called
- aiagentoracle.ai · last called
- aiagentoracle.ai · last called
- omnicall.gocreativeai.com · last called
- mcp.memestack.ai · last called
- mcp.memestack.ai · last called
- api.robinx.io · last called
- api.robinx.io · last called
- api.robinx.io · last called
- api.robinx.io · last called
- dev.gavedu.com · last called
The payers figure is a sum of per-endpoint uniques and an upper bound
l30DaysUniquePayers is counted per endpoint. One wallet paying twenty endpoints is counted twenty times. Wherever the site shows a total of payers it is the sum of those per-endpoint counts, labelled as an upper bound, and it is never presented as a count of unique payers. Global uniqueness is not derivable from the quality counters; it needs on-chain settlement data, which is a later phase.
Exactly one call from exactly one payer
The share of endpoints with counters whose calls and unique payers both equal 1 on the snapshot. It is the share of the index that has been touched once, by whom the counters cannot say.
Correlation between calls and unique payers
Pearson's r between l30DaysTotalCalls and l30DaysUniquePayers across every endpoint with counters on the snapshot, computed by Postgres's corr(). A value near zero means volume and breadth of use are unrelated: the endpoints with the most calls are not the endpoints with the most payers. Rows where either counter is absent are excluded from that pair and from no other figure.
Both counters are heavy-tailed, and Pearson's r on a heavy-tailed pair is carried by its largest points. Between 10 and 14 September 2026 the published r rose from 0.11 to 0.40 while one endpoint grew from 3,147 calls and 246 payers to 52,038 calls and 1,985 payers, becoming both the largest by calls and the largest by payers; removing that endpoint alone returns r to 0.10. Over the same days the same set of endpoints, the rank correlation and r across the endpoints outside the top 1% by calls all held still. Two figures are therefore published beside Pearson, and neither replaces it: Spearman's r on the ranks of the same two columns, and Pearson across every endpoint outside the top 1% by calls. The sentence each page states is chosen from the value at that snapshot rather than written once, so it cannot go stale under the figure it describes. All four measurements at every snapshot, the endpoint that carries the published one, and what follows for aggregate figures about a market this concentrated are on the correlation page.
Concentration and top shares
Endpoints are sorted by calls, descending. The top 1 percent is the largest whole number of endpoints not smaller than 1 percent of the count; its share is the sum of its calls over the sum of all calls. The same for 10 and 50 percent. Deciles use linear interpolation between neighbouring ranks. Buckets are fixed and printed. No seller cap applies on Ledger pages: the concentration is the finding.
What a wallet is
The payTo address of the first accept on the endpoint's primary registry record (Coinbase where it is listed there, otherwise Binance). It is a payment address as declared by the seller. It does not identify a person or a company, and TOLL never claims it does. Endpoints sharing a payee wallet are grouped on a seller page for that reason only. EVM addresses are compared case-insensitively.
Single-wallet burst windows, rule version 1
From one catalogue pull: every record's last-call timestamp is floored to a 10-minute UTC boundary. For every window with at least 50 records TOLL computes the number of records, the number of distinct hosts, the largest share of records paying to one wallet, the share with exactly one unique payer, the median call count, and the span in seconds between the earliest and latest timestamp. A window passes when the top wallet share is at least 80%, the single-payer share is at least 80%, and the median call count is at most 5. Every candidate window is published with its measurements and its pass or fail; the thresholds are printed in the column headers. The candidate set moves with the trailing 30-day span of the last-call field, so the count of windows differs between snapshots under the same rule; each list states the snapshot it was computed from.
What the rule measures is a signature, not a motive. A seller smoke-testing a fresh deployment and a seller inflating its own metrics produce identical windows. The counters do not name the payer or record why a call was made. The Ledger reports the measurement and the rule version that produced it, and never states or implies intent. Named sellers have a right of reply through the public form, published unedited. Any change to a threshold, the window size or a measurement creates a new rule version and a changelog entry; lists produced under a prior version stay published under their stamp.
Single-payer endpoints
From the same snapshot: every listed endpoint whose counters show at least 100 calls in the trailing 30 days and exactly one unique payer. This is a reading of two published counters and involves no timing rule, so it is published on its own page, /ledger/single-payer, rather than under the burst windows: high volume from one payer is what a working integration looks like from outside, and listing it beside burst windows would misread it. An endpoint with two payers cannot be classified, because the split between them is not published. The counters do not name the payer or say whether it is related to the payee; that needs on-chain data. The page's share figure is the calls of qualifying endpoints over all calls counted at the snapshot.
Registry presence, delistings, and why presence is not liveness
A successful pull of a registry is an observation of everything it lists. An endpoint listed at the previous pull and absent from this one is recorded as delisted at this pull's timestamp: a raw delisting. The catalogue's page order drifts while it is being read, so a listing can miss one pull and reappear. A delisting is confirmed after 2 consecutive successful pulls without the endpoint (rule version 1), as its own event; reappearance is a relisting and restarts the count. Confirmed is the headline figure, raw is always beside it.
TOLL measures whether a registry lists an endpoint and nothing more. An endpoint absent from the Bazaar may have been withdrawn by its seller, failed the registry's own validation, or been restructured under another URL; the service behind it may be running untouched. No page on this site claims a service is dead. A delisted endpoint keeps its page, with its last observed state and the date it was first observed absent.
Validation state
Once a day TOLL calls Coinbase's validate endpoint for every listed endpoint that declares an HTTP method, sending that method. The verdict is read from the response body, never from its HTTP status, which is 200 even for hosts that do not exist. pass means the body says valid: true. fail means the endpoint was unreachable or did not return HTTP 402. malformed means it returned 402 but failed one or more required preflight checks. legacy_v1 means it returned 402 with the x402 v1 protocol. unknown_method means the listing declares no method, so validate is not called. unobserved means validate itself did not answer, on a timeout, a 5xx or an unparseable body; it says nothing about the endpoint and is excluded from every uptime figure. The named checks that failed are stored on every observation. Two checks, bazaar.info.output and bazaar.info.output.example, are advisory: validate reports them with severity “advisory” and an endpoint failing only those still passes. The full response body is kept on an endpoint's first observation and whenever its state changes.
Uptime
Over a window of 7, 30 or 90 days: the number of sweeps at which the endpoint was pass, divided by the number of sweeps that observed it (pass, fail, malformed or legacy_v1; unobserved excluded). Each page prints the counts beside the percentage. With one sweep a day the 7-day figure rests on at most seven observations.
Sweep throughput and coverage
The latest finished sweep, daily-2026-09-15, planned 15,523 endpoints and completed 15,708 between and , 203 minutes wall time, with 2 unobserved. Calls are paced to at most two per second with four in flight; validate itself takes two to three seconds per probe, so the observed rate is about 1.3 calls a second and a clean full sweep takes about three hours. Registry pulls so far: 56 succeeded, 2 failed (last: binance at ). Every pull, successful or not, is a row, so a gap in the series always has a stated cause.
Coverage
The index covers the Coinbase CDP discovery catalogue and the Binance B402 bazaar, deduplicated on canonical URL: scheme and host lowercased, trailing slashes removed, the fragment kept only for MCP tool listings. Endpoints outside those registries, and calls made through other facilitators, are invisible to every number here. The counters cover CDP-facilitated calls to listed resources only. “Endpoints listed now” counts endpoints present in at least one registry at the last pull; it is registry state, so it is marked live rather than pinnable wherever it appears.
Derived fields
Neither registry supplies a title, a listing date, a category, a human-readable price or a URL slug. TOLL derives all five and marks each as derived where it appears. First observed is TOLL's own first observation; observation began on 10 September 2026, and every listing that predates it shows that date. Title is the last two meaningful path segments. Category comes from keyword rules, version 1, matched on the path first and the full text second; the rules are in the repository and the “other” category is where nothing matched. Price is the declared smallest-unit amount converted with a table of verified asset decimals; where the asset is not in the table the raw amount is shown and the page says the decimals are unknown. Nothing is guessed. Amounts declared as decimals rather than integers, as some XRPL and other listings do, are shown as not declared.
A dash in a table cell or beside a reading means no value was observed, and never zero: a counter the registry did not publish, a sweep that did not reach the endpoint, a price TOLL cannot compute because the asset’s decimals are unverified. Zero is printed as 0 wherever zero was measured.
Payment options
Every accept in every registry record is stored as declared, with the registry it came from. Network identifiers are shown as declared, with pre-CAIP-2 names such as “base” mapped to their CAIP-2 form. The list of networks on the site is derived from this data, not maintained by hand. Since 12 September 2026 at 20:44 UTC every pull also appends the full accepts array of each endpoint whenever it differs from the previous pull's, so a change of price, payee or network is dated rather than overwritten. Where a listing names several networks, the network index counts how many listings name each pair; a number recurs there that TOLL has not explained. 851 listed endpoints declare almost every pair of the twelve largest networks, and the figure is the same for pairs that otherwise have nothing in common. One seller listing the same endpoints on every network it can would produce that signature, and so would other arrangements. It is recorded as an open question in the changelog, and nothing is stated about its cause until it has been looked into.
Similar endpoints
Up to five listed endpoints in the same category, nearest by declared price where both prices are comparable, then most called, at most one per payee wallet.
Rankings, the seller cap, and paged lists
Every ranking page caps any one payee wallet at three rows and prints how many rows it folded; the concentration page shows the distribution the cap hides. The index itself suppresses nothing: category, network and seller lists carry no cap, list every endpoint most called first with a fixed tiebreak, and are paged by path segment, 100 rows to a page, so every endpoint is reachable by links. Until 13 September 2026 the category and network tables carried the cap and stopped at 300 rows; the changelog records the change.
Declared input and output
The Bazaar extension's info block is copied from the registry record as stored at the last pull. TOLL does not rewrite or validate it.
Pinned views, and what pinnable means
Every Ledger page exists in a pinned form at <page>/at/<stamp>, where the stamp is a snapshot's UTC minute with hyphens for colons, for example /ledger/bursts/at/2026-09-12T15-30Z. The pinned page renders from the snapshot taken in that minute and nothing on it changes afterwards, which is what makes a figure quoted from it checkable later. A stamp between snapshots redirects to the latest snapshot at or before it, so every pinned URL in circulation is a snapshot's own. The validation page pins to the latest daily sweep finished at or before the stamp and names it. Pinned views are not indexed by search engines; the live page is canonical. Every timestamp tag on the site says which of four things its figure is: pinnable, read from an append-only table and stable under a pinned URL; pinned, the same figure on a pinned view; live, registry state at the last pull, which moves with the registries and is not part of any snapshot; or final, the last observation of a delisted endpoint, which no later snapshot will change. Endpoint pages pin too, at /e/<slug>/at/<stamp>: the counters from that snapshot, the payment options as last declared at or before it (from the accepts history, kept since 12 September 2026 at 20:44 UTC), and the validations and presence events up to it. The comparisons in the prose and the similar-endpoints block are live and are not part of the record, so a pinned endpoint view leaves them out. Pinned views hold only as long as the snapshots behind them exist: the quality table holds 412,444 rows across 28 snapshots as of this build, grows by about 14,500 rows every six hours, and TOLL commits to never deleting from it. The method page is not pinned; it is the permanent record and is dated through the changelog.
JSON, version 1, and reuse
Every Ledger page, the delistings, and every endpoint are available as JSON under https://tollindex.com/api/v1, free and without a key. Every body names the snapshot it was built from and the rule or method version that produced it; Ledger bodies take ?at=<stamp> and resolve it exactly as a pinned page does. The path is versioned from the first commit: a field's meaning never changes under /api/v1, and anything that would change one goes to a new version while the old one keeps serving. Responses are cached at the edge for six hours, the same cadence as the pages. The data is published under CC BY 4.0: reuse it, with attribution to TOLL and a link to the page cited. The registry records inside the endpoint bodies are the registries' own and are passed through untouched.
Comparison pages and how their facts are kept current
The pages under /vs/ set what another site publishes beside what TOLL publishes, row by row, in the other site’s own terms where possible and with no adjective. A fact about another site decays: every comparison page prints the date its facts were read, first and before the table, and lists the pages read. The rule is that each comparison is re-checked at least every 30 days; a page whose check is older than that says so above its table and asks the reader to treat every fact as possibly moved. A re-check moves the date even when nothing changed. A correction from anyone, the site compared included, goes through the public form and is published with its outcome, and the table is updated with a new check date. The Coinbase Bazaar is TOLL’s source and is not compared.
Changelog
Audit gap: seven tooling failures in one day, and what each was hiding
A stated convention: the dash that means no value, and why it stays
The site is arranged as a marketplace, and three faults that found
Audit gap: the verification script measured a server it had not started
Stacked tables keep their semantics, and their labels leave the stylesheet
Open question: the count of 851 across almost every network pair
The calls-to-payers correlation is carried by one endpoint
Audit gap: readings announced without their label, and its fix
Audit corrections and the figure check
Audit gap: the design detector was not running
Asset, cheapest and question pages; feed, data page, structured data
Comparison pages and the status page
Endpoint pages: the delisted state, pinned views, marks
Category and network lists uncapped and paged
Accepts history, pinned views, JSON version 1
Category rules and site launchrule v1
Burst rulerule v1
Delisting confirmation rulerule v1
Observation begins
The same entries, with site changes, are on the changelog page and in the feed.
Cite this page
This page is the permanent record and is dated through its changelog, so its live URL is the stable one. Data reuse is under CC BY 4.0 (terms).
Plain text
TOLL, "Method". https://tollindex.com/ledger/method. Accessed [access date].
BibTeX
@misc{toll-ledger-method-2026-09-15,
author = {TOLL},
title = {Method},
howpublished = {\url{https://tollindex.com/ledger/method}},
year = {2026},
month = {9},
note = {The permanent record, dated through its changelog. Accessed [access date].}
}