CurtainMarketsDocs
curtainPractice tick 0:20Launch app

You've gone behind the curtain

Bet on crypto prices without the market watching you. Your side and size go to Solana encrypted, are counted inside Arcium, and the board only learns totals.

Polymarket on Polygon
polygonscan.com/address/0xe111…996b
  1. Reading Polymarket's fills from Polygon.
Curtain on Solana
explorer.solana.com
  1. Reading Polymarket's fills from Polygon.

The first window shows the five largest Polymarket bets of the last two minutes, read from Polygon just now. The second shows the same five bets the way Curtain writes them to Solana, sealed in this tab. The wallet still shows, but the side and the size do not.

The chain won't reveal:

  • Which side you took
  • How much you put on it
  • What you were paid when it settled

Still visible to everyone:

  • The odds, once 5 bettors are in a batch
  • When your wallet bet, and where
  • Your deposits and withdrawals, in full

Open markets, priced by Pyth

Open in app

Reading the three prices from Pyth on Solana.

Your bet never shows alone

A batch is published only with at least 5 different wallets in it. Until then it waits, and if betting closes first those bets are refunded unseen.

Sealed activity, 64 bytes a bet

Next tick 0:20

  1. Waiting for the first sealed bet.

Practice bettors in this tab. Real ciphertext.

Everything this tab can see

Prices are public, so the page shows every live one. Bets are not, so the ledger shows only what a batch gave up.

Reading

Pyth feeds pushed to Solana in the last 2 minutes

Feed watch, read from Pyth push accounts on Solana every 15 s

FeedPriceLast printGive or takeState

Reading every feed account from Solana.

Seal a practice bet

Bet in this tab, then look at what the chain can read.

Will SOL be at or above its price now, next Friday?

What you typed, in this tab

Side
Yes
Size
250 USDC

What Solana gets

Nothing yet. Press seal and place.

0 of 5 bettors in the batch.

The board before
Empty
The board after
Waiting for the batch

Practice only: the other bettors are simulated in your browser and this tab encrypts with a throwaway key. In the app your bet is encrypted to your key and Arcium's, and the batch is added up inside Arcium. The practice feed above ticks every 20 s; on Curtain an epoch is 60 s.

Who can see what

Every action on Curtain, and what it puts in public. Nothing here is rounded in our favour.

Sealed by Arcium, recorded on Solana

ActionEveryone seesNobody sees
DepositYour wallet and the amountNothing, a deposit is public
BetYour wallet, the market, the batch, the time, and whether it was refused for sizeYour side, your size, your balance after it
Batch publishedThat batch's Yes total and No total, how many bettors, which walletsWho is on which side, any single bet
SettlementThe print, the outcome, the fee, the payout ratioEvery payout
CollectThat your position was collected (a crank collects winners and losers alike)What it paid
WithdrawYour wallet and the amountWhat is left in your purse

History, your side and size

No history. Nothing readable was saved.

The chain keeps your bet as 64 sealed bytes and nothing else. When a batch publishes, it adds your size to a total and still does not write down which part was yours.

Who you trust today

Arcium's mainnet alpha runs on a permissioned set of 3 nodes. Bets stay sealed while at least one of them is honest. If all 3 worked together they could read every bet, and sign a balance that is not yours.

The operator can pause new bets and new markets. No instruction lets anyone move the pot, change where fees go, or touch a live market.

What can still leak

In a batch of 5, each bettor learns the sum of the other four. Someone who owns every other seat in your batch learns your bet exactly. It costs them fees on four bets, and one honest bettor breaks it.

Deposits and withdrawals are public. A wallet that withdraws more than it put in has won something.

The first print after the deadline

Nobody judges a Curtain market. It settles on the first price Pyth publishes on Solana at or after the deadline, and nothing published more than 15 seconds after it can settle the market at all, so waiting for a kinder number buys a settler nothing. Yes wins at or above the line.

Right now

ReadingSOL/USD from Pyth on Solana mainnet

Thu 29 Oct 2026, the engine's last test run, on a real price from Pyth on Solana

22:44:38 UTCDeadline of market A: SOL at or above $97.3877?
22:44:39 UTCDeadline of market B, one second later, on the same sealed book.
22:44:43 UTCSOL/USD $97.2542, give or take $0.0706. The first price Pyth published after the deadline, five seconds later: below the line, No wins market A.
22:44:53 UTCFifteen seconds past the deadline the window shuts. No price published after this one can settle market A.

Everyone is refunded, with no fee, when:

  • One side has no bets
  • Pyth published no price within 15 s of the deadline, which means the feed was down
  • Its uncertainty is wider than 1% of the price
  • Nobody settles it within 7 days

The house cut:

  • 1% of each settled pot, none on a refund
  • Counted in public at settlement, and paid only to a treasury fixed when the program was set up