Method

Method and limits

Assay records what asset issuers and attestors (independent checkers) say about their reserves, when they said it, and where. It does not judge issuers. This page explains what we check and where the checks stop.

First census: 12 October 2026, Stellar mainnet ledgers 64,905,745 to 64,906,749. Changes to this method are listed at the end of this page with their dates.

What we check

For every asset on Stellar whose issuer has set a home domain, the indexer:

  1. Reads the issuer’s stellar.toml file, published under the SEP-1 standard, and finds the entry for that asset by its code and issuer.
  2. Records what the issuer says about the asset: whether it is anchored (backed by something off the blockchain), what it is anchored to, and its optional attestation_of_reserve link to evidence of reserves.
  3. Follows that link once and records what happened: the HTTP status, the kind of document, its size, and a SHA-256 fingerprint of what we received.
  4. Records a report’s date and figures only when the report states them in a machine-readable form, or when a person has transcribed them from the report (labelled “manually transcribed”).

Every figure on the board shows the ledger and time it was computed at, and a link to its source.

Which assets the board shows

Any issuer can write is_asset_anchored = true in its own file. In our first census, 23,162 assets did. Most of them are tokens with a handful of holders, many on domains that resemble institutions they are not part of.

So the board shows assets that claim backing (declared anchored, or publishing a reserve link) and meet one of these:

In the first census, 270 assets met this rule. The full list of every self-declared anchored asset is in the indexer’s weekly census releases. We show every issuer’s domain exactly as the ledger records it.

Statuses

Each asset has one neutral status. None of them is a grade.

On the board Code Meaning
No reserve link NO_REPORT_LINK The stellar.toml has no attestation_of_reserve link. The field is optional, so this is a fact, not a fault.
Link did not load LINK_BROKEN A link is published, but it did not return a document when we checked. The asset page says why, in plain words.
Report to read UNSTRUCTURED_REPORT The link returns a document (a web page or PDF) that a person has to read.
Machine-readable report STRUCTURED_REPORT The link returns a reserve report in Assay’s draft format that we can check automatically.

When a link does not load, the asset page records why: the server refused automated requests (HTTP 403), the page was not found, the domain did not resolve, the request timed out, the link redirects in a loop, or the security certificate was not accepted. A link that did not load for us may load in a browser, and some sites block automated requests. We check each link once per census and show when.

Report age

Report age is the number of days between the date a report states and the time we checked it. It comes only from a date written in a machine-readable report or transcribed by hand from the report. A PDF’s own file date is shown as a “document date” but never used as the report’s age, and web server headers are never used. The board counts reports under 35 days old as recent: a monthly reporting cycle plus five days. Protocols using the guard set their own limit.

Coverage

Coverage is the reserves a report states, divided by the liabilities it states. We compute it only when the two are in the same unit, or when the liabilities are in the token itself and the issuer’s stellar.toml says the token is anchored to the currency the reserves are in. Otherwise coverage is unknown, and the asset page says why. We never estimate a missing number and never convert between currencies.

The balance on the home page will show aggregate coverage once there are figures to aggregate: total stated reserves divided by total stated liabilities, across only the assets with a stated figure. It is value-weighted, so one large asset can move it a long way, and the caption always says how many assets it includes.

Supply

We compute each asset’s supply from Stellar’s Horizon API, but we do not publish it yet. For assets held in smart contracts, our figure and an independent source (stellar.expert) disagree, in both directions, by up to 0.4%. For assets with no contract holdings they agree exactly. We will publish supply once a third, independent count settles the difference.

Manual transcriptions

Some reports are PDFs or web pages. Where we copy a figure from one by hand, the board labels it “manually transcribed” and links to the page it came from, with the date and the person who transcribed it.

Limits

Corrections

Every asset page has a correction link. Issuers and anyone else can tell us when an entry is wrong; we fix it and log the correction publicly with its date. You can also open a correction directly.

Changes to this method

Not an audit and not investment advice. Figures are as stated by issuers or attestors, with the source and the time we checked.