How OpenBell works
OpenBell turns the opening print into a fair, shared settlement event instead of a race.
One standing book per stock
Every tokenized stock has a single book quoted in USDC, no matter which issuer minted the token. xStocks, Ondo, Backpack and PreStocks all settle the same way.
Buyers rest a bid by depositing USDC. Sellers rest an ask by depositing shares. There is no price to set: everyone trades at the next official print.
Settlement on every print
When the oracle publishes a new price, the book settles a round. Buyers pay the print plus a small premium; sellers receive that same premium-adjusted price.
The smaller side of the book fills completely and the larger side fills pro-rata, so nobody is picked over anybody else. Whatever does not fill stays resting for the next print.
Fills are pushed to you
You do not need to come back and claim. Once a round is recorded, delivery sends shares to buyers and USDC to sellers directly, into the wallet that placed the order.
The cancel lock
An order can only be cancelled after at least one print has passed since it was placed. That stops anyone from watching a price tick in and pulling their order a moment before it settles.
Cancelling returns everything still resting: unfilled USDC for a bid, unfilled shares for an ask.
The 30-minute house backstop
If an order sits unfilled for longer than the book's backstop window (30 minutes by default), the house may fill it itself at the public oracle price.
The backstop only ever fills at the same price the book would have used, so it cannot be used to take a better deal than the print.
Premium
Each book carries a premium in basis points (25 bps by default). Buyers pay it and sellers receive it. It is the incentive for supplying shares into the book rather than sitting out.
GO-LIVE CHECKLIST
- [ ] a. Upgrade the Pyth plan to include equities, then replace the PYTH_API_KEY secret
- [ ] b. bun run deploy:devnet on the owner's machine
- [ ] c. bun run golive
- [ ] d. Place the treasury wallet file, run bun run bell:market, then the buyback
SEQUENCE OF OPERATION
Every market open is a first print. OpenBell fills you at that price with no slippage.
- 1. A market is created once: ticker, stock mint, oracle feed, underwriter fee.
- 2. A session opens for the current gap: daily open, weekend, halt resume, or the first listing.
- 3. During the window, buyers commit USDC and underwriters commit stock. State: COMMITTING.
- 4. The window closes at the open. State: AWAITING PRINT.
- 5. The first oracle print after the window start settles the session. The smaller side fills in full, the larger side fills pro-rata.
- 6. The next session opens immediately for the next gap. Anything unfilled, or anything in an expired session, withdraws untouched.
Tools
Look up any price feed, or browse every listed stock and the state of its feed.
The $BELL flywheel
OpenBell is built around one principle: the people who fund fills eat the most. A stock token needs USDC sitting in its backstop vault for "fill now" and guaranteed fills to exist at all. Everything below points revenue at those depositors first, and gives the token a reason to exist on top of them rather than instead of them.
Where the money comes from. Every premium splits on-chain: 59% to the seller, 15% to the integrator that routed the order, 1% to whoever landed the settle transaction, 25% to the treasury. Every fill-now spread pays 75% to the vault that took the trade and 25% to the treasury. Vault LPs are therefore earning before the treasury is even split: they keep the seller's share on every fill they backstop and most of every fill-now spread.
Where the treasury goes.
| Share | Recipient | Why |
|---|---|---|
| 60% | Vault LPs, weighted by boost | They make fills possible |
| 25% | $BELL stakers, via buyback-and-distribute | Holding is rewarded; staking is rewarded more |
| 15% | Protocol operations | Audits, keeper infrastructure, integrations |
Boost. A vault position earns at 1x with no $BELL staked. Staking $BELL against your USDC raises the multiplier, up to 2.5x when staked $BELL matches your deposit at the protocol's reference ratio. The token is bought by exactly the people the system needs, in proportion to the capital they have committed. A wallet holding $BELL with no USDC in a vault earns nothing from the LP stream; it gets the buyback tailwind and nothing else.
Priority fills. At every print, bids from stakers are filled before regular bids. Queue position is the one benefit money alone cannot replicate.
Who ends up ahead, in order: a vault LP who also stakes $BELL; a vault LP who doesn't; a $BELL staker with no USDC deposited; a passive $BELL holder. That is the order of how much each one makes the product work, and it is intentional.
The $BELL transfer tax. $BELL is a Token-2022 mint with a 2% transfer fee. Every transfer of the token, buys and sells on any venue included, withholds 2% at the token level; there is no way to route around it and no venue that is exempt. Transfers into and out of the staking contract and the treasury are the only exemptions, so participating in the protocol is never taxed. Withheld fees are harvested by the keeper into the treasury and used for one thing only: buying $BELL on the open market. Purchased tokens are distributed to stakers. Combined with the 25% treasury share of premiums, this gives $BELL two independent revenue streams: one from stock trading, one from its own trading.
The savings ledger. Every fill records the pool price at that moment next to the print it settled at. The difference, summed, is published as a running total and as a leaderboard by integrator.
The loop: more listings → more books → more premium and fill-now spread → deeper vault yield → more USDC in vaults → more $BELL staked to boost it → tighter guaranteed fills → more order flow.
Security and bug bounty
Security is handled in the open. Report anything you find privately to security@openbell.guru, and please do not disclose it publicly first.
Our own pre-audit review, with every finding and what has been fixed, is on the security review page.
Building on top of OpenBell? See the integration guide.