Inspiration

Norswap started thinking about prediction market after coming accross this article that explains one of the basic mechanism of prediction market implemenation. He got thinking about how they run and how unattractive they seemed to liquidity providers (LPs). Which is particularly surprising when it is well known that sport bookmakers make money hands over fists.

The result was the idea to make profits for LPs via arbitrage. On the way, he learned more about the challenges of prediction markets (see for instance this Hasu article) — in particular, it's difficult for these markets to attract liquidity, especially outside the traditional sports/politics/finance niches.

Besides arbitrage profits, the other key idea was to make prediction markets more efficient. We only require LPs to put up their maximum loss as collateral. This makes markets massively more efficient than competitors like Augur (5x for a 50/50 odds market, +40% for a 99/1 odds market).

This also means that the risk/reward of LPing changes completely, since arbitrage profits stay constant while capital requirements go down.

What it does

The Pondering Orb lets you create prediction markets permissionlessly. Each markets asks a question and specifies a list of possible answers (e.g. Who will win the 2023 rugby world cup?). You can add liquidity to the markets, buy & sell answer tokens, and redeem your tokens once the outcome of the market is decided.

How we built it

Norwap & Rémi built the contracts with Solidity, using the Foundry toolchain. Sash built the frontend using the Svelte framework and the Material-UI & Bootstrap components libraries. Yuki created the UI & UX experience using Figma. Sam assisted us with feedback & reviews.

Challenges we ran into

We have a relatively green team, this was Sasha's first time using Svelte & Ethers.js. Rémi & Sam had troubles setting up their environments.

Accomplishments that we're proud of

It works! It's beautiful and simple to use.

What we learned

Solidity has a lot of rough edges.

What's next for The Pondering Orb

Besides "binary markets" where one answer token ends up worth 1$ and the other 0, it's also possible to have fluid markets where tokens have different payouts (as long as they still sum up to 1$). In particular this could be used to implement exciting product like "call spreads", e.g. bet on the price of ETH in the 1000$-1200$ bracket, get 1$ if price >= 1200$, 0$ if price <= 1000$, and 0.5$ if the price is exactly 1100$ (etc).

There's plenty of other use cases we'd be interested to look into, including insurance product (essentially bet on whether a protocol will be hacked).

Built With

Share this project:

Updates