> For the complete documentation index, see [llms.txt](https://docs.metric.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.metric.xyz/how-pools-work/anchored-pricing.md).

# Anchored standard

The **Anchored standard** is how Metric protects LPs in public pools, even from a malicious pool curator. It combines two parts:

* **Anchored pricing** keeps every quote within limits set by an independent oracle.
* The **StopLoss** extension limits how fast a bin can lose value.

Pools that meet it can qualify for 🟢 Best Practices or 🟡 Neutral; see [Pool tiers](/use-metric/provide-and-manage-liquidity/pool-tiers.md).

## How it protects

Anchoring limits how far a pool's quotes can differ from a trusted source. That limits the loss a single misquoted transaction can cause.

To keep losses from adding up too fast, the Anchored standard includes the **StopLoss** extension, which limits LP losses per bin per day. StopLoss values one LP share of each bin in the pool's tokens, not in USD, using the Price Provider's bid and ask, and compares that with the highest value it has recorded. In an anchored pool the oracle bounds that bid and ask, so an curator can't hide a loss from StopLoss.

Even with a malicious pool curator, StopLoss slows losses enough that LPs have time to react and withdraw, provided everything is initialized correctly.

StopLoss rejects trades. It doesn't sell positions or cap all losses, and it protects only when attached and initialized. See [Extensions](/how-pools-work/extensions-and-permissions.md).

## Anchored pricing

An Anchored Price Provider (APP) takes its reference price from independent Chainlink or Pyth data and uses it to constrain bid and ask. For a tokenized stock with an issuer multiplier, the reference comes from the [Multiplier Oracle](/how-pools-work/oracles.md#multiplier-oracle-tokenized-stocks): the Pyth share price scaled by that multiplier.

It sets a maximum bid and a minimum ask. The provider can quote a bid lower or an ask higher, but cannot cross those limits. The pool's own [skew check](/how-pools-work/price-providers.md#three-pricing-inputs) still applies, so widening only one side too far reverts.

### Two ways to use it

* **Custom source:** a strategy supplies candidate bid/ask quotes and its own reference price, which must sit between them or the provider halts; the anchored provider applies the reference derived limits.
* **Source of truth:** bid and ask are derived from the oracle feed itself: the oracle's own reported uncertainty, scaled by a configured multiplier, plus a fixed minimum margin.

In both cases, the reference price comes from the anchor feed, not the custom strategy.

An APP can also derive a cross-pair reference from two feeds in the same oracle: **gold/USD ÷ EUR/USD = gold/EUR**. A separate gold/EUR feed is not required.

If its feed stops updating, an anchored pool keeps trading on the last price until that price is older than the provider's staleness limit, then stops. The limit is set per provider and can be up to 7 days; 🟢 pools must use 15 seconds or less. For tokenized stocks and other assets whose market closes, a Chainlink market-closed update stops the pool as soon as it lands. The pool resumes when the feed resumes.

### Custom source flexibility

With a custom source, the provider's owner can change the pricing logic at any time without delay. That doesn't change the feed the pool is anchored to or its Price Provider. This is a strength of the APP: any market maker's pricing logic works, as long as it is anchored.

### Example

Suppose the reference is $100, with a buying limit of $99 and a selling limit of $101.

| Custom strategy proposes       | Anchored buying quote | Anchored selling quote |
| ------------------------------ | --------------------- | ---------------------- |
| Buy at $99.50; sell at $100.50 | $99                   | $101                   |
| Buy at $95; sell at $105       | $95                   | $105                   |

These are illustrative limits, not default settings. For execution pricing, see [Liquidity and bins](/how-pools-work/liquidity-and-bins.md#execution-price).

## Limits of protection

The Anchored standard limits losses; it doesn't prevent them, and LPs in an anchored pool can still lose capital.

Anchoring does not guarantee competitive quotes or an accurate, up-to-date reference. The anchor feed can lag or drift from the fair market price.

The protection depends on the correct feed, its freshness and the provider's configuration. Anchoring does not replace [pool safeguards](/use-metric/provide-and-manage-liquidity/risks-and-safeguards.md) or control over [extension permissions](/how-pools-work/extensions-and-permissions.md).
