> For the complete documentation index, see [llms.txt](https://doc.notliquid.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.notliquid.fun/inside-the-pool/quote-draw-and-queue.md).

# Quote, Draw & Queue

An acquisition has three moving parts: price the live pool, ask Pyth for a random word, then apply that word at the request's proper turn.

## Pool price

The pool component starts with expected backing:

```
EV = weightedBackingTotal / totalWeight
```

Because each weight is inverse to backing, this behaves like a harmonic mean. Lightly backed positions dominate the result because they also dominate the selection odds.

The acquisition fee is:

```
acquisition fee = EV × (1 + surcharge)
```

The current surcharge is **10%**.

The complete quote is:

```
acquisition fee + Pyth Entropy fee
```

The Entropy fee is dynamic. The app and `quoteAcquisitionPrice()` read the current amount instead of pretending yesterday's oracle bill is a law of nature.

## Request-time protection

An acquisition can include bounds on:

* the maximum acquisition fee;
* the minimum weighted pool value;
* the maximum negative price drift accepted during ordered processing.

PNL also snapshots the protocol's positive-drift limit, currently **10%**.

If the request is mined outside its submitted bounds, it reverts. If earlier requests later move the canonical pool beyond its settlement bounds, the acquisition fee becomes a refund credit rather than buying against an unexpected pool.

## Ordered randomness

PNL supports multiple acquisitions in flight and batches of up to **5** requests.

Each request receives an onchain sequence before Pyth randomness is requested. Pyth callbacks may arrive in any order, but they only cache words. Pool mutation follows the original sequence:

```
request 1 → request 2 → request 3
```

Request 3 cannot settle first because its callback was feeling punctual.

New deposits made during an unresolved window enter the staging queue. Each acquisition reserves its exact staged batch before requesting randomness, so later deposits and callback timing cannot reshape an earlier draw.

## Processing and timeouts

The current randomness deadline is **60 HyperEVM blocks**. A word delivered by the deadline is valid; after the deadline, the unresolved head request can expire and the queue can continue.

`processAcquisitions` is permissionless. PNL runs an independent keeper for routine processing, but the keeper does not:

* provide randomness;
* choose a position;
* reorder requests;
* receive custody of listed NFTs or backing.

It is automation, not a fourth economic participant.

## Refunds

The acquisition fee remains escrowed until ordered processing. It becomes a pull-based refund credit when:

* the pool is empty at that request's turn;
* price drift exceeds the request's bounds;
* the randomness request expires.

Transaction overpayment above the quoted total is returned immediately.

The Pyth Entropy fee is paid when randomness is requested and is not part of the acquisition-fee refund. Oracles also decline to work for exposure.


---

# 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://doc.notliquid.fun/inside-the-pool/quote-draw-and-queue.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.
