🎯Prediction Market

What is a prediction market? It's a platform where people can bet money on the outcome of a future event (for example: "Will team X win the championship?").

The price of each bet reflects the probability the market assigns to that outcome. If you bet on the correct result, you win. If you bet on the wrong one, you lose what you put in.


📊 PART 1: What system do we use to make everything work?

Why do we need a "system"?

When someone wants to bet on a prediction market, someone has to be on the other side to accept that bet. In traditional markets (like the stock exchange), that "someone" is other users. But if the platform is new and has few users, nobody could bet because there would be nobody on the other side.

To solve this, GANA uses an automatic system called an algorithmic market maker: the platform itself acts as the counterpart for all bets, using a mathematical formula to set fair prices at all times.


🔬 1.1 — The systems we evaluated

Before choosing how GANA works, we compared all available options:

Classic LMSR — The original system created by economist Robin Hanson in 2003. The platform sets prices automatically using a proven mathematical formula. If you bet on the correct outcome, you receive exactly $1 for each share you bought. The platform assumes a small, controlled financial risk.

Self-Funded LMSR — A variant of the above where the platform risks no money of its own. Instead, the prize winners receive comes directly from what the losers put in. The downside: the prize per share is not a fixed $1, but varies depending on how many people bet on each side.

LS-LMSR — A more advanced version where market liquidity grows automatically as more people bet. A great idea, but too complex to start with.

Virtual Liquidity + Impact Factor — A homemade system with no solid mathematical foundation. It doesn't guarantee the platform can pay winners. Discarded.

CLOB (Central Limit Order Book) — The system used by stock exchanges: one user sells, another buys. The problem: if there are few users, there are no transactions. Not viable for the start.

Pure Parimutuel — A system where the total pool is split among winners at the close of the event. Discarded because the prize you receive when betting can change if more bettors join later, which is confusing and unfair.


⚖️ 1.2 — Comparative systems table

Which system best meets the criteria that matter?

Criteria
Classic LMSR
Self-Funded LMSR
LS-LMSR
Virtual Liq.
CLOB

Mathematically sound

Platform can always pay

✅ Bounded

✅ Total

✅ Bounded

✅ Total

Risk for GANA

Small and fixed

$0

Reduced

Unlimited

$0

Works without users

Clear prize for user

Fixed $1 ✅

Variable ⚠️

Fixed $1 ✅

Fixed $1 ✅

Easy to implement

Protection against financial exploits


🏆 1.3 — The chosen system

Evaluation results:

CLOB → Discarded. Without enough users, the market doesn't work.

Virtual Liquidity → Discarded. Without mathematical guarantees, it's dangerous for the platform.

Parimutuel → Discarded. The prize changes after you've already bet, which creates distrust.

LS-LMSR → Postponed. Great idea, but too complex for the first version.

Classic LMSR → SELECTED FOR MVP. It's the simplest to understand for users ("if you win, you get $1 per share"), has controlled risk for the platform, and has been mathematically proven for over 20 years.

As a backup alternative, the Self-Funded LMSR is documented, which eliminates all financial risk for GANA in exchange for a variable prize.


📐 PART 2: The formulas that make the system work

How does the math behind GANA work?

This section explains, in simple terms, how the system calculates prices and costs for each bet. You don't need to understand the math in detail to use the platform, but it's useful for those who build it.


🧮 2.1 — System variables

Each market has the following components:

  • q_y → Total amount of "YES" shares sold so far.

  • q_n → Total amount of "NO" shares sold so far.

  • b → The liquidity parameter. The larger this number, the less the price moves with each bet. Once the market starts, this number cannot be changed.

  • C(q_y, q_n) → The cost function. Indicates how much total money the system has collected.

  • P_y, P_n → The current prices of "YES" and "NO" shares. They always add up to exactly 1 (or 100%).

  • Δq → The number of shares a user wants to buy in a single transaction (has a maximum limit).

  • f → The commission GANA charges per transaction. Recommended: 5%.

  • Δq_max → The maximum shares that can be bought in a single transaction. Recommended: 20% of b.


