The constraint that shaped V1’s market design — and the step in the argument that turned out not to hold.
This page’s conclusion has been superseded. The constraint below is real and still worth
understanding — a contract that can add ciphertexts genuinely cannot compare them. What does
not follow is therefore no order book, because matching never had to happen inside the
contract. See V2: sealed orders.The page is kept rather than deleted: it describes V1, which is what runs today, and the
reasoning error is more useful visible than quietly removed.
Atrum V1 is a parimutuel pool, not an order book. Under the assumption that matching must
happen on-chain, it is the only mechanism that works.
Atrum uses additively-homomorphic encryption. Given two ciphertexts the contract can
compute the encryption of their sum, without ever learning either value. That is what lets a
pool total exist while individual stakes stay hidden.What it cannot do is compare. There is no operation that takes two ciphertexts and tells
you which is larger.
Order matching is comparison. Is this bid at least the ask? Every matching engine ever
written is built on that question.A contract that can add but not compare cannot match orders. So:
No order book. Matching is comparison.
No AMM. Pricing curves need to compare a trade against reserves.
Parimutuel. Everyone stakes into a pool, and winners split it pro rata. Payouts need
only addition and one division at settlement — no comparison at any point.
This is why nobody has retrofitted privacy onto an existing prediction market. It is not that
it would be difficult; the market design itself has to change.
No live price to trade against. You stake; you do not take a quote.
No partial fills or limit orders. You are in the pool or you are not.
Odds move after you commit. Later money changes your payout, and you cannot react.
That last one is real and it is not fixed by better cryptography — it is a property of the
mechanism. A bettor who is right early is diluted by money that arrives later.
In principle yes. Fully homomorphic encryption permits arbitrary computation on ciphertexts,
including comparison, so an encrypted order book becomes expressible.Expressible is not practical. Comparison is the expensive FHE operation, and matching one
order against a resting book needs many of them. The realistic first version is a periodic
batch auction, not continuous matching — which is, again, a form of batching.FHE also does not remove the need for a decryption committee. It relocates the trust; it does
not delete it.
Two things above point at the answer, and the page did not follow them.Penumbra is listed as batching trades into sealed auctions. The FHE section concludes that
the realistic first version is “a periodic batch auction, not continuous matching.” Both are
correct, and together they describe a mechanism that needs no on-chain comparison at all — a
sealed batch auction clearing at a uniform price, where the clearing price is computed off
the chain and verified on it.The wall this page describes is real. It sits between the contract and continuous matching,
not between Atrum and a market. V2: sealed orders is what is on
the other side of it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Atrum","colors":{"primary":"#5B21B6","light":"#A78BFA","dark":"#3B0764"},"logo":{"light":"https://mintcdn.com/atrum/aBwnBFgRU2DsM15d/images/logo-light.svg?fit=max\u0026auto=format\u0026n=aBwnBFgRU2DsM15d\u0026q=85\u0026s=125d5cf03735d49817684f678ee58a71","dark":"https://mintcdn.com/atrum/aBwnBFgRU2DsM15d/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=aBwnBFgRU2DsM15d\u0026q=85\u0026s=90fa4482bb7259b71bfaf9571e6996ae"},"favicon":"https://mintcdn.com/atrum/uOxpRy7avmf323DP/images/favicon.svg?fit=max\u0026auto=format\u0026n=uOxpRy7avmf323DP\u0026q=85\u0026s=e0fc57000e2e4dd4f255b765eea6d2b9","footer":{"socials":{"github":"https://github.com/atrummarkets"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"atrum","hasAudioNarration":false,"actualSubdomain":"atrum","customDomains":["docs.atrum.fun"],"gitSource":{"type":"github","owner":"atrummarkets","repo":"atrum-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a8612cac3061c934e382326","collectionId":"53226ed8-3d2b-46b3-98d4-7006e5197245","liveDeploymentHistoryId":"6a8612cac3061c934e382326","schemaVersion":"v3"},"entitlements":{},"buildId":"6a8612cac3061c934e382326:success","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"How it works","count":6},{"language":"default","tag":"Getting started","count":2},{"language":"default","tag":"Using Atrum","count":2},{"language":"default","tag":"Reference","count":2},{"language":"default","tag":"What's next","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"concepts/why-parimutuel","slug":"/concepts/why-parimutuel","pageMetadata":{"title":"Why parimutuel","description":"The constraint that shaped V1's market design — and the step in the argument that turned out not to hold.","href":"/concepts/why-parimutuel"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The constraint that shaped V1’s market design — and the step in the argument that turned out not to hold.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Mermaid,Note,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This page’s conclusion has been superseded.`}),` The constraint below is real and still worth\nunderstanding — a contract that can add ciphertexts genuinely cannot compare them. What does\nnot follow is `,_jsx(_components.em,{children:`therefore no order book`}),`, because matching never had to happen inside the\ncontract. See `,_jsx(_components.a,{href:`/concepts/v2-sealed-orders`,children:`V2: sealed orders`}),`.`]}),_jsx(_components.p,{children:`The page is kept rather than deleted: it describes V1, which is what runs today, and the\nreasoning error is more useful visible than quietly removed.`})]}),`\n`,_jsx(_components.p,{children:`Atrum V1 is a parimutuel pool, not an order book. Under the assumption that matching must\nhappen on-chain, it is the only mechanism that works.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-constraint`,children:`The constraint`}),`\n`,_jsxs(_components.p,{children:[`Atrum uses `,_jsx(_components.strong,{children:`additively-homomorphic encryption`}),`. Given two ciphertexts the contract can\ncompute the encryption of their sum, without ever learning either value. That is what lets a\npool total exist while individual stakes stay hidden.`]}),`\n`,_jsxs(_components.p,{children:[`What it cannot do is `,_jsx(_components.strong,{children:`compare`}),`. There is no operation that takes two ciphertexts and tells\nyou which is larger.`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-that-rules-out-an-order-book`,children:`Why that rules out an order book`}),`\n`,_jsx(Mermaid,{chart:`flowchart TD\n A[\"Contract holds encrypted stakes\"] --> B{\"Can it ADD\u003cbr/>two ciphertexts?\"}\n B -->|\"yes\"| C{\"Can it COMPARE\u003cbr/>two ciphertexts?\"}\n B -->|\"no\"| X[\"No pool total.\u003cbr/>No market at all.\"]\n C -->|\"no — this is us\"| D[\"No matching engine\"]\n C -->|\"yes — needs FHE\"| E[\"Order book expressible\u003cbr/>\u003ci>but comparison is the\u003cbr/>expensive operation\u003c/i>\"]\n\n D --> F[\"No order book\"]\n D --> G[\"No AMM\"]\n D --> H[\"Parimutuel:\u003cbr/>add stakes, divide once\"]\n\n style H stroke:#15803d,stroke-width:3px\n style X stroke:#b91c1c,stroke-width:2px`}),`\n`,_jsxs(_components.p,{children:[`Order matching is comparison. `,_jsx(_components.em,{children:`Is this bid at least the ask?`}),` Every matching engine ever\nwritten is built on that question.`]}),`\n`,_jsx(_components.p,{children:`A contract that can add but not compare cannot match orders. So:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No order book.`}),` Matching is comparison.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No AMM.`}),` Pricing curves need to compare a trade against reserves.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Parimutuel.`}),` Everyone stakes into a pool, and winners split it pro rata. Payouts need\nonly addition and one division at settlement — no comparison at any point.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`This is why nobody has retrofitted privacy onto an existing prediction market. It is not that\nit would be difficult; the market design itself has to change.`})}),`\n`,_jsx(Heading,{level:`2`,id:`everyone-hits-this-wall`,children:`Everyone hits this wall`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n P[\"Penumbra\"] --> PB[\"sealed batch auctions\"]\n R[\"Renegade\"] --> RM[\"matching inside MPC\"]\n A[\"Atrum\"] --> AP[\"parimutuel pooling\"]\n\n PB --> W[\"all avoid\u003cbr/>continuous matching\"]\n RM --> W\n AP --> W\n\n style A stroke:#5B21B6,stroke-width:3px\n style W stroke:#5B21B6,stroke-width:2px`}),`\n`,_jsx(_components.p,{children:`Look at what private trading systems actually do:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Penumbra`}),` batches trades into sealed auctions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Renegade`}),` matches inside multi-party computation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Atrum`}),` pools.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Nobody runs a private `,_jsx(_components.em,{children:`continuous`}),` order book in production, because continuous matching leaks\nby construction whatever cryptography is underneath.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-parimutuel-costs-you`,children:`What parimutuel costs you`}),`\n`,_jsx(_components.p,{children:`Being honest about the trade:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No live price to trade against.`}),` You stake; you do not take a quote.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No partial fills or limit orders.`}),` You are in the pool or you are not.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Odds move after you commit.`}),` Later money changes your payout, and you cannot react.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`That last one is real and it is not fixed by better cryptography — it is a property of the\nmechanism. A bettor who is right early is diluted by money that arrives later.`}),`\n`,_jsx(Heading,{level:`2`,id:`would-fhe-change-this`,children:`Would FHE change this?`}),`\n`,_jsxs(_components.p,{children:[`In principle yes. Fully homomorphic encryption permits arbitrary computation on ciphertexts,\nincluding comparison, so an encrypted order book becomes `,_jsx(_components.em,{children:`expressible`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Expressible is not practical. Comparison is the expensive FHE operation, and matching one\norder against a resting book needs many of them. The realistic first version is a `,_jsx(_components.strong,{children:`periodic\nbatch auction`}),`, not continuous matching — which is, again, a form of batching.`]}),`\n`,_jsx(_components.p,{children:`FHE also does not remove the need for a decryption committee. It relocates the trust; it does\nnot delete it.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-this-argument-actually-lands`,children:`Where this argument actually lands`}),`\n`,_jsx(_components.p,{children:`Two things above point at the answer, and the page did not follow them.`}),`\n`,_jsxs(_components.p,{children:[`Penumbra is listed as batching trades into sealed auctions. The FHE section concludes that\nthe realistic first version is `,_jsx(_components.em,{children:`“a periodic batch auction, not continuous matching.”`}),` Both are\ncorrect, and together they describe a mechanism that needs no on-chain comparison at all — a\nsealed batch auction clearing at a uniform price, where the clearing price is computed off\nthe chain and verified on it.`]}),`\n`,_jsxs(_components.p,{children:[`The wall this page describes is real. It sits between the contract and continuous matching,\nnot between Atrum and a market. `,_jsx(_components.a,{href:`/concepts/v2-sealed-orders`,children:`V2: sealed orders`}),` is what is on\nthe other side of it.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Why parimutuel","description":"The constraint that shaped V1's market design — and the step in the argument that turned out not to hold.","href":"/concepts/why-parimutuel"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The constraint","slug":"the-constraint","depth":2,"children":[]},{"title":"Why that rules out an order book","slug":"why-that-rules-out-an-order-book","depth":2,"children":[]},{"title":"Everyone hits this wall","slug":"everyone-hits-this-wall","depth":2,"children":[]},{"title":"What parimutuel costs you","slug":"what-parimutuel-costs-you","depth":2,"children":[]},{"title":"Would FHE change this?","slug":"would-fhe-change-this","depth":2,"children":[]},{"title":"Where this argument actually lands","slug":"where-this-argument-actually-lands","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"atrum","siteName":"Atrum","title":"Why parimutuel - Atrum","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-18T02:46:11.022Z","originalFileLocation":"concepts/why-parimutuel.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The constraint that shaped V1\u0026#x27;s market design — and the step in the argument that turned out not to hold.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Atrum\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Why parimutuel - Atrum\">\u003cmeta data-mint-head property=\"og:description\" content=\"The constraint that shaped V1\u0026#x27;s market design — and the step in the argument that turned out not to hold.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Atrum\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.atrum.fun/concepts/why-parimutuel\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://atrum.mintlify.app/_mintlify/api/og/v2?division=How+it+works\u0026amp;title=Why+parimutuel\u0026amp;description=The+constraint+that+shaped+V1%27s+market+design+%E2%80%94+and+the+step+in+the+argument+that+turned+out+not+to+hold.\u0026amp;theme=67d597d697bc35490a50bfc6\u0026amp;signature=2e7be71c060ae283d4b410849721db0dad89f860feca92b855f51c42a0e85ea5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Why parimutuel - Atrum\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The constraint that shaped V1\u0026#x27;s market design — and the step in the argument that turned out not to hold.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://atrum.mintlify.app/_mintlify/api/og/v2?division=How+it+works\u0026amp;title=Why+parimutuel\u0026amp;description=The+constraint+that+shaped+V1%27s+market+design+%E2%80%94+and+the+step+in+the+argument+that+turned+out+not+to+hold.\u0026amp;theme=67d597d697bc35490a50bfc6\u0026amp;signature=2e7be71c060ae283d4b410849721db0dad89f860feca92b855f51c42a0e85ea5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/atrum/f7xxgJknTTlO97OL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Atrum\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5B21B6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.atrum.fun/concepts/why-parimutuel\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/why-parimutuel.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.atrum.fun/#organization\",\"name\":\"Atrum\",\"url\":\"https://docs.atrum.fun\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/atrum/aBwnBFgRU2DsM15d/images/logo-light.svg?fit=max\u0026auto=format\u0026n=aBwnBFgRU2DsM15d\u0026q=85\u0026s=125d5cf03735d49817684f678ee58a71\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.atrum.fun#website\",\"name\":\"Atrum\",\"url\":\"https://docs.atrum.fun\",\"publisher\":{\"@id\":\"https://docs.atrum.fun/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.atrum.fun/concepts/why-parimutuel#webpage\",\"url\":\"https://docs.atrum.fun/concepts/why-parimutuel\",\"name\":\"Why parimutuel\",\"description\":\"The constraint that shaped V1's market design — and the step in the argument that turned out not to hold.\",\"dateModified\":\"2026-08-18T02:46:11.022Z\",\"isPartOf\":{\"@id\":\"https://docs.atrum.fun#website\"},\"breadcrumb\":{\"@id\":\"https://docs.atrum.fun/concepts/why-parimutuel#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.atrum.fun/concepts/why-parimutuel#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How it works\",\"item\":\"https://docs.atrum.fun/concepts/privacy-model\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why parimutuel\",\"item\":\"https://docs.atrum.fun/concepts/why-parimutuel\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.atrum.fun/concepts/why-parimutuel#article\",\"headline\":\"Why parimutuel\",\"name\":\"Why parimutuel\",\"description\":\"The constraint that shaped V1's market design — and the step in the argument that turned out not to hold.\",\"url\":\"https://docs.atrum.fun/concepts/why-parimutuel\",\"mainEntityOfPage\":{\"@id\":\"https://docs.atrum.fun/concepts/why-parimutuel#webpage\"},\"dateModified\":\"2026-08-18T02:46:11.022Z\",\"publisher\":{\"@id\":\"https://docs.atrum.fun/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.atrum.fun#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Atrum\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Atrum","nav":{"global":null,"groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/index"},{"title":"How Atrum works","href":"/concepts/overview"}]},{"group":"How it works","pages":[{"title":"Privacy model","href":"/concepts/privacy-model"},{"title":"Notes and commitments","href":"/concepts/notes-and-commitments"},{"title":"Encrypted totals","description":"How a contract adds up bets it is never allowed to read.","href":"/concepts/encrypted-totals"},{"title":"Why parimutuel","href":"/concepts/why-parimutuel"},{"title":"Resolution","description":"How a market decides its outcome, and why no address can change it.","href":"/concepts/resolution"},{"title":"Architecture","href":"/concepts/architecture"}]},{"group":"What's next","pages":[{"title":"V2: sealed orders","href":"/concepts/v2-sealed-orders"}]},{"group":"Using Atrum","pages":[{"title":"Place a bet","href":"/guides/place-a-bet"},{"title":"Market lifecycle","href":"/guides/lifecycle"}]},{"group":"Reference","pages":[{"title":"Contracts","href":"/reference/contracts"},{"title":"Performance","href":"/reference/performance"}]}]},"basePath":"","title":"Why parimutuel - Atrum","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}