Skip to content
@atrummarkets

Atrum

Private Prediction Markets on Monad

Atrum

A prediction market where your position is private and the price is not.

atrum.fun

Prediction markets are useful because of the price they produce. They are unusable for some of the people who most need them because that price is built out of public positions — betting against a ruling party, or holding a view your employer would read as disloyalty, means publishing it. Hiding everything is not the fix: hide the price and you have a private casino, not a market.

Atrum splits the difference deliberately. Individual orders, identities and balances are hidden — including from the operator. Odds, volume and settlement stay public and verifiable.

Two builds

atrum-core — the shielded pool, live on Monad testnet. Groth16 over BN254, exponential ElGamal on BabyJubJub, a depth-20 commitment tree. Bets are hidden individually and only the parimutuel totals decrypt.

Every action is a real proof through the real snarkjs-generated verifier, measured on live Monad nodes rather than estimated:

measured
deposit, end to end 1,378,641 gas
bet, end to end 1,165,715 gas
redeem, end to end 1,137,382 gas
Client-side proving ~995 ms median

atrum-starknet — a sealed-bid batch auction, built on STRK20. Orders are unreadable until they are already binding, a uniform clearing price is published, and positions are tradeable before the event resolves. Because every order is committed before anything clears, front-running is not penalised — it is structurally impossible.

How we work

Numbers here are measured or they are not stated. atrum-core keeps a MEASUREMENTS.md that records what the repo measured against live nodes including where it contradicts its own design reference, and a deployment log that documents the fund-stranding bugs found by deploying and then trying to use it — each one invisible to a passing local test suite.

Privacy claims are specific and easy to overstate, so each repo states what is hidden and what is visible in a table, per build, because the two builds hide different things.

Repositories

atrum-core Circuits, contracts and sequencer for the shielded pool
atrum-starknet Sealed-bid batch auction on Starknet, built on STRK20
atrum-client Browser proving harness and client
atrum-markets Front end — the full deposit → bet → settle → withdraw lifecycle
atrum-docs Documentation
atrum-landing Landing page

Contributing

Open, self-contained work is labelled help wanted in atrum-core — currently a batch auction simulator, oracle resolvers for new market types, and a CLI for the shielded pool. Comment on the issue before starting so it can be assigned.

One house rule, since it costs contributors time: gas figures must come from the Monad-patched Foundry toolchain, not stock Foundry. Stock reports Ethereum's prices and two tests fail without the fork.

Pinned Loading

  1. atrum-client atrum-client Public

    Browser proving harness and client for the Atrum shielded pool

    JavaScript

  2. atrum-core atrum-core Public

    Solidity 1

  3. atrum-landing atrum-landing Public

    new landing page

    TypeScript

  4. atrum-markets atrum-markets Public

    TypeScript

  5. atrum-starknet atrum-starknet Public

    Sealed-bid batch auction prediction market on Starknet. Private orders, public clearing price, positions tradeable before resolution. Built on STRK20.

    TypeScript

Repositories

Showing 8 of 8 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…