💡 2.2 — How is the price set?

The price of each share reflects the probability the market assigns to that outcome.

If many people bet on "YES", the price of "YES" shares goes up (because the market believes it's more likely to happen). At the same time, the price of "NO" shares goes down. Prices always add up to 1: if "YES" is at 70%, "NO" is at 30%.

Example: If the price of "YES" is $0.70, it means the market believes there's a 70% probability the event will occur. If you bet $70 on "YES" and win, you receive $100 (100 shares × $1 each).


💳 2.3 — How much does it cost to buy shares?

The cost is not simply "price × quantity".

Every time you buy shares, the price goes up a little (because your purchase moves the market). Therefore, the actual cost of your purchase is the difference between the state of the system before and after your purchase. This is fair: you pay the average price between the price before and the price after your bet.


🧾 2.4 — Total cost with commission

In addition to the cost of shares, GANA charges a commission.

Total cost = Share cost + Commission (f%)

The commission goes directly to GANA as revenue, regardless of who wins the market. It is the platform's main source of income.


💵 PART 3: Option A — Fixed $1 prize per share (Classic LMSR)


✅ 3.1 — How does the prize work?

The rule is simple and easy to understand:

  • If the outcome is YES: Each "YES" share pays exactly $1. "NO" shares pay nothing.

  • If the outcome is NO: Each "NO" share pays exactly $1. "YES" shares pay nothing.

This means that before betting, you know exactly how much you'll win if you're right.


⚠️ 3.2 — What risk does GANA take on?

In this model, GANA can lose money in some markets.

The money paid by bettors may not be enough to cover all the $1-per-share prizes. GANA covers the difference. But this risk has a mathematical ceiling: the maximum possible loss is b × ln(2).

Example with b = 1000: The maximum possible loss is $693. This only happens if EVERYONE bet on the same side and that side won (the worst imaginable case). Commissions collected reduce that loss.


📈 3.3 — When does GANA win and when does it lose?

Market balance is key:

GANA loses when: Almost everyone bet on the same outcome, and that outcome was correct. For example: 900 "YES" shares, 100 "NO" shares, and "YES" wins. GANA has to pay $900 but collected much less.

GANA wins when: Bets are relatively balanced (similar number of "YES" and "NO" shares), or when the side with fewer shares wins. More volume and more balance is better for GANA.


😊 3.4 — The big advantage: clarity for the user

"If you win, you get $1 per share" is an easy proposition to understand.

The user knows exactly how much they'll win before betting. This clarity is critical for building trust at launch.


🔄 PART 4: Option B — Proportional pool prize (Self-Funded LMSR)

The zero financial risk alternative for GANA.


🛡️ 4.1 — How does the prize work?

Instead of paying a fixed $1 per share, the total pool is split among winners.

All the money bet (minus commissions) goes into a pool. When the event is resolved, that pool is divided proportionally among everyone who bet on the correct outcome.

Simple example: If the total pool is $520 and there are 700 winning shares, each share pays $520 ÷ 700 = $0.74. If there are only 300 winning shares, each share pays $520 ÷ 300 = $1.73.


🔒 4.2 — The risk for GANA is zero

Solvency is mathematically guaranteed.

The pool is always exactly enough to pay all winners. There can be no deficit. GANA earns exclusively from commissions on each transaction.


🤔 4.3 — The downside: the prize is variable

The user doesn't know exactly how much they'll win before betting.

This is less intuitive than the "fixed $1". It requires explaining the concept of "prize proportional to the pool", which can cause confusion for new users.


📊 PART 5: Concrete examples with real numbers

Let's see how all of this works in practice.


🔢 5.1 — The bets in our example

Parameters: b = 1000, commission = 5%, binary market (YES / NO)

#
User
Bet
Shares
Cost
Commission (5%)
Total paid
YES price after

1

Ana

YES

200

$105.36

$5.27

$110.63

55.0%

2

Bruno

YES

500

$304.76

$15.24

$320.00

66.8%

3

Carlos

NO

300

$110.01

$5.50

$115.51

59.9%

Final state: 700 YES shares, 300 NO shares. Total pool: ~$520. Commissions collected: $26.01.


🏅 5.2 — What happens if YES wins?

Comparison between Option A and Option B:

OPTION A — Fixed $1 prize:

User
Paid
Receives
Gain/Loss
ROI

Ana (200 YES shares)

$110.63

$200.00

+$89.37

+81%

Bruno (500 YES shares)

$320.00

$500.00

+$180.00

+56%

Carlos (300 NO shares)

$115.51

$0.00

−$115.51

−100%

GANA

Subsidized

$26.01 fees

Loses ~$154

OPTION B — Proportional prize:

Prize per YES share = Pool ÷ 700 shares ≈ $0.74 per share

User
Paid
Receives
Gain/Loss
ROI

Ana (200 YES shares)

$110.63

$148.00

+$37.37

+34%

Bruno (500 YES shares)

$320.00

$370.00

+$50.00

+16%

Carlos (300 NO shares)

$115.51

$0.00

−$115.51

−100%

GANA

$0

$26.01 fees

+$26.01


⚡ 5.3 — Direct comparison

Which option is better and for whom?

Metric
Option A (fixed $1)
Option B (proportional)

GANA P&L if YES wins

~−$154

+$26.01

GANA P&L if NO wins

+$246

+$26.01

User ROI if correct

Higher

Lower

Risk for GANA

Controlled (max. b×ln2)

Zero always

Clarity for user

Excellent

Requires explanation

Conclusion: Option A rewards users more and is easier to understand. Option B eliminates all risk for the platform. GANA chooses Option A for the MVP due to its clarity and better user experience.


⚙️ PART 6: Operating rules that cannot be ignored

These rules protect both users and the platform.


🚦 6.1 — Maximum share limit per transaction

You can't buy as many shares as you want in a single transaction.

Each transaction has a limit: maximum 20% of parameter b per purchase.

Example: If b = 1000, you can buy at most 200 shares per transaction. If you want 500 shares, you make 3 purchases (200 + 200 + 100), paying a slightly higher price each time.

Why this limit?

  • Prevents a single large purchase from moving the price drastically (which would harm all other users).

  • Generates more transactions → more commissions → greater safety buffer for GANA.

  • Makes price changes gradual and easier to follow.


🔒 6.2 — The liquidity parameter (b) cannot be changed

Once the market has at least one trade, b is permanent.

Changing b after the market has started would be like changing the rules of the game mid-match: it would create price inconsistencies and could open arbitrage opportunities (making risk-free money by exploiting those inconsistencies), which could leave GANA insolvent.


📉 6.3 — Market balance matters (Option A only)

GANA benefits when bets are distributed between YES and NO.

When there's a similar number of shares on both sides, the collected pool is enough to cover almost all the prizes. The maximum loss (b×ln2) only occurs if absolutely everyone bet on the same side.

Strategies to encourage balance:

  • Prominently display the price of the side with fewer bets.

  • Consider incentives for the side with lower volume.

  • More transactions = more commissions = greater safety buffer.


🎛️ 6.4 — How to choose parameter b?

b controls how "deep" the market is.

b
Price movement per $100 bet
Maximum loss for GANA
Experience

b = 100

~33%

$69

Very volatile

b = 500

~9%

$347

Acceptable for MVP

b = 1,000

~5%

$693

Good

b = 5,000

~1%

$3,466

Excellent

MVP recommendation: b between 500 and 1,000.


🤝 6.5 — Shares are held until the outcome

Once you buy shares, you hold them until the event is resolved.

In the first version there's no option to sell early. This can be added in a future phase: sell shares before the outcome in exchange for receiving the current market value (with commission).


💰 PART 7: How does GANA make money?

The platform's business model.


📥 7.1 — Revenue sources

GANA has two ways to make money:

Transaction commission (primary): A percentage is charged on each share purchase. Recommended: between 3% and 5%. This commission is always charged, regardless of who wins.

Settlement commission (optional): An additional 2% on each user's net profit when collecting their prize. Adds revenue but also complexity.


📊 7.2 — Revenue projection

How much can GANA earn based on betting volume?

Total volume bet
3% fee
5% fee
5% fee + 2% settlement

$1,000

$30

$50

~$60

$5,000

$150

$250

~$300

$10,000

$300

$500

~$600

$50,000

$1,500

$2,500

~$3,000


🏗️ PART 8: How is the system built?

The technical implementation flow.


🔄 8.1 — The lifecycle of a market

Every market goes through 4 stages:

1. CREATION: GANA creates the market defining b, the commission, and the share limit per transaction. Initial state: 0 shares on both sides, YES price = 50%, NO price = 50%.

2. TRADING: Users buy shares (respecting the per-transaction limit). Each purchase updates the system state and recalculates prices.

3. RESOLUTION: An oracle (reliable data source) declares what the actual result of the event was.

4. SETTLEMENT: Prizes are paid out. Option A: $1 per winning share. Option B: the pool is split proportionally.


💻 8.2 — Simplified pseudocode

How the system works internally:

To buy shares:

  1. Verify the quantity doesn't exceed the per-transaction limit.

  2. Calculate the purchase cost using the cost function.

  3. Calculate and charge the commission.

  4. Update the market state.

  5. Record the transaction.

To pay prizes (Option A):

  1. If YES won: pay $1 for each YES share.

  2. If NO won: pay $1 for each NO share.

  3. The difference between the pool and prizes is absorbed by GANA (covered by accumulated commissions).

To pay prizes (Option B):

  1. Divide the total pool by the number of winning shares.

  2. Pay that amount per winning share.

  3. The pool reaches $0 (everything distributed).


🗃️ 8.3 — What data needs to be stored?

The system database needs 4 main tables:

Markets: ID, name, parameters (b, commission, share limit), current share state, settlement type, market status, result, dates.

Trades: ID, market, user, bet side, number of shares, cost, commission, price before and after purchase, date and time.

Positions: Per user and market: how many YES and NO shares they hold, and how much they paid in total.

Settlements: Per user and market: how much they received, what their net profit was, date of receipt.


🔧 8.4 — An important technical detail: numerical stability

Very large numbers can break the system.

The LMSR mathematical formula uses exponentials that can generate extremely large numbers and cause computation errors. The standard solution is to use the log-sum-exp technique, which produces the same result but with manageable numbers. This is mandatory in production.


🧩 PART 9: Edge cases and future considerations

Boundary situations and next steps.


🎯 9.1 — What happens when the price is very high or very low?

The system has a natural self-regulation.

When the price of "YES" is at 95%, buying "YES" shares would only give a 5% return if correct. With a 5% commission, the return would be negative even if you win. This naturally discourages betting at probability extremes and stabilizes the market.


🔁 9.2 — Early share selling (for a future phase)

In the first version, shares are held until the result. But this can improve.

In a future phase, users could sell their shares before the event is resolved. They would receive the current market value (with commission). This improves the experience but adds technical complexity.


🌐 9.3 — Markets with more than two possible outcomes

The system can be extended to events with multiple outcomes.

For example: "Who will win the tournament? A, B, C, or D?" The prices of all options always add up to 1. The mathematical formula scales naturally to any number of outcomes.


🚀 9.4 — Future migration to LS-LMSR

For the MVP, a fixed b is used. In the future, b can grow with volume.

LS-LMSR allows market liquidity to increase automatically as more people bet. It would start with little liquidity (more volatile prices) and scale organically. This is the natural evolution of the system once GANA has a consolidated user base.

Last updated