strk20.run

Surface status

What is shipped, what is partial, and what is not deployed — computed from the deployment record rather than written down.

Seven surfaces, one pool. This table is not prose: the Markets and Launch rows are computed from whether evidence/markets-launch-deployment.json has contract addresses in it, so a build that has no deployment says so and a build that has one cannot claim otherwise.

WalletLiveBalance read from the pool, four honest states, send, deploy, register, QR receive, account lifecycle, history.
ChatLiveMulti-conversation over one multiplexed socket, sealed messages, money attached to a message, opt-in public name directory.
SwapLiveA real route priced through an on-chain aggregator, executed in one transaction, proceeds land back in the pool.
BridgeOutbound onlyShielded USDC out through StarkWare’s deployed OutboundAnonymizer. Bringing value back is not built, and no crossing has been sent from this code.
MarketsLiveDeployed on mainnet. Standing windows on BTC, ETH, STRK and BTC/EUR every 15 minutes, hour and day — a window exists before anyone bets, the first bet sets its line from Pragma and the house float seeds the other side. The bet ticket and create-a-market write the deployed contract; every price is a live read from the oracle a market settles against. 87 snforge tests.
LaunchLiveDeployed on mainnet. True-phase cards, buy through the deployed contract, and launch-a-token. Buys arrive as withdrawals from the pool, so the launch records no buyer address — which is the narrow true claim, not “your address never appears”. 47 snforge tests.
HousesLiveDeployed on mainnet. A house is a treasury with members; a ballot’s weight is public, its choice is sealed to the proposal’s tally key, and no address is written on it. Our Teller opens the tally at close and cannot forge, drop or miscount a ballot, because the contract checks the arithmetic.

Why it is built this way

The design prototype these pages came from said Markets and Launch were "not deployed, contract written, 52 tests". That was true when it was written and false three days later, when both went to mainnet — and it kept being false, in the prototype, in this repository's README, and in a source comment inside the app itself.

That is the ordinary fate of a status written as a sentence. It is why the two rows that can change read a file instead.

The one that is genuinely partial

Bridge is outbound only. Shielded USDC leaves through StarkWare's deployed OutboundAnonymizer. Bringing value back is not built, and no crossing has been sent from this code. The surface says that on its own screen too.

On this page