Documentation

docs_

Everything about Social Trading V1: the rules, the money, and the oracle.

Overview

Social Trading is a ten minute, two player directional duel on the SOL/USD price. Each player puts in 0.05 SOL. One picks Up, the other Down. After a verified opening price and a verified closing price, the winner gets 0.09 SOL and the protocol vault gets 0.01 SOL.

It is a fixed outcome, two player competition. There is no leverage, no liquidation, no funding payment, no spread and no orderbook slippage. The pot of the two players pays the winner in full, so nobody owes anybody unfunded profit.

Quick start

  1. Open the exchange and connect a wallet (Phantom, or a guest wallet).
  2. Add funds to your balance.
  3. Pick Up or Down and deposit the 0.05 SOL ticket. You join the matchmaking queue.
  4. When an opposite ticket is paired, the opening price is taken at the next boundary, then the 10 minute countdown starts.
  5. The result, both prices, oracle timestamps and the vault transfer are shown on the match.

Rules & parameters

NetworkSolana
Reference marketSOL/USD · price feed: Pyth Pro
Stake per player0.05 SOL = 50,000,000 lamports
Matched pot0.10 SOL
Duration600 seconds from the recorded opening observation
Winner payout0.09 SOL
Protocol fee10% of the pot = 0.01 SOL, to the SOL vault
Before a matchEach player can cancel and recover exactly 0.05 SOL
Tie or invalid resultBoth players refunded 0.05 SOL, no fee
Tie band±1 bp of the opening price (provisional)
The 10% fee is always shown before you buy a ticket. Network fees and rent are separate and never come out of your stake or payout.

Payouts & fees

For every normal match the pot is conserved:

2 × stake = winner payout + protocol fee
100,000,000 = 90,000,000 + 10,000,000 lamports

For a refund both stakes go back (100,000,000 = 50,000,000 + 50,000,000). No fee is collected for an unmatched cancellation, a tie or an invalid oracle observation.

The vault only holds SOL. V1 has no buyback, burn, staking yield or token. Naming the product PAPER does not mean a token exists.

Matching

Duel lifecycle

Every ticket follows one path. Each transition happens exactly once and is guarded against replays, double matching, double refunds and double settlement.

pairopen priceclose pricecanceltimeout / tieQueuedticket escrowedMatchedsides committedActiveopening price setSettled0.09 / 0.01 SOLCancelledfull refundRefundedtie or oracle failure

Oracle & timing

Prices come from Pyth Pro. The opening boundary t0 is set when the match is created, a few seconds in the future, and the closing boundary is t1 = t0 + 600s. Both are stored once.

The chart on the exchange is presentation only. It never decides settlement.

Results are read from one-second SOL/USDT candles in Binance's public market data. Every boundary maps to one fixed candle, so anyone can re-check a result later. A Pyth SOL/USD feed with on-chain verification is planned.

Refunds

Cancel while queuedFull 0.05 SOL back, instantly
Tie / inside tie bandBoth get 0.05 SOL, no fee
Opening price unavailableBoth get 0.05 SOL after 180s, no fee
Closing price unavailableBoth get 0.05 SOL after 180s, no fee

Each match can be settled or refunded exactly once. A second attempt is rejected by the state guard.

Verify a result

Vault policy

What goes in. Only the 10% fee of a duel that has a winner. Cancellations, ties and refunds put nothing in the vault.

What comes out. Nothing, today. This build has no way to withdraw from the vault: it only accumulates, and the balance is reconciled publicly on the Vault page. There is no automatic buyback, burn, staking payout or token.

Proposed policy, to be confirmed before any real-money launch. Withdrawals only by a multi-signature authority behind a time delay, with every withdrawal published on the Vault page before it can execute, and the vault never dropping below its rent-exempt minimum. The signers, the threshold and the delay are not decided yet.

Architecture

Web + APIOne Next.js app: landing, exchange and docs are pages of the same site
DatabasePostgres (Neon). Users, tickets, matches, ledger, vault
MatchmakerPairs opposite queued tickets. Cannot alter stake, side, result or payout address
Oracle keeperFetches the observation for a stored boundary. Cannot pick a timestamp or an unsigned price
PlannedSolana program for escrow and settlement, with the same state machine: QUEUED → MATCHED → ACTIVE → SETTLED, or CANCELLED / REFUNDED

Risks & limits

FAQ

Is this trading? No position is opened and no SOL is swapped. The SOL/USD feed only decides who wins.

Why is the fee 10%? It is the fixed protocol fee on the pot. It is shown before every ticket purchase.

Can I lose more than 0.05 SOL? No. There is no leverage or liquidation. The stake is the maximum loss.

What if the opponent never shows up? You stay queued and can cancel for a full refund.