Repository navigation
Releases: minima-bay/the-minima-pool
Release list
The Pool v0.0.8.20: on-chain order book (test release)
An on-chain order book on the Minima blockchain. Orders rest as coins holding escrow under a covenant; the book is readable from the chain by anyone, with or without this app.
This is a test release and it is not ready for real funds. The assets traded are valueless test tokens. The project's own security assessment, including what has been attacked, what is unproven and what is known to be broken, ships inside the app under Security.
ThePool_v0.0.8.20.apk (primary)
SHA256 98627ea2dbcbfdab4c0b2dacc87e994d439af782bf94ec97f63135e97228bf2f
ThePool_v0.0.8.20.mds.zip (desktop MinimaOS, and anyone not yet on Minima Core)
SHA256 15dee4fef7bd83ac86d6ba2ebd77e0620ccbb8f29f77660fae57952d61d8c9cb
The same hash is written into the version record on chain, so it can be checked without trusting this page.
Install into MinimaOS with mds action:install file:<path to the zip>.
What changed since v0.0.5.38
- Marketable limit orders: an order that crosses takes what it can, and the remainder is placed as a resting order by the app rather than by the covenant. A remainder that would still cross the book is never placed, because the book may not be crossed.
- The order book can be published to the chain and rebuilt from it by a node that has never seen the venue. Page composition is content-defined, so the usual publish from a phone is one or two writes rather than twelve.
- Sand: a valueless record token, so writing a record never spends anything a person would miss.
- A claim that loses a race for the faucet's reserve coin now says so, and says to pour again, instead of reporting that the network refused it.
- My transactions shows what came in and what went out in separate columns; My orders shows what an order is worth in USDx beside its size.
- A leftover too fine for any price to pay for is named as such rather than handed to a ticket that cannot trade it.
- There is no bridge link and no bridged asset here. A USDT bridge run by other people was listed and has been removed: what is locked on Ethereum could not be reconciled with what circulates on Minima, and this project does not carry a claim it cannot check.
If something looks wrong. An order can be cancelled from My orders and the escrow returns to the wallet that placed it; that is a property of the covenant and does not depend on this build. The book also survives the app, as an on-chain snapshot and as a downloadable file. Report what happened with the version in the Telegram group linked inside the app.
Nothing here is audited or independently reviewed.
The Pool v0.0.5.38: on-chain order book (test release)
This is the current application. It replaces v0.0.3.58. The older May 2026 AMM prototypes remain labelled as superseded history and are not this venue.
What this is
The Pool is an on-chain central limit order book on Minima. Every order is a real coin holding the maker's tokens under the order-v2.2 covenant. A taker spends the orders it crosses and pays each maker at that maker's own limit.
No matching engine. No sequencer. No operator. No admin key. Cancelling is the covenant exit that returns a maker's resting escrow.
Test assets. No value.
Winiwa and USDx are test tokens minted for this venue. They are worth nothing, backed by nothing, and redeemable for nothing. USDx is not USDT and is not any real stablecoin.
The security verdict remains NOT READY FOR REAL FUNDS. This release is for testing the venue, its recovery model, and its interfaces.
What changed since v0.0.3.58
Android reads no longer outrun Android IPC
The v0.0.3.58 release described Android being killed by bursts of node reads while the cause was still unknown. The cause is now measured: Minima Core replies to the APK through Android broadcast IPC, and a reply around a quarter of a megabyte can fail with TransactionTooLargeException and kill the app before JavaScript can catch anything.
This release keeps Android reads inside that transport:
- personal history is read one transaction at a time on Android;
- snapshot pages have a bounded payload instead of growing with the book;
- automatic history work is bounded and serialized;
- personal transaction history can be persisted, exported, imported, and checked without claiming that a pruned node still holds it.
The take path uses one reviewed plan
The market preview, review, and transaction builder now use the same exact plan. The planner walks prices in order, permits the covenant's measured shape of one partial fill followed by whole fills, and stops before a second partial. A hostile or accidentally unwhole order at the touch can no longer cap a sweep at a tiny fraction of the requested size.
Maker ports needed to construct payments and re-rests are validated before any transaction command is built. Orders that lie about their escrow are not displayed as takeable depth, while the crossing guard still sees every order the covenant would fill.
The final mainnet build-only check exercised both covenant branches: partial-first plus whole-after passes scripts and basics; both two-partial arrangements fail scripts while passing basics. Nothing was posted by that suite.
The book remains one book through pending writes
Pending overlays retain the wider covenant crossing view, so posting one order cannot temporarily hide another fillable order from the no-crossed-book guard. The complete-book check and the page use the same registered evidence, and failed or unfillable coins cannot lock every placement on the venue.
The ladder now groups every exact price into one line, including at the finest 0.00001 setting. Two distinct coins at 0.00400 are shown as one price row with their sizes added; they remain separate covenant coins when a trade is built. Every grouping level preserves the exact total size and hands the ticket plain exact values rather than formatted labels.
Reader-facing states are shorter and actionable
The app keeps its full columns at phone width through visible horizontal scrolling, covers the first read with a self-clearing boot veil, and keeps changing states in stable spaces.
The permanent balance note is now a short rate, caution, and 24h status. About includes five plain order-book basics: every order is a coin, some covenant coins are not usable orders, a crossing limit becomes a trade, a market order may fill partly, and size conversion uses only a price the trader typed. Each refusal or warning carries an action, a self-clearing condition, or somebody to ask.
Downloads
| File | SHA256 |
|---|---|
ThePool_v0.0.5.38.apk |
125891c734209adf753967d3e0654934862bf233130ff96e7aa70f1725d52cba |
ThePool_v0.0.5.38.mds.zip |
8625574d33026631cbd738c0f078ce9513205931b433bd5e693a510c57a44d26 |
Check before installing:
sha256sum ThePool_v0.0.5.38.apk ThePool_v0.0.5.38.mds.zip
certutil -hashfile ThePool_v0.0.5.38.apk SHA256
certutil -hashfile ThePool_v0.0.5.38.mds.zip SHA256
The APK is signed CN=The Pool, OU=Minima Bay. Certificate SHA-256:
7934a2bc9c5ad8396650ce51cda26755a99c0c8b987743342cb0186ef9e5d0a1
- APK: the recommended Android build. It talks to Minima Core on the same phone.
- MDS ZIP: the desktop MinimaOS package. An untrusted install may start in READ mode and ask for approval when the app needs to write.
Both packages were installed before publication. The APK was installed in place on a Pixel 7 Pro and the installed base.apk was pulled back byte-identical to the release APK. The MDS ZIP was installed on a desktop node as The Pool v0.0.5.38 in READ mode.
Check it rather than trust it
The contract text ships inside the app, and its address is a hash of that text:
node tools/verify-contracts.mjs
Read the live order coins directly from a node:
coins address:0xF139672988BA32DBC5BA85A5A1BA969C4864DD1BCFAB090F40DA5FAE9540641A
Run the full gate:
node tools/completeness-test.mjs
The publication candidate passed 21 suites. The take planner made 360,359 passing assertions against synthetic adversarial books and the live book. The exact-price grouping suite passed 55 checks. The way-out suite passed 77 checks. The mainnet covenant build-only suite passed 13 checks with nothing posted.
Limits stated plainly
- This is test software for valueless assets. It has not met the conditions in
SECURITY.mdfor real funds. - A Minima node prunes old transaction bodies. A node that did not observe history may not be able to recover it later.
- A recent book snapshot may not always exist. When it does not, the app says the book is unverified and keeps looking; the next published snapshot is the way out.
- The candle and snapshot addresses are permissionless. Anybody can write there. Readers verify structure and chain evidence and refuse what they cannot support. Sampling means an unsampled candle is not fully recomputed by every reader.
- Price-time priority is a rule this software follows, not one the covenant enforces. The covenant still requires every maker to receive that maker's own limit.
- The venue sets no burn. On a congested chain, its transactions can queue behind transactions that do.
- A midpoint is an estimate, not a traded price. The fills list and trade chart are the surfaces built from observed trades.
The Pool v0.0.3.58 — on-chain order book (test release)
This is the current application. The two releases below it are an AMM prototype from May 2026 and a different program entirely; they are kept, labelled, so the history stays checkable.
What this is
An on-chain central limit order book on Minima. An order is a coin: you make it, you put your tokens inside it, and you send it to one covenant address. A taker spends the orders it crosses and pays every maker that maker's own limit, in one transaction.
No matching engine. No sequencer. No operator. No admin key. Nobody, including whoever wrote this, can move your tokens while your order rests — cancelling is the only way they come back, because they are really in there.
Test assets. No value.
Winiwa and USDx are test tokens minted for this venue. They are not money, are backed by nothing, and cannot be redeemed for anything. USDx is not USDT and is not any real stablecoin.
The security review inside the app reaches the verdict NOT READY FOR REAL FUNDS, and that is correct and deliberate.
Known defect in this release, stated rather than discovered
On Android, the app can be killed by a burst of node reads in quick succession. The system logs it as am_kill … "Can't deliver broadcast"; the app vanishes to the home screen with no crash dialogue, and nothing is lost but the session.
The cause is not understood. Three explanations were measured and each was wrong: memory pressure, JavaScript starving the main thread, and a blocking call in the WebView request path. What is known is the shape — two node reads in rapid succession are enough.
Every path that made rapid reads has been removed, so ordinary use is stable: the transactions list no longer walks history by itself on a phone, and Show older reads one page per press. That is containment, not a fix, and it is on the board as the first thing to answer before this venue is asked to hold anything of value.
Verified on a Pixel 7 Pro at this version: the app survives launch, opening My transactions, and pressing Show older, with the process id pinned so a restart cannot be mistaken for survival.
Downloads
| File | SHA256 |
|---|---|
ThePool_v0.0.3.58.apk |
9634e85912a9ec58627b46db1f455ea5b8c1e40c24d0a9418a8ea42a49b1fa6b |
ThePool_v0.0.3.58.mds.zip |
10f9ba4ea3dcc0e2df480f81df04e85c2c78bd078c37481bb2e7bc7ca6e83fec |
Check before you install:
sha256sum ThePool_v0.0.3.58.apk
certutil -hashfile ThePool_v0.0.3.58.apk SHA256 # Windows
The APK is signed CN=The Pool, OU=Minima Bay, certificate SHA-256 7934a2bc9c5ad8396650ce51cda26755a99c0c8b987743342cb0186ef9e5d0a1.
.apk— the recommended build on Android. It talks to Minima Core on the same phone. Better interface than the MiniDapp on a small screen..mds.zip— for desktop MinimaOS. Install through your node's MiniDapp store.
What changed since v0.0.3.37
Reading the book no longer writes to the chain. Publishing the snapshot happens only on the back of a real action: placing, taking, cancelling or replacing. It used to happen to anyone who merely looked, once the record was 400 blocks old, which meant people who never traded were paying for a record they had not asked to keep — and, because every reader crossed that line on the same block, thirteen snapshot writes landed in one block. The honest consequence: if nobody trades for about 900 blocks, a node arriving after that cannot bootstrap the book until somebody does. That is what a venue with no operator means. The record is kept by use.
One anchor still disagrees with that rule and is named here rather than hidden: the faucet's coin proofs are still refreshed by anyone who can read the faucet, so a faucet nobody has poured from recently stays usable to a newcomer. It is under review.
The trade history is now correct for partial fills. A fill was counted at the whole remaining order size, so an order of 5 taken by 1 was recorded as a trade of 5 — half the fills in the readable window were partial. The covenant's own STATE(128+@INPUT) is used now. Pages published under the old rule no longer verify and are correctly refused; the store has been republished.
The published trade history reaches the chart at all. It was deployed, published to, verified by the test suite, and never once read by the app.
And a limit on that, which the sentence above would otherwise imply away: nothing in this app writes to it. The trade history on chain grows only when somebody runs the publishing tool by hand. The setting offering to record it is present and, today, does nothing. So the chart can read a published history and this venue does not yet maintain one by itself. Wiring it means a dust transaction per trade on top of the book snapshot, which is a cost to weigh rather than an obvious win, and it is on the board rather than hidden.
A snapshot no longer reads as a payment in your transactions, and the faucet's own reserve no longer appears on your balance as money arriving.
Check it rather than trust it
The contract text ships inside the app, and its address is a hash of that text:
node tools/verify-contracts.mjs
Read the book straight from a node, without this app:
coins address:0xF139672988BA32DBC5BA85A5A1BA969C4864DD1BCFAB090F40DA5FAE9540641A
The gate is twelve suites:
node tools/completeness-test.mjs
Things said plainly rather than discovered later
- A Minima node prunes old transaction bodies. "It is all on chain" is true for recent history and stops being true as it ages. That is why the trade history is published as candles rather than merely read.
- The snapshot and candle addresses are permissionless. Anybody can write to them. Your own node recomputes a sample of every page it draws and throws the whole page away if one candle disagrees. This venue does not vouch for what is written there. Your node does.
- Price-time priority is a rule this software follows, not one the covenant enforces. Every maker is still paid their own limit, so the worst that can happen is a jumped queue, never an underpayment.
- The venue sets no burn. On a congested chain that means transactions queue behind those that do.
- The midpoint price line is this browser's own record. Nobody has ever traded at a midpoint. The Trades chart is the one built from real fills.
The Pool v0.0.3.37 — on-chain order book (test release)
This is the current application. The two releases below it are an AMM prototype from May 2026 and are a different program entirely; they are kept, labelled, so the history stays checkable.
What this is
An on-chain central limit order book on Minima. An order is a coin: you make it, you put your tokens inside it, and you send it to one covenant address. A taker spends the orders it crosses and pays every maker that maker's own limit, in one transaction.
No matching engine. No sequencer. No operator. No admin key. Nobody, including whoever wrote this, can move your tokens while your order rests — cancelling is the only way they come back, because they are really in there.
Test assets. No value.
Winiwa and USDx are test tokens minted for this venue. They are not money, are backed by nothing, and cannot be redeemed for anything. USDx is not USDT and is not any real stablecoin.
The security review inside the app reaches the verdict NOT READY FOR REAL FUNDS, and that is correct and deliberate. This release is for looking at, trading valueless test assets with, and arguing about.
Downloads
| File | SHA256 |
|---|---|
ThePool_v0.0.3.37.mds.zip |
efedd5837e6c1498e7fbe1a6e09e58df70ed2937d3cf6727025a60f41ea59fa3 |
ThePool_v0.0.3.37.apk |
3a32ff87c0ce6fa43075e973db578ed868a0440f31b10fe0809e273c26b5b7a5 |
Check before you install:
sha256sum ThePool_v0.0.3.37.mds.zip
certutil -hashfile ThePool_v0.0.3.37.mds.zip SHA256 # Windows
The APK is signed CN=The Pool, OU=Minima Bay, certificate SHA-256 7934a2bc9c5ad8396650ce51cda26755a99c0c8b987743342cb0186ef9e5d0a1.
.mds.zip— install through your Minima node's MiniDapp store. Runs against that node..apk— Android. It talks to a Minima node over its RPC port.
Check it rather than trust it
The contract text ships inside the app, and its address is a hash of that text: change one character and it hashes somewhere else and no longer opens the coins. So you can verify the app is running the contract it claims:
node tools/verify-contracts.mjs
It takes the text the app ships and asks the chain whether it still hashes to the live address. Ten contracts, and it says which.
Anyone can also read the book straight from a node, without this app:
coins address:0xF139672988BA32DBC5BA85A5A1BA969C4864DD1BCFAB090F40DA5FAE9540641A
Things said plainly rather than discovered later
- A Minima node prunes old transaction bodies. "It is all on chain" is true for recent history and stops being true as it ages. That is why the trade history is published as candles rather than merely read, and why each published candle carries a fingerprint of the exact trades behind it.
- The snapshot and candle addresses are permissionless. Anybody can write to them, including somebody dishonest. That is the design working, not a hole in it: your own node recomputes a sample of every page it draws and throws the whole page away if one candle disagrees. This venue does not vouch for what is written there. Your node does.
- Price-time priority is a rule this software follows, not one the covenant enforces. Somebody using different software can take orders in any order they like. Every maker is still paid their own limit, so the worst that can happen is a jumped queue, never an underpayment.
- The venue sets no burn. On a congested chain that means transactions queue behind those that do. It costs nothing today and is on the plan before real assets.
- The midpoint price line is this browser's own record, sampled while you watch, and nobody has ever traded at a midpoint. The Trades chart is the one built from real fills.
Source
Everything that produces this release is in this repository: the app, the contract text, the deployment manifest, the design notes and the test suite. The gate is twelve suites:
node tools/completeness-test.mjs
AMM prototype v0.0.3 — superseded, not this venue
This is a different application. Do not install it expecting The Pool.
This release is an automated market maker prototype from May 2026: a swap
interface, an add-liquidity interface and a pool stats panel. The Pool is now an
on-chain central limit order book — orders rest as coins at a covenant, a taker
spends the ones it crosses and pays every maker its own limit, and there is no
liquidity pool, no swap curve and no LP position anywhere in it.The two share a name and nothing else. The change was decided in D033 and none of
the code below survives in the current application.It is kept rather than deleted because this project asks people to check its
claims rather than trust them, and a repository that quietly removes what it used
to be is harder to check, not easier.For the current application, see the newest release on this page.
Development build for local testing. Includes test-mode interface, Pool's Bar faucet, Winiwa/WUSD test tokens, and the full swap and liquidity UI.
Not for real funds. Install and run locally against a Minima node to follow the build progress.
- Swap interface (MINIMA / USDT)
- Add liquidity interface
- Pool stats panel
- Live/test mode toggle
- Pool's Bar faucet (Winiwa / WUSD test tokens)
- Test-token tooling and coin-selection design
Install the .mds.zip package via your Minima node's MiniDAPP store.
SHA256
94c05f0511ad47b6973ad2287ec719988e4a56c679a7d64ae35c3565291eca3c
AMM prototype v0.0.1 — superseded, not this venue
This is a different application. Do not install it expecting The Pool.
This release is an automated market maker prototype from May 2026: a swap
interface, an add-liquidity interface and a pool stats panel. The Pool is now an
on-chain central limit order book — orders rest as coins at a covenant, a taker
spends the ones it crosses and pays every maker its own limit, and there is no
liquidity pool, no swap curve and no LP position anywhere in it.The two share a name and nothing else. The change was decided in D033 and none of
the code below survives in the current application.It is kept rather than deleted because this project asks people to check its
claims rather than trust them, and a repository that quietly removes what it used
to be is harder to check, not easier.For the current application, see the newest release on this page.
Local prototype UI for validating the user experience and transaction model.
This release is not connected to a live Minima node. Real-fund trading is not available.
- Swap interface (MINIMA / USDT)
- Add liquidity interface
- Pool stats panel
Install the .mds.zip package via your Minima node's MiniDAPP store.
SHA256
abc90396deecfc566a1b8c62f6f73d598d45446a36980e9aa9b39b7f0a50dfe9