> For the complete documentation index, see [llms.txt](https://docs.paragon.trade/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paragon.trade/trading/bounds-and-anchors.md).

# Bounds & Anchors

Paragon markets support continuous price discovery, including during weekends, holidays, and other periods when the relevant external markets are closed. During those periods, traders may continue to express views on the fair price of the referenced asset even though no live external-market price is available.

Bounds constrain mark-price movement to a defined range around a reference price. The mechanism is intended to support orderly extended-hours price discovery by limiting how far the market can move at any one time while still allowing the permitted range to shift as trading develops.

If a position’s liquidation price falls outside the active Bounds, the position cannot be liquidated while those bounds remain in effect.

## Mechanics

### Static Bounds

Bounds constrain the mark price to a range of:

$$
\pm \left(\frac{1}{\text{maximum leverage}}\right)
$$

around the applicable reference price during internal pricing sessions - that is, when there is no active external trading session.

For example, a market with maximum leverage of `5x` has a static Bound of `±20%`.

The initial reference price is generally the last externally derived oracle price. For an asset that follows weekday market hours, this may be the final external price published before the weekend.

For an equity perpetual in **Pre-Listing** status, where no qualifying external public-equity price is yet available, the initial reference price is the market-specific value established by Paragon.

### Re-Anchoring

A market may be configured to re-anchor its Bounds when the oracle price approaches the edge of the active range.

Re-anchoring occurs when the oracle price reaches the applicable trigger threshold. For example, if the oracle threshold is `90%`, an upward re-anchor is triggered when the oracle reaches 90% of the distance between the current reference price and the upper bound.

When a trigger is reached:

1. The reference price moves to the applicable upper or lower bound;
2. A new static range is calculated around that reference price; and
3. The reset counter for the relevant direction increases by one.

This ratcheting process allows price discovery to continue beyond the initial range during an extended period without external pricing. The market therefore does not remain permanently fixed at the first upper or lower limit.

Each market has a configured number of permitted upward and downward re-anchors, referred to as **resets**. The two counters operate independently.

Each time a new reference price, bound, and trigger are calculated in one direction, the corresponding reset counter increases by one. After the permitted number of resets in that direction has been used, the outer edge of the resulting range becomes a hard cap until external pricing resumes.

Once external pricing resumes:

* The reference price returns to the live externally derived price; and
* Both reset counters return to zero.

The number of resets is set separately for each market and is identified in the applicable [Contract Specifications](/resources/specifications.md#market-specifications). A market configured with zero resets maintains a static range around the last external reference price.

### Trigger Formulas

```
upper_trigger = reference_price × (1 + discovery_bound × oracle_threshold)
```

```
lower_trigger = reference_price × (1 - discovery_bound × oracle_threshold)
```

## Historical Example: UNITREE Pre-Listing Bounds

UNITREE is now a **Listed** market and uses its live external equity price as the reference during the Shanghai trading session. The example below preserves the pre-listing bounds configuration that applied before public trading began; it is not UNITREE's current configuration.

| Parameter                             |                              Value |
| ------------------------------------- | ---------------------------------: |
| Bound                                 | ±10% based on 10x maximum leverage |
| Oracle Threshold                      |                                90% |
| Permitted re-anchors                  |                   10 per direction |
| Initial reference price set at launch |                             $68.80 |

### Upward Path

| Level         | Reference Price | Lower Bound | Upper Bound | Tradable Range | Upper Trigger | Lower Trigger |
| ------------- | --------------: | ----------: | ----------: | -------------- | ------------: | ------------: |
| 0             |           68.80 |       61.92 |       75.68 | 61.92–75.68    |         74.99 |         62.61 |
| 1             |           75.68 |       68.11 |       83.25 | 68.11–83.25    |         82.49 |         68.87 |
| 2             |           83.25 |       74.92 |       91.57 | 74.92–91.57    |         90.74 |         75.76 |
| …             |               … |           … |           … | …              |             … |             … |
| 9             |          162.23 |      146.00 |      178.45 | 146.00–178.45  |        176.83 |        147.63 |
| 10 — hard cap |          178.45 |      160.60 |      196.29 | 160.60–196.29  |           N/A |           N/A |

Levels 3–8 continue the same ratchet and are omitted for brevity; each reference is the previous upper bound.

The maximum upward price from the original reference was:

$$
\text{Maximum price from origin} = 68.80 \times 1.10^{11} \approx 196.29 \quad (+185.31%)
$$

### Downward Path

| Level         | Reference Price | Lower Bound | Upper Bound | Tradable Range | Upper Trigger | Lower Trigger |
| ------------- | --------------: | ----------: | ----------: | -------------- | ------------: | ------------: |
| 0             |           68.80 |       61.92 |       75.68 | 61.92–75.68    |         74.99 |         62.61 |
| 1             |           61.92 |       55.73 |       68.11 | 55.73–68.11    |         67.49 |         56.35 |
| 2             |           55.73 |       50.16 |       61.30 | 50.16–61.30    |         60.74 |         50.71 |
| …             |               … |           … |           … | …              |             … |             … |
| 9             |           26.65 |       23.99 |       29.32 | 23.99–29.32    |         29.05 |         24.26 |
| 10 — hard cap |           23.99 |       21.59 |       26.39 | 21.59–26.39    |           N/A |           N/A |

Levels 3–8 continue the same ratchet and are omitted for brevity; each reference is the previous lower bound.

The maximum downward price from the original reference was:

$$
\text{Maximum price below origin} = 68.80 \times 0.90^{11} \approx 21.59 \quad (-68.62%)
$$

### Reversal

Bounds operate in both directions.

If the oracle price reverses and reaches the lower trigger, the reference price re-anchors downward under the same methodology. Upward and downward reset counters are independent, so an upward re-anchor does not reduce the number of downward resets available.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.paragon.trade/trading/bounds-and-anchors.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
