When you close a winning position, Parquet pays you from the pool’s free liquidity. Most of the time that’s instant and you never think about it. When the pool is briefly short, your unpaid amount becomes a deterministic place in line — not a haircut. This page explains how that works and what you can do with a pending claim.Documentation Index
Fetch the complete documentation index at: https://docs.parquet.exchange/llms.txt
Use this file to discover all available pages before exploring further.
The core mechanic
Every winning close is paid from:free_liquidity covers your payout, you’re paid in full and walk away. If it falls short, the unpaid portion is recorded as a PayoutQueueEntry PDA, indexed FIFO by idx. You pay roughly $0.30 of SOL rent to open the entry. That rent isn’t burned — it refunds to whoever later calls harvest and drains your entry. See Glossary: payout queue.
The queue is per-pool, not per-market. Free liquidity is a property of the whole USDC vault — so a queue entry opened during a quiet AAPL session can be drained by losing closes on TSLA or NVDA.
How the queue pays out
The pool replenishes itself from losing trades. When a losing position closes, the LPs’ gain doesn’t immediately re-enter the LP balance — it parks in aside_bucket. As long as side_bucket > 0, anyone can permissionlessly call:
side_bucket unlocks back into the LP balance.
| Actor | Action | Earns |
|---|---|---|
| Winning close (short pool) | Enqueues a PayoutQueueEntry | Pays ~$0.30 SOL rent |
| Losing close | Sends LP gain to side_bucket | — |
| Anyone | Calls harvest(max_entries) | Per-entry PDA rent refund |
shouldAttemptHarvest pre-flight gate skips submission when side_bucket < first_entry.amount, mirroring the on-chain harvest_payout_queue early-break so the chain doesn’t no-op and the keeper doesn’t burn lamports per stuck entry.
Your unpaid claim isn’t stuck
You don’t have to wait for harvest. APending queue entry can be spent in two ways while it’s still in line.
Open a new position drawing from the queue
In v4,open_position accepts a split:
phantom_unpaid_owed you hold before touching regular unpaid_owed. This lets you immediately redeploy a pending claim into a new market without idle time. See Glossary: phantom credit.
Drain phantom credit back to your wallet
If you’d rather exit,drain_phantom_credit sweeps your phantom balance to your USDC account.
Check your status
The indexer exposes a per-wallet view:PayoutQueueEntry PDAs and exposes harvest helpers.
For the LP-side mechanics — how the queue affects yield, the side_bucket, and queue-aware deposits/withdrawals — see LP payout queue.