PredicXion

PredicXion cover

Background

PredicXion is a centralized prediction market for Asian events, positioned as a “Polymarket for Asia”. Users convert USDT into the platform’s stablecoin, PDUSD, and stake it on the outcome of real-world events. There are no tradable yes/no shares: the platform runs a parimutuel pool, where bets lock at cutoff and the winning side splits the pool pro-rata once the result is confirmed. Binary and multi-outcome markets both shipped at launch.

The concept was announced in 2024 but only became a project once funding was in place, starting right after a sister exchange wound down. The team was small — a founder, two market makers, a marketing lead, and me on product — with engineering coming from the parent company’s shared, distributed technology team. Launch was fixed for the end of April.
Landing page
Registration
Onboarding
Event market
Event detail
Appeal form
Account overview
Deposit
Transaction records
A quick tour — sign-up and onboarding, markets and betting, deposits, appeals, and records. Click any screen for the full page.

My Role

  1. Own the product architecture, and every user-facing flow and screen
  2. Act as sole product manager until a full-time PM joined in mid-April
  3. Design the market lifecycle — creation, approval, resolution, dispute, settlement
  4. Define the visual identity and build the design system
  5. Produce localized screens and developer handoff for a distributed team

Constraints

Full development began on 1 April, against a 1 May deadline. Engineering was shared with another product and split between mainland China and Dubai. There was no PRD and no room for a research phase — the work was to ship something real, fast.

Information Architecture & Flows

With no PRD and no time for a discovery phase, I mapped the product myself — a site map for the structure, and a wireflow for every task. These were how I worked the mechanics out, and they were what the distributed engineering team built from. The map covers the full surface: market, bet, swap, wallet, user centre, and a guest mode for browsing without an account.
Site map of PredicXion
Full site map, drawn up front and used as the handoff reference in place of a written spec.

Task flows

A few of them — connecting a wallet, placing a trade, and claiming rewards. Each one lays out every state, branch, and edge case, so the mechanism and logic stayed unambiguous for stakeholders and engineers without a written spec.
Connect wallet flow
Connecting a wallet.
Place a trade flow
Placing a trade.
Claim rewards flow
Claiming rewards.

Key Decisions

1. Centralized, not DeFi

The founder’s initial framing was an on-chain product. Working through it with the engineering lead, we found the parent company already ran custody and a crypto on/off-ramp — the pieces that would justify going on-chain. A decentralized build would have added risk and time for little gain, so we committed to a centralized platform that reused it. The clearest place this shows is the bet itself: on-chain, every bet is a wallet popup and a signature; centralized, it settles against a custodial PDUSD balance and is a single tap.
DeFi trade with wallet connect
Before
In the on-chain cut, placing a bet meant connecting a wallet and signing a transaction — a popup, a network prompt, and gas on every trade.
Shipped trade panel
After ✅
Shipped: the bet settles against a custodial PDUSD balance, so it is one tap — no wallet, no signature, no gas.

2. A pool, not an order book

With limited funding and engineering capacity, an order book to match buyers and sellers of outcome shares was not feasible; an AMM was floated and ruled out too. We also wanted users betting against each other, with the platform taking only a fee and never a position. So the model stayed simple: a parimutuel pool, where the winning side shares the losing stake in proportion to their own.

3. Only the current odds

Because odds are parimutuel, they move as money flows in. The wireframes proposed a projected “if you win, you get X” figure, but the back end could not compute it reliably in time. What shipped shows only the current pool-share percentage. A probability-over-time chart was designed and cut for the same reason. Both are honest casualties of the timeline; the projected payout is the one I would want back first.
Wireframe bet panel
Before
Wireframes proposed a projected payout and a probability chart on the bet panel.
Shipped bet panel
After ✅
The shipped panel shows only the current pool share — the projection and the chart were not buildable in the time available.

The Market Lifecycle

The hardest part of the project was the logic behind an event, not any single screen. I designed it as a state machine — Draft, Pending, Approved, 1st Resolving, Dispute, 2nd Resolving, Settled — with a parallel operator-termination path that refunds the pool and fees. The shape came from a publishing-management workflow I had built years earlier for a newsroom: draft, review, approve, publish.
Market lifecycle state machine
The event state machine — from draft to settled, with a dispute branch and an operator-termination path.

Disputes cost something

A losing participant can appeal, but must submit a reason and evidence and pay a fee that is only refunded if the appeal succeeds. It keeps the review queue honest.

Nothing pays out until everything settles

A reporting period and a dispute period sit in front of the claim step, so a result can never flip after someone has already claimed against it. The timing rules remove the edge case instead of handling it.
Lifecycle as seen by the bettor
How the lifecycle surfaces to the bettor — awaiting result, outcome announced, then settlement and claim.

Operations Console

Create Market, an approval queue organized by lifecycle state, and a market list with pool and volume stats — all built on the parent company’s existing back-office components. I did not style it; the design work was the flow, the state taxonomy, the fields, and the operator actions. The ops team uses it to create and approve every event on the platform.
Control panel — market lifecycle flow
The control-panel flow — creating a market and moving it through the approval queue and every lifecycle state.

Identity & System

No one on the team had a visual direction, so I designed the logo. It comes from prediction as an eye looking forward: the X and O read as an eye in profile, and the X itself is two strokes — thick to thin, one rising, one falling — for sharp upward and downward moves. Green stands for the upside, and the green-on-black X carries over from the site the founder had put up in 2024, before the team formed — the one reference point I built the identity from. Black over white keeps attention on the task and the imagery, and the tone leans tech-forward and low-friction rather than heavy financial.

Underneath, I set up the design system first — type, colour, and a strict 4-point grid for spacing and numeric units — then grew components as I built screens. Multi-language content was handled with Figma variables, so localized screens could be produced and handed off directly.
Founder's 2024 site
Before · 2024
The founder’s site, made before the team formed — a green-on-black X and wordmark.
PredicXion landing page
After
The landing page I built from it — the same identity, resolved into a full product.
Figma variables — primitive tokensFigma variables — semantic colourFigma variables — localized copy
Primitive tokens, semantic colour, and every string driven by Figma variables — so themes and languages switch without redrawing a screen.

Responsive

The same components reflow to a mobile-web layout — every screen has one, built from the desktop system rather than redrawn.
Home, mobile webEvent market, mobile webEvent detail, mobile webTrade form, mobile webDashboard, mobile webAssets, mobile web

Campaign Pages

After launch I kept building in-product campaign pages to try to pull players in. Two examples: a streak-and-activity rewards campaign — trade daily, hold a streak, stay active weekly, each tier paying out in the platform token — and a dual leaderboard that ranks the week’s top inviters and top traders. Neither is a static promo: both bind to each user’s live state (today’s volume, current streak, weekly active days, rank) and carry their own reward-history tables, an FAQ, and a shared anti-abuse rules template. I designed them end to end and handed the specs to engineering.

They ran, but did not move the numbers — the same distribution gap that limited the product limited anything built on top of it.
Trade & Win streak rewards campaign page
Dual Leaderboard Challenge campaign page
Two post-launch campaigns — a streak / weekly-activity reward ladder, and a dual inviter-and-trader leaderboard with a live podium. Click either to see the full page.

Outcome

The platform shipped about two weeks past target and has run reliably for around a year. Adoption stayed low: with a functional MVP in place, the gap was go-to-market rather than the build. It was later rebranded and reskinned as Nova Market; the architecture, flows, and logic are still the ones from this project.