# Phoenix knowledge base

Practical knowledge about Phoenix perpetuals on Solana: public reads, exact ticks/lots, trader identity, delegation, order/cancel outcomes, margin, and experimental signing. This material does not describe the Phoenix web framework or the older spot-market program.

Freshness: public metadata and documentation checked through 2026-10-03; evaluated SDK surface is Rise 0.5.28 with `@solana/kit` 4.0.0. Dated live/simulation observations appear separately. There are no individual wallet/account records, strategies, or workload tuning values.

Annotations distinguish **observed / verified** (dated limited evidence), **according to documentation / public source** (not necessarily live-tested), **implementation safeguard** (client mechanism), and **experimental / not verified** (unresolved behavior). New upstream functionality is not automatically implemented in the toolkit.

## Files

| File | Covers | Open when |
|---|---|---|
| [api-and-reads.md](api-and-reads.md) | Public REST, exact state/view parsing, slots and stable reads | Reading account or market state |
| [markets-and-numbers.md](markets-and-numbers.md) | Tick/lot formula, statuses, isolated-only, RWA bands | Quantizing or checking market eligibility |
| [orders.md](orders.md) | Packets, exact identities, fills, cancel evidence, unknowns | Interpreting a transaction |
| [account-and-delegation.md](account-and-delegation.md) | Base58, headers, capabilities, binding, key risk | Checking ownership or delegation |
| [margin.md](margin.md) | Equity/free margin, mark-valued reserve, fees | Evaluating margin evidence |
| [signing-and-sidecar.md](signing-and-sidecar.md) | Dependencies, one-signature intents, journal, unsigned delegation | Working with the experimental signer |
| [rate-limits-and-costs.md](rate-limits-and-costs.md) | Packet/CU ceilings, fees, REST/RPC pacing | Budgeting resources |
| [ops.md](ops.md) | Startup/recovery sequence, diagnostics, verification | Validating or recovering |
| [pitfalls.md](pitfalls.md) | Dated traps and unresolved mechanics | Reviewing changes |

## Quick answers

**Which identity goes to which read?** State uses owner authority and PDA index; trader view uses the trader PDA. → [api-and-reads.md](api-and-reads.md) §1

**What is a price tick?** `tickSize × 10^(baseLotsDecimals - 6)` dollars per unit. → [markets-and-numbers.md](markets-and-numbers.md) §1

**Can base-lot decimals be negative?** Yes; -2 means a 100-unit lot. → [markets-and-numbers.md](markets-and-numbers.md) §1

**Why are bid IDs rounded?** They are u64 values at least `2^63`; JS numbers cannot preserve them. → [orders.md](orders.md) §2

**Does confirmed mean filled?** No. Parse return data, posted lots, rejection events, and slot-qualified delta. → [orders.md](orders.md) §3

**Does cancel success mean removal?** No. Cold/no-found operations can be no-ops. → [orders.md](orders.md) §5

**Will resting reduce-only shrink?** It did not in the observed book. Matching after flat exposure remains unverified. → [orders.md](orders.md) §4

**What is the book ceiling?** 64 limit orders per trader, market, and side according to evaluated SDK source. → [orders.md](orders.md) §5

**What price reserves resting margin?** Mark valuation, with tiers and risk factors; the simple limit-price estimate is insufficient. → [margin.md](margin.md) §2

**Is after-hours closed?** It can trade inside a fresh static execution band; stop using cached bands at transition. → [markets-and-numbers.md](markets-and-numbers.md) §3

**Can a timeout be retried by re-signing?** No. Retain one signature and resolve/rebroadcast the same bytes. → [signing-and-sidecar.md](signing-and-sidecar.md) §3

**Is isolated trading included?** Metadata and state decode are included; child-account orchestration is not. → [markets-and-numbers.md](markets-and-numbers.md) §2

## Open questions (summary)

- Resting reduce-only after flat, post-only reduce-only/market acceptance, capacity rejection envelope, and cancel-batch CU. → [orders.md](orders.md)
- Band-edge inclusivity and clamped IoC behavior. → [markets-and-numbers.md](markets-and-numbers.md)
- Idle snapshot-slot meaning and replica lag. → [api-and-reads.md](api-and-reads.md)
- SwapNative key-risk feasibility, delegate operations for isolated children, and delegation overwrite causes. → [account-and-delegation.md](account-and-delegation.md)
- Full margin/risk-cancellation semantics and current RPC/REST quotas. → [margin.md](margin.md), [rate-limits-and-costs.md](rate-limits-and-costs.md)
- The packaged signer and unsigned delegation builder are experimental and require current-chain validation. → [signing-and-sidecar.md](signing-and-sidecar.md)

## Code

The `packages/phoenix-kit` package (`@markpaper/phoenix-kit`, Apache-2.0) implements numbers, addresses, markets, REST/account reads, exact IDs, pending memory, order-result helpers, on-chain layouts, binding, margin classification, and pure operational checks. The signer and unsigned delegation builder are separate experimental entries. Application strategy and account-specific tuning are excluded.

## Disclaimer

This is not financial advice or a recommendation to trade. Current APIs, program deployments, eligibility, fee schedules, and market rules can change. Offline tests and unsigned simulation do not authorize live transactions or prove all current-chain behavior.

## Sources and license

Official sources: [Phoenix documentation](https://docs.phoenix.trade), `https://perp-api.phoenix.trade`, [Rise public source](https://github.com/Ellipsis-Labs/rise-public), and [Solana documentation](https://solana.com/docs). Topic files identify the relevant route and proof class.

The knowledge base and `phoenix` skill are **CC BY 4.0**. Publication or adaptation requires attribution, a link to the original and license, and indication of changes. See [LICENSE.md](LICENSE.md).

<!-- license-footer -->
_© markpaper authors. Licensed under [CC BY 4.0](LICENSE.md): when publishing or adapting this material, credit “markpaper — Phoenix knowledge base” and link to the original and the license._
