> For the complete documentation index, see [llms.txt](https://plimsoll-protocol.gitbook.io/plimsoll-protocol-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://plimsoll-protocol.gitbook.io/plimsoll-protocol-docs/guides/mainnet-watch.md).

# Mainnet watch

The [Mainnet watch](https://plimsoll-app-gths-amber.vercel.app/mainnet/) page runs the supply half of Plimsoll against real assets on Stellar mainnet, live, in your browser. It needs no contracts and no indexer: it reads mainnet Horizon directly and counts supply with the same rule the indexer posts on-chain (both implementations are tested against the same fixture).

## What it shows for each asset

| Field                          | Source                                                                                                      |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| Circulating supply and holders | Horizon `/assets` for the exact code and issuer                                                             |
| Where the supply sits          | The same six buckets: trustlines (3 auth states), liquidity pools, Soroban contracts, claimable balances    |
| Issuer controls                | Issuer account flags: clawback, revocable, auth required, immutable                                         |
| stellar.toml                   | Fetched from the issuer's `home_domain`; "Confirms this issuer" only if it lists this exact code and issuer |
| Reserve attestation link       | SEP-1 `attestation_of_reserve`, when the issuer publishes one                                               |
| On-chain reserve report        | None yet: the coverage ledger runs on testnet                                                               |

## What it found (5 October 2026)

| Asset  | Issuer             | Circulating | In Soroban contracts | stellar.toml                                                         |
| ------ | ------------------ | ----------- | -------------------- | -------------------------------------------------------------------- |
| USDC   | Circle             | 353.6M      | 21.5%                | home domain `circle.com` returns 404 for `/.well-known/stellar.toml` |
| EURC   | Circle             | 4.2M        | 16.7%                | same as USDC                                                         |
| PYUSD  | Paxos              | 12.4M       | 70.9%                | served, but blocks automated and some regional requests              |
| USDGLO | Glo Dollar         | 253K        | 88.9%                | confirms the issuer; links an attestation at brale.xyz               |
| BENJI  | Franklin Templeton | 522.7M      | 0%                   | served, but blocks automated and some regional requests              |

Two things stand out:

* **Reserve evidence is not machine-readable.** Of five major issued assets, one publishes an `attestation_of_reserve` link in its stellar.toml, and none has a signed figure a contract can read.
* **A lot of supply now sits in contracts.** Between 17% and 89% of four of these assets is held by Soroban contracts, which is exactly where an `is_covered` check is useful.

## Why some issuers are listed and others are not

Many asset codes on Stellar have look-alike tokens from other issuers. On 5 October 2026 a "USDC" from an unrelated account claimed about 169 trillion units and a look-alike "PYUSD" about 15 billion. The page lists each asset by the issuer account that holds nearly all real holders, and checks that issuer's own stellar.toml live. It is the same problem the coverage ledger's `list_asset` solves on-chain by reading `CODE:ISSUER` from the Stellar Asset Contract.

## Reading the numbers yourself

```ts
import { fetchAssetRecord, supplyFromRecord, formatUnits } from "@plimsoll/sdk";

const r = await fetchAssetRecord(
  "https://horizon.stellar.org",
  "USDC",
  "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
);
console.log(formatUnits(supplyFromRecord(r!).total, 7, 0)); // e.g. "353,623,052"
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://plimsoll-protocol.gitbook.io/plimsoll-protocol-docs/guides/mainnet-watch.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
