Model Store + Model Library
Miners train the models. The store is where you talk to them. Chat like Claude, publish a custom assistant like the GPTs on ChatGPT, and pay LIQUA per token under a hard spend cap. Every reply comes with a receipt. coming
Where this stands today
testnet · unaudited · experimental. Nothing on this page takes LIQUA. No catalog is open, no assistant is published, no model can be rented, and which models power store chat at launch is announced before mainnet. Every feature below is coming with two exceptions, and both are marked where they appear: saved models already load with every byte checked, and the sorting hat that decides what a mined model is for already runs and already refuses to guess.
Two halves, one counter
The model library is the shelf. Every model saved on the Liqua chain sits there with a measured score beside its per-token LIQUA price. The model store is the arcade floor on top of it: the chat app, the assistants, the search bar, the leaderboards. Same meter, same wallet underneath.
Chat like Claude
The chat half should feel familiar from the first minute.
- Threads. Every conversation keeps its own history, and that history stays on your side.
- Streaming. Replies land token by token, so you see the thinking arrive.
- Stop, regenerate, edit and resend. Cut a reply off, reroll it, or fix your prompt and go again.
- Files. Drop attachments into a thread.
- Live LIQUA meter. The cost shows before you hit send, and ticks while the reply streams.
- Spend cap. The session cannot charge one token past the limit you set.
It is planned to open three ways: as a store page, inside the L8 OS, and from both wallets.
Build an assistant like the GPTs
An assistant is a library model plus your setup. Wrap a prompt, name it, ship it.
| Builder field | What you set | Good to know |
|---|---|---|
| Name, icon, description | how it shows up in the store | your sticker on the shelf |
| Instructions | the personality and rules it follows | not secret. A user can coax them out by asking |
| Conversation starters | tap-to-send openers for new users | the fastest way to show what it is for |
| Knowledge files | reference docs it can draw on | also not secret. Never upload anything private |
| Capabilities | tools it is allowed to use | only ones that really exist get listed |
| Visibility | public · unlisted · private | public assistants get report and review |
| Model | which library model it runs on | pinned per version. See receipts below |
Versions never get swapped under you
Edit an assistant and it publishes a new version. The old one never changes silently. Every receipt names the exact assistant version and model root that answered, so nobody can quietly trade a paid assistant's brain for a cheaper one.
The store floor
Browse it like a game shop.
- Categories and search to find the right helper fast.
- Featured and trending shelves, plus creator pages with everything a builder has shipped.
- Usage counts computed from settled receipts, never from a counter someone can spam.
- Ratings only from real usage. A wallet can review an assistant once it has a settled receipt for it. No farmed stars.
The model library
Every model the Liqua chain has saved gets a listing. Each one shows:
listing
model root the on-chain manifest it loads from every byte verified on load
price in LIQUA per input token
price out LIQUA per output token
score verifier-measured eval never a number the lister typed
lineage which saved version it grew from
served total tokens it has answered with
The loading part already works on the testnet. Saved models load with every byte checked, so a listing cannot point at a model that is not really there. That part is live now. The catalog, prices and meter on top of it are coming.
The sorting hat: what a model is for
Mining produces a model. Nothing it produces says what the model is good for. A checkpoint
records its shape, its tokenizer and its losses, and not the recipe it was trained under. A saved mind records a
recipe string, but that string is the training protocol — it says how the model was trained, not what it
is useful for. So the for field on a listing has to be measured, or it is the lister's guess wearing a
label. coming
The sorting hat measures it, and it runs today. What is live is the sorting and the verdict ledger under it — nothing else. It does not price a model, it does not rent one, and no LIQUA moves anywhere on this page.
| What is measured | How | What it can decide |
|---|---|---|
| Held-out prediction | Cross-entropy on whole files held out of every recipe's real corpus, against a count model fitted on the rest | reads the weights · can award a purpose |
| What it generates | Sampled from a fixed prompt with a fixed seed, checked against that purpose's grammar | reads the weights · can award a purpose |
| Its tokenizer | Which strings became single tokens — a fingerprint of the corpus it was trained on | can only rule a purpose out. A tokenizer can be copied onto any weights, so it proves nothing about the model |
| Against an untrained twin | The same architecture and the same tokenizer with zero training. Every score above is the difference from it | the architecture and the tokenizer are free; only the weights are earned |
It refuses more often than it decides
A purpose is only awarded when both weight-reading strands rank it first, it leads the runner-up by a margin, it clears a floor, and the model can be told apart from its untrained twin at all. Miss any of those and the verdict is unsorted, with the reason recorded — never a best guess. An unsorted model gets no listing, because a model without a measured purpose has nothing to rent.
Every verdict is appended to a hash-chained ledger with the evidence behind it, so a listing can always be traced back to why it was sorted that way, and a later re-sort can be compared with the one before it — including whether it moved because the model changed or because the corpus under it did.
Run it yourself: node os/model/sorting-hat.cjs --all ·
node os/model/hat-ledger.cjs · node os/model/test-sorting-hat.cjs
Sorted models on this machine
These are produced by os/model/sorting-hat.cjs from the checkpoints and
on-chain minds on this machine, written into the page by os/model/hat-listing.cjs.
3 of 9 models reached a purpose. The rest are shown
below them with the reason they did not, because a model quietly missing from a shelf is
worse than one that says why it is not for sale.
hat-spec-art Art · vector
Every SVG path in your HTML — your own icons and drawings. Sorted by measurement, not by the lister: combined score 0.64, ahead of markup by 0.47, with no strand dissenting and both weight-reading strands (predictive + generative) ranking it first.
| Listing | Value |
|---|---|
| for | Art · vector art |
| model id | 9d471beec92250c3bd171fb8… sha256 of cfg + weights |
| size | 384,864 parameters · dim 96 · 3 layers · context 128 · vocab 384 |
| trained at all | beats its own untrained control by 41.99% at best, on the art holdout |
| held-out prediction | loss 3.447 over 24×48 tokens from 15 held-out files · 42.0% below its own untrained control 5.942 · 27.8% below the order-0 reference 4.775 · order-1 reference 3.224 (still behind a bigram here) · this corpus probably overlaps the training set, so for the model’s own purpose this leans toward memorisation |
| what it generates | 0 numbered path commands · 15 coordinates · 0 svg element/attribute tokens → 1.000, against the same check on its untrained control 0.000 (0 numbered path commands · 0 coordinates · 0 svg element/attribute tokens); scored on the gap, so anything the vocabulary alone produces counts for nothing |
| corpus fingerprint (context only, never scored) | context only, not scored — 5/12 markers are learned tokens: "fill=" "stroke" "svg" "0 0" ".5". A tokenizer is the trainer’s choice of corpus, not the model’s ability. |
| lineage | no recorded parent — trained from a fresh initialisation |
| sorted by | sorting-hat/2 · ledger entry fbeb5d4b8ccdead9… (#20) |
Rental terms
| Term | Value |
|---|---|
pricePerInputToken | undecided |
pricePerOutputToken | undecided |
creatorShare | undecided |
treasuryShare | undecided |
stakingDiscount | undecided |
currency | LIQUA |
settlement | prepaid escrow · spend cap · one settlement per session coming |
decidedBy | governance vote, not yet held |
Written by hand in recipes.cjs about the art recipe in general. The sorting hat measured none of this and it is not a claim about this model: “SVG path data is a formal grammar with numbers in it, which is exactly the kind of thing a small model learns properly. It generates new paths that parse, close, and look like the family of shapes it was trained on. This is genuine generative art — the model is inventing the curve, not recombining stored ones — and it is the recipe on this list with the best ratio of size to result.”
l8-art Art · vector
Every SVG path in your HTML — your own icons and drawings. Sorted by measurement, not by the lister: combined score 0.44, ahead of prose by 0.38, with no strand dissenting and both weight-reading strands (predictive + generative) ranking it first.
| Listing | Value |
|---|---|
| for | Art · vector art |
| model id | c3f2a346c2c57a123a2179b2… sha256 of cfg + weights |
| size | 384,864 parameters · dim 96 · 3 layers · context 128 · vocab 384 |
| trained at all | beats its own untrained control by 28.11% at best, on the art holdout |
| held-out prediction | loss 4.279 over 24×48 tokens from 15 held-out files · 28.1% below its own untrained control 5.952 · 9.7% below the order-0 reference 4.737 · order-1 reference 3.226 (still behind a bigram here) · this corpus probably overlaps the training set, so for the model’s own purpose this leans toward memorisation |
| what it generates | 0 numbered path commands · 8 coordinates · 0 svg element/attribute tokens → 0.800, against the same check on its untrained control 0.100 (0 numbered path commands · 1 coordinates · 0 svg element/attribute tokens); scored on the gap, so anything the vocabulary alone produces counts for nothing |
| corpus fingerprint (context only, never scored) | context only, not scored — 5/12 markers are learned tokens: "fill=" "stroke" "svg" "0 0" ".5". A tokenizer is the trainer’s choice of corpus, not the model’s ability. |
| lineage | no recorded parent — trained from a fresh initialisation |
| sorted by | sorting-hat/2 · ledger entry 3b4bd219f84116fe… (#21) |
Rental terms
| Term | Value |
|---|---|
pricePerInputToken | undecided |
pricePerOutputToken | undecided |
creatorShare | undecided |
treasuryShare | undecided |
stakingDiscount | undecided |
currency | LIQUA |
settlement | prepaid escrow · spend cap · one settlement per session coming |
decidedBy | governance vote, not yet held |
Written by hand in recipes.cjs about the art recipe in general. The sorting hat measured none of this and it is not a claim about this model: “SVG path data is a formal grammar with numbers in it, which is exactly the kind of thing a small model learns properly. It generates new paths that parse, close, and look like the family of shapes it was trained on. This is genuine generative art — the model is inventing the curve, not recombining stored ones — and it is the recipe on this list with the best ratio of size to result.”
hat-spec-style CSS
Every stylesheet and <style> block you have written. Sorted by measurement, not by the lister: combined score 0.56, ahead of config by 0.40, with no strand dissenting and both weight-reading strands (predictive + generative) ranking it first.
| Listing | Value |
|---|---|
| for | CSS style |
| model id | 9a99b1a7d4ffa8cd0431d67f… sha256 of cfg + weights |
| size | 387,936 parameters · dim 96 · 3 layers · context 96 · vocab 448 |
| trained at all | beats its own untrained control by 47.91% at best, on the style holdout |
| held-out prediction | loss 3.182 over 24×48 tokens from 2 held-out files · 47.9% below its own untrained control 6.110 · 36.4% below the order-0 reference 5.006 · order-1 reference 3.650 (ahead of a bigram here) · this corpus probably overlaps the training set, so for the model’s own purpose this leans toward memorisation |
| what it generates | 4 closed declarations · 3 unit values · brace balance 0.50 → 0.750, against the same check on its untrained control 0.000 (0 closed declarations · 0 unit values · brace balance 0.00); scored on the gap, so anything the vocabulary alone produces counts for nothing |
| corpus fingerprint (context only, never scored) | context only, not scored — 9/12 markers are learned tokens: "px" "rgba" "--" "margin" "padding" "color:". A tokenizer is the trainer’s choice of corpus, not the model’s ability. |
| lineage | no recorded parent — trained from a fresh initialisation |
| sorted by | sorting-hat/2 · ledger entry 802b61c6f093caeb… (#26) |
Rental terms
| Term | Value |
|---|---|
pricePerInputToken | undecided |
pricePerOutputToken | undecided |
creatorShare | undecided |
treasuryShare | undecided |
stakingDiscount | undecided |
currency | LIQUA |
settlement | prepaid escrow · spend cap · one settlement per session coming |
decidedBy | governance vote, not yet held |
Written by hand in recipes.cjs about the style recipe in general. The sorting hat measured none of this and it is not a claim about this model: “CSS is a grammar of selectors and declarations, and the model learns it cleanly — valid properties, plausible values, your spacing scale and your colour habits. It will invent rules that are syntactically real. Whether they look good is your call.”
Unsorted — no listing produced
Pay per token
No subscriptions. You pay for the tokens you used, and you can check the math.
1 · prepay LIQUA goes into escrow for the session
2 · cap you set the spend cap nothing charged beyond what's escrowed
3 · meter the host counts tokens in + out signs a usage receipt per request
4 · settle one transaction per session charged once · recorded · leftovers refunded
5 · replay anyone re-runs a receipt same root + prompt + seed = same tokens
Receipts you can replay
Chain-trained models are deterministic. The same model root, prompt and seed always produce the same tokens. So any receipt can be replayed to confirm the output and the token count. A padded count fails the replay, and so does a swapped model. Anyone can check.
Proposed RPC methods, not live: liqua_listModels · liqua_openSession ·
liqua_getUsage · liqua_listAssistants · liqua_getAssistant.
Where the LIQUA goes
| Piece | Rule | Size |
|---|---|---|
| Token fees | Land in the project treasury, one published account anyone can add up in the explorer | whatever the receipts settle to |
| Assistant creators | Earn a diminished reward, a smaller share of the fee when their assistant is used. The rest goes to the project treasury | a smaller share, size set by vote |
| Staking discount | Staking LIQUA in your wallet earns cheaper token use, shown in the chat meter | set by vote |
| Mind NFT sessions | Metered and settled like library usage: prepaid, capped, replayable, fees to the project treasury | announced before mainnet |
Staking pay, bonuses and AI discounts are all coming, and staking pay comes from the 70% staking and mining bucket. The creator share is written into each settlement once and never recomputed. Creator share plus treasury share always equals the charge.
Mind NFTs, solo or party
Every saved version of the AI mind becomes a Mind NFT kept on the Liqua chain. It does not sit locked in one wallet's vault. Anyone can use one in exchange for LIQUA.
- Solo. You and the mind, one session, one meter.
- Party. Several people, and their assistants, share one session and split the cost the way they agreed on joining. It settles once.
- Rarity is earned. It comes from how much that version measurably improved, Common up to Singular.
The side-by-side base for parties already exists in the L8 OS as MULTI·DIVA, where several assistants answer independently or confer in turn. Minting and paid sessions are coming.
Rarity is measured, never rolled
A Mind NFT's rarity band comes straight from the measured improvement its version delivered, climbing from Common to Singular. A Singular is scarce because that merge pushed her further than the ones beside it. The chain's own history decides it. The bands and their shares are coming: nothing has been minted, so no band has a real population yet, and the percentages below are the intended shape, not a count.
How a session is paid for
- Pay as you play. Each session with a Mind NFT is metered in LIQUA. Prepay, set a cap, keep the receipt. The fees land in the project treasury. coming
- Solo or party. Take one out alone, or split a session with friends. The L8 OS already runs MULTI·DIVA lineups side by side, and party mode grows from there.
- One card per save. Every Mind NFT points at exactly one saved model version, and those versions already sit on-chain.
Outside models wear a label
NANO, the model that mining trains on the Liqua chain today, is a completion model. It continues text, and it does not follow instructions yet. So what answers in store chat at launch is still being decided, and it is announced before mainnet.
The labelling rule
A model in the store that was not trained on the Liqua chain says so, right on the listing and in the chat header: outside model, not on-chain. Outside providers' own terms and prices apply to them. No outside model is ever presented as one the chain trained.
Privacy and safety
- Your chats are yours. They are planned to be saved as memory packs sealed to your private seed, never visible to the assistant's creator or to other users. coming
- Do not feed secrets to an assistant. Its instructions and knowledge files can be pulled out by asking, and the builder says so up front.
- Report and review on every public assistant.
- Hard caps. The spend cap is enforced at settlement, and a resumed host cannot charge twice or past it.