Books & categories
devnet preview — all data is replayEverything on Freeside trades against a book. The book is the product spec — nine fields that pin down exactly what is being sold — and every book clears at its own single price. The category name you see on the market pages is the display label; the book is the contract.
The nine fields
A book's identity is the hash of exactly these fields — change any one and you have a different market:
| model_id | which registered model (weights + tokenizer) the book sells inference for |
| region | the zone the capacity is served from |
| verification_policy_id | which verification regime fills must satisfy |
| payload_activation_policy | how a fill's payload becomes live — provider ack vs data-availability activation |
| delivery_policy | how delivery and acceptance are proven — user accept, delegated, public output, optimistic |
| lease_type | the market shape: one-shot, chat session, agent session, embedding burst, batch job |
| sla_tier_id | which listed SLA tier supplies every deadline a fill lives under |
| time_bucket | a time-window dimension of book identity — the same market can be listed as distinct time-scoped books |
| unit_profile_id | which unit profile converts tokens into capacity units — it defines the priced good |
The five lease types
The lease type is the market's shape. A one-shot purchase is just a one-fill lease — there is no separate order object. Reservation types add duration and concurrency to what you are buying, and carry a higher reservation floor — the guaranteed minimum the provider earns for holding capacity ready (example devnet values below; the floor fraction is a governed parameter per type):
| type | what it buys | example floor | on the venue |
|---|---|---|---|
| SINGLE_SHOT | one fill, one request — a normal API call | 10% | defined in spec · not yet offered on any book |
| EMBEDDING_BURST | a burst of embedding work under one reservation | 25% | defined in spec · not yet offered on any book |
| CHAT_SESSION | a reserved interactive session | 15% | defined in spec · not yet offered on any book |
| AGENT_SESSION | a reserved agent session — duration and concurrency | 20% | offered — the whole catalog |
| BATCH_JOB | a scheduled bulk job | 30% | defined in spec · not yet offered on any book |
The last column is the distinction that matters when you read any protocol documentation: the spec defines what the protocol can do; the catalog is what the venue currently sells. Every book listed today is an agent-session book. The other lease types are real, specified, and implemented in the state machine — they are simply not offered yet, and this page will say so until they are.
What a capacity unit is
Each book prices one scalar good — the capacity unit — and its unit profile defines the conversion from tokens. Input and output tokens are weighted independently, because generating a token costs more than reading one: the devnet profile weights output at 2× input, so usage = input_tokens + 2 × output_tokens. Weights are protocol parameters derived from measured costs, not provider claims — and honestly, one scalar per book is an acknowledged approximation of prefill-versus-decode reality; the weights exist to keep it a fair one.
How a book gets listed
Books are explicitly listed, but ordinary listing is permissionless and deterministic: any candidate book lists once enough distinct providers have posted sufficient bonded capacity that meets the minimums — no vote, no permission. Delisting is equally mechanical: a book whose health stays below thresholds for a grace period delists, without touching live leases or historical prints.
The narrow exception is the benchmark: index-source designation is deliberately restricted (one-shot spot books only) and bound to benchmark change-control, because the index is a public reference rate. A book being index-source only makes its prints candidates — each print must individually clear volume, participation, and concentration minimums, with every underlying fill's challenge window closed, before it feeds the benchmark.
Categories are labels; books are contracts
The category↔book mapping is not on chain yet. Display names like "open-70b · chat · us" follow the product grammar (model class · lease type · region), but today the mapping from a model name to a book lives in relay configuration. The governed on-chain mapping is planned; until it exists, treat the book key hash as the identity and the category as the label.
The three devnet books
| category | lease type | index | anchor price |
|---|---|---|---|
| open-70b · chat · us | CHAT_SESSION | NON_INDEX | $7.00 / M units |
| open-70b · agent · us | AGENT_SESSION | NON_INDEX | $3.00 / M units |
| open-70b · single · us | SINGLE_SHOT | INDEX_SOURCE | $7.00 / M units |
Only the one-shot book is an index source — consistent with the rule above. Its clearing prints carry the benchmark for the class.