Project Introduction

Beacon — signal the market, settle on-chain.

Beacon is a binary prediction market built natively on Circle Arc. Trade simple Yes/No questions with USDC — the chain's own gas token — and let a trusted oracle settle the outcome. No order books, no leverage, no complexity.

What it is

Prediction markets turn beliefs into prices. On Beacon, every market is a single binary question — “Will X happen by time T?” — with two outcomes, YES and NO. The market price is the crowd's honest estimate of the probability, expressed in the price of a YES share.

Beacon deliberately keeps the mechanics minimal: a fixed-price capped AMM where 1 USDC = 1 share. It is not the most capital-efficient market, but it is correct, transparent, and easy to reason about.

How it works

  1. 1

    Buy a side

    Send USDC to mint YES or NO shares — one share per USDC, minus a small fee. Your cost is collateralized in the market's pool.

  2. 2

    The oracle resolves

    At expiry, the market's oracle calls resolve(yesWins). The outcome is recorded on-chain, exactly once.

  3. 3

    Winners split the pool

    The winning side redeems the entire pool pro-rata — their principal plus the losing side's collateral. Losers go to zero. Call claim() to withdraw.

Settlement math

pot = yesPool + noPool your_payout = your_shares × pot / winning_pool implied_yes = yesPool / pot

Why Circle Arc

  • USDC is native. Gas, collateral, and payouts are all the same USDC — no token swaps or wrapped assets.
  • Sub-second finality. Trades settle instantly, no confirmations to wait for.
  • One asset, one balance. Beacon uses native value (18 decimals) end-to-end, sidestepping the 6/18-decimal footgun.

Design principles

USDC-native

Deposit, trade, and claim in USDC — the chain's gas token.

Trusted oracle

A designated resolver settles each market exactly once.

No order book

Fixed 1 USDC = 1 share. No spreads, no slippage.

On-chain auditability

Every buy, resolve, and claim is a verifiable event.

Idempotent settlement

Each run settles once; retries cannot double-pay.

Guarded money path

Owner, pause, and reentrancy protection on every rail.

Technology

Smart contracts

Foundry · Solidity ^0.8.24 · OpenZeppelin 5

MarketFactory deploys and registers markets; BinaryMarket holds pools, buy/resolve/claim.

Frontend

Next.js 15 · TypeScript · Tailwind · wagmi/viem

App Router, reactive market data, live activity feed, SPECTRAVOTE visual theme.

FAQ

What does the price mean?

The implied probability of YES equals yesPool / (yesPool + noPool). A 70% YES price means the market believes the event is 70% likely.

What is the fee?

A small bps fee is taken off each buy (default 1%) and sent to the fee recipient. The fee is the only house edge — winners split the rest.

Who resolves markets?

Each market has an oracle address. In this demo the deployer is the oracle; the architecture supports swapping in Chainlink or UMA.

Can I lose money?

Yes. If you hold the losing side, your shares are worth zero. Never risk more than you can afford to lose.

What happens if the winning side has no buyers?

Then there is nothing to redeem on that side; the pool stays in the contract. This edge case is noted in the docs.

Roadmap

  • Fixed-price capped AMM (this MVP)
  • LMSR / CPMM pricing for capital efficiency
  • Chainlink / UMA oracle integration
  • ERC-1155 share tokens & secondary transfer
  • Event-driven indexing & richer analytics