A focused desktop app for creating, trading and settling Bitshares Prediction Market Assets (PMAs).
Created using Astro, React, Shadcn/ui & Electron.
Integrates with both the Beet and BeetEOS multiwallets, for the Bitshares and Bitshares Testnet blockchains.
A Prediction Market Asset (PMA) is a special kind of Bitshares smartcoin that lets the chain itself act as a prediction market. Instead of betting against a counterparty or trusting a centralised oracle, the market's participants collectively drive the asset's price toward the real-world outcome they expect.
Each PMA is created with a plain-English condition and expiry written into the asset description, e.g. "Will SpaceX land on Mars by 2027?". The market resolves via two complementary mechanisms:
- Price feed — A designated feed publisher (or a committee feed) sets a settlement price for the asset between 0 and 1.
1.0means the condition is true / has happened;0.0means false / didn't happen; values in between represent partial confidence. - Global settlement (collateral bids) — When the price feed stalls or the market wants to wind down, the chain auctions the PMA's backing collateral to the highest bidder. This is the "last-resort" resolution path that guarantees every open position can always be closed.
PMAs are tradable like any other asset on the Bitshares DEX, and they support the full limit-order and cancel flow. When a PMA settles, every holder of the asset ends up holding an equivalent amount of its backing collateral — so winning a bet is just "be on the right side of the price".
The app is organised around the full lifecycle of a prediction market asset, from creation to settlement.
- Launch a new market — define a custom ticker, set a description, condition and expiry, pick a backing collateral asset, choose a feed publisher (yourself, another account, or the committee), and decide the initial feed parameters. The whole PMA is created in a single transaction.
- Issued assets view — see every prediction market asset you've created, filterable by status (active, expired, settled), with quick actions to update the description, edit the feed producer, or trigger a global settlement.
- Issuer controls — as the creator of a PMA, you can adjust its description, change the feed producer, force a global settlement, or open the asset for collateral bids on demand.
- DEX limit orders — buy or sell any PMA against its backing collateral on the Bitshares DEX, with full support for limit orders, partial fills, and cancellation.
- Place a bet — a streamlined flow for buying PMA outright (i.e. taking a "yes" or "no" position) without having to construct a limit order manually. The app shows you the current implied probability based on the order book and recent trades.
- Cancel orders — every open order has a one-click cancel, with a confirmation dialog showing the order ID and a deep link to broadcast the cancellation on Beet/BeetEOS.
- Balances — see all of your holdings, with the prediction market assets (and the collateral that backs them) clearly highlighted.
- Activity — a history of your trades, transfers and settlements.
- Open orders — every limit order you have on the book, with a live countdown to each order's expiry, a copyable order ID, and one-click cancel. Includes a manual Refresh button that busts the cache and re-fetches from the chain with a loading indicator.
- Global settlement (collateral bids) — if a PMA is stalled or you want to force a resolution, place a collateral bid on the global-settlement engine. The chain auctions the backing collateral to the highest bidder, and the winning bidder ends up holding the collateral outright.
Beyond the prediction-market workflow, the app includes a small set of utilities you'll need to actually use it day-to-day:
- Favourites — pin assets, accounts and trading pairs for quick access. Favourites persist across sessions and are scoped to each chain.
- Transfers — send assets to other Bitshares accounts, with memo support.
- Instant Trading - instantly exchange between trading pairs on the DEX
- Advanced DEX limit orders - trade between any two assets using advanced features
- Simple Pool Swaps - perform a quick pool asset swap
- Account blocklist - block accounts you dont like.
- Multi-language — fully translated to 10 languages (English, German, Danish, Spanish, Estonian, French, Italian, Japanese, Korean, Portuguese, Thai).
- Multi-wallet — works with both Beet (Bitshares mainnet) and BeetEOS (Bitshares Testnet).
- Customisable visuals — a
/visualssettings page lets you tune the header wave animation, aurora, particle field, blur and colour palette, with live previews and a reset-to-defaults button.
Check out the latest releases: https://github.com/BTS-CM/pma/releases
Supports Windows, Linux and Mac OSX.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run initData |
Fetches and stores JSON data for use in the app. |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build:astro |
Builds the production site at ./dist/ |
npm run start |
Runs the electron app in dev mode. |
npm run build:astro | npm run start |
Builds then runs the electorn app in dev mode. |
npm run dist:windows-latest |
Builds the windows application. |
- Upstream project: BTS-CM/astro-ui by the BeetEOS team and contributors — the full-featured Bitshares UI this fork is built on.
- This fork is a focused derivative aimed at Prediction Market Assets on Bitshares.