SharePot

How SharePot works

SharePot is a parimutuel pool on where a US stock closes today, where the stake and the payout are the tokenized stock itself. Holders of TSLAx, NVDAx, SPYx or SpaceX tokens hedge a bad day, or add upside on a good one, without ever selling. The same pools run on pre-IPO tokens and on the day's most-traded Solana memes, settled on their on-chain price.

Two minutes: connect, get test stocks, stake on Tesla, and see a settled market with its price evidence checked against the on-chain hash. Recorded on devnet.

Why bet with the stock itself

To protect a position against one bad day, or to lean into a good one, a holder of tokenized stock has to sell and buy back: spreads, slippage, and time out of the stock. SharePot lets the shares do the work instead.

A market, step by step

  1. One pool per stock per US trading session. The market for session S opens at the previous session's opening bell and stops taking bets at S's opening bell (09:30 New York). There is always exactly one pool per stock you can bet into, around the clock.
  2. Four ranges for the close-to-close move: big drop, small drop, small gain, big gain. The cuts sit near each stock's quartiles over the last 12 weeks (TSLA −1.75 % / 0 / +2 %, NVDA −1.5 % / 0 / +2.25 %, SPY −0.5 % / 0 / +0.5 %), so every range starts out roughly equally likely. Odds then move with the pools.
  3. Betting closes before any of the answer exists. Bets stop at the opening bell of the session being predicted.
  4. Settles on the official close of S against the official close of the session before, as a total-return move (dividends added back, splits neutral).
  5. Payouts are pushed to wallets by a permissionless crank after the dispute window. Nobody has to claim.

The same stock often trades on Solana as several tokens: SpaceX as SPCXx (xStocks), SPCX (Backpack Securities) and SPCXon (Ondo Global Markets); Tesla as TSLAx and TSLAon. The tokens are not interchangeable, so each token gets its own pool. All pools of a stock ask the same question and resolve on the same close; each is staked and paid in its own token.

How the money works

Leaderboard points

Every settled market scores the wallets that were in it:

points = shares staked × the official close the market settled on

Settlement you can check

  1. The server never holds funds. Stakes sit in a program-owned vault per market; only the program's payout math can move them.
  2. The resolver submits a number, not a winner. After the close it reads the official closing price, checks that the bar is final and that the previous bar is the calendar's previous session, and cross-checks the close against Nasdaq's official close to the cent. Any failed check holds the market for the next run instead of posting a wrong result; if the two sources still put the day in different ranges after 24 hours, the market refunds every stake.
  3. Evidence on-chain. The move is proposed together with the sha256 of the raw price response. The winning range is derived on-chain from the market's thresholds.
  4. Anyone can verify. The raw response is published byte for byte; the market page re-hashes it in your browser and shows whether it matches the hash stored on-chain.
  5. Six-hour dispute window. A proposal can be disputed with a wallet-signed message; the operator is paged and can re-propose or void. After the window anyone can finalize.

Trust model, stated plainly

Built for xStocks and friends

Pre-IPO tokens and memes: the same pool, an on-chain close

The stock pools settle on an exchange's official close. Two more token classes run on the same program, with one difference: there is no exchange, so the day's close is read on-chain.

Try it on devnet

  1. Connect Phantom, Solflare or Backpack set to devnet, or pick Test wallet (browser) from the Connect menu.
  2. Open the faucet: mock tokens of every pool open today plus a little SOL, once per wallet per day.
  3. Pick a market, choose a range, stake, sign. After the close, check My bets: payouts arrive on their own.

Source, program and tests: github.com/sharepotxyz/sharepot. Program id 8TzdVXpqa52o3fBvYynSxHTWP4zuWfZmTvSkpdLT9rWW. Built for the Solana Foundation Stocklana hackathon, September 2026.

Automation: the API and the program

A bot needs three things: which pools are open, a way to bet, and the results. The first and the third are a public read API, no key, open CORS. The second is the on-chain program, signed by your own wallet: there is no server-side bet endpoint, so nobody can bet with your tokens but you.

A complete example in 80 lines that lists the open pools, places a bet and reads the results: examples/automate.mjs. On devnet, POST /api/faucet with {"address"} hands a wallet mock shares of every open pool once a day, so a bot can be tested end to end for free. Market data is cached for 15 seconds; the faucet, disputes and feedback are limited per address and per day.

FAQ

Is this an order book?
No. It is a parimutuel pool: payouts depend on the final pool sizes, and the quote you see while betting is what you would get if the pools stayed as they are.
What if the stock does not trade that day?
An unscheduled closure, a full-session halt, a spin-off or a delisting merger voids the market and refunds every stake in full.
Why not settle on an on-chain oracle?
These markets are defined on the official closing print, which equity oracles do not carry (they report the last trade before the bell). The official close is public and checkable, so it is published with its hash instead.
Do I need to claim?
No. A permissionless crank pays every position after the dispute window and closes it; the rent goes back to you.
Is there real money on devnet?
No. The tokens here are mock copies of the real ones with the same settings and no value.