Docs · Bobber on Solana

How the line works.

Bobber runs on Solana with xStocks and USDC. There is no custom program: every cast, bell and payout is an ordinary Solana transaction with a short memo, and the state of every line is a replay of those memos that anyone can check. This page explains every rule, in plain words, with the live numbers.

01 What Bobber is

A coupon for patience.

Bobber is a barrier coupon line on tokenized stocks. You cast an xStock (SPYx, AAPLx, NVDAx, TSLAx, HOODx and 30 more) or USDC as bait. The line then waits for four NYSE closing bells. At every bell where the price is at or above 95% of your cast price, the line catches a coupon in USDC. After four bells you reel in: your bait back whole, plus everything it caught.

Your bait is never swapped, lent or pledged. Each line's bait sits in its own escrow account on Solana, which you can open on Solscan at any moment, and comes back whole at any stage, with no fee. Coupons come only from USDC already in the Reservoir, and a line opens only if its worst case is set aside first.

Bobber is not a yield promise. A stage that misses pays nothing. Your stock token keeps moving with the market the whole time, exactly as it would in your wallet.

02 A season

Four bells, four stages.

1 · Ripplefirst bell after the cast
2 · Nibblesecond bell
3 · Bitethird bell
4 · Hookedseason over

A season is four closing bells: NYSE closes, written on chain by the keeper. When you cast, the keeper records the cast price of your bait on chain: the live share price during the session (Nasdaq and Yahoo must agree within 0.75%), or the last official close outside it, times the xStock's multiplier. The barrier is 95% of the cast price.

At every bell the keeper writes the official close of every species. For each line:

  • Holds: close ≥ barrier. The stage catches the coupon, 0.25% of your bait value in USDC, or +50% more if you chummed before that bell.
  • Misses: close < barrier. The stage catches nothing and takes nothing. Your bait is untouched.

A bell counts for your line only once the line has soaked for at least 16 hours: cast before about midnight ET for the next 16:00 close to count. Weekends and NYSE holidays don't ring; early closes (13:00 ET) do.

USDC bait grows against SPY. USDC is valued at face, so its barrier is set on SPY: a USDC line's stage holds while SPY closes at or above 95% of SPY's price at your cast.

Example · USDC

Bait
1,000 USDC
Per held bell
2.50 USDC
Chummed bell
3.75 USDC
Max per season
15.00 USDC

Four held, chummed bells: 4 × 3.75. Four held bells without chum: 10.00.

Example · AAPLx

Bait
3 AAPLx at $341.45
Bait value
1,024.35 USDC
Barrier (95%)
$324.38
Per held bell
2.56 USDC

Prices are kept to six decimals of a dollar per whole token, and every USDC amount is rounded down.

03 Chum

Chum the water.

Chumming marks the next bell of your line. If that bell holds, it pays the coupon plus 50%. If it misses, it pays nothing, like any miss.

Chumming costs only the Solana network fee: you sign a memo, nothing moves. It covers one bell at a time: after that bell rings you can chum the following one. The Reservoir has already reserved the chummed amount for every stage, so a chum never fails for lack of USDC.

04 Reel in & Recast

After the fourth bell.

Once four stages are counted the season is over and you choose:

  • Reel in: your bait comes back whole from its escrow, the escrow's account rent comes back to you, and everything the line caught is paid in USDC, in one transaction. Works even while casting is paused.
  • Recast: a new season starts at today's price. USDC bait compounds: the catch is added to the bait in its escrow. Stock bait pays its catch out in USDC first, then the same tokens fish again with a new cast price and barrier.

A recast needs the Reservoir to cover the new season's worst case, just like a fresh cast. When it can't, the keeper reels the line in instead: bait back whole, catch paid. Nothing is lost.

05 Cut line

Leave any time.

Cutting ends a line at any stage. Your bait comes back whole, whatever you caught so far is paid in USDC, and there is no fee. The stages left in the season are simply not observed.

Cut line works even while casting is paused. You sign a short request; the keeper returns the bait from the escrow, usually within seconds.

06 The Reservoir

Only what is already there.

Bait and coupons never mix:

Bait

Each line's bait lives in its own escrow token account. It only ever leaves to the angler who cast it.

Reserved USDC

The worst case of every open line: four chummed coupons, 1.5% of bait value, set aside the moment the cast is recorded.

Free USDC

Whatever sits in the Reservoir's USDC account beyond the reserve. New lines can only use this.

The reserve rule. A line opens only if free USDC covers its worst case, which stays reserved until the line closes. So a coupon that is caught is always there to pay. If free USDC is short, the cast is refused and the bait is sent straight back.

Stocking is open. Anyone can add coupons: send USDC to the Reservoir's USDC account. It is not bait and leaves only as coupons, weigh-in prizes, or the operator's withdrawal of free balance.

07 Prices & bells

The exchange decides what.

Bobber uses the official share price of each xStock's underlying stock or ETF, times the token's multiplier (shares per token, kept in the Token-2022 mint). No oracle key, no single source:

  • Bells use the official close. A few minutes after each NYSE close the keeper reads the close of every species from Nasdaq and from Yahoo Finance. They must agree within 0.3%. If a symbol has no agreed close within the first hour, that bell is skipped for it, never counted as a miss.
  • Every price goes on chain. A bell is a memo listing the price of every species (bb1|L|…), signed by the Reservoir. A cast price is a memo too (bb1|O|…). You can check each one against any market data afterwards.
  • One bell per close. Bells are at least 12 hours apart, and a close older than four days is never rung late.
  • Soaking. A bell counts for a line only if it closes at least 16 hours after the cast.
Species · xStock mints · last price
SpeciesMintBarrier onPrice nowDecimals
Reading prices…

08 Protocol bb1

No program, read the memos.

Reservoirreading…

Every Bobber transaction touches the Reservoir address and carries an SPL Memo that starts with bb1. Anglers sign their own requests; the Reservoir key signs the keeper's records. Replaying them in order gives the exact state of every line: the site does it, and so can you.

Live parameters

Reading…

ParameterValueMeaning

Memos

Angler signs

C · cast
bb1|C|SYM|nonce|escrow, in the same transaction that moves the bait into the line's escrow.
H · chum
bb1|H|escrow: +50% on the next bell if it holds.
R · reel in
bb1|R|escrow, after four stages.
A · recast
bb1|A|escrow, after four stages.
K · cut
bb1|K|escrow, any stage.

Reservoir signs

O · open
Cast price, bait value and reserve of a new line.
X · refused
Bait sent straight back, with the reason (too small, no cover, no price, paused).
L · bell
Bell number, close time and the official close of every species.
B · bait back
Bait returned, escrow closed, catch paid: after a reel-in or a cut.
N · new season
A recast: catch paid (or compounded), new cast price and reserve.

Anyone can check

Escrows
Every line's bait sits in its own account. Open the line's address on Solscan.
Replay
The keeper's own replay flags any record that breaks the rules; the count is shown below.
Reservoir USDC
The coupon balance is a plain token account.

Refusals, in plain words

ReasonWhat it means

09 The keeper

What you are trusting.

Bobber has no on-chain program. That keeps it cheap and simple, and it means the rules are enforced by a keeper: a service that holds the Reservoir key and the key that derives every escrow. Be clear about what that means:

  • The keeper can move the bait in escrows. Code does not stop it. What stops it is that every movement is public, every line is a public replay, and any record that breaks the rules is visible to everyone at once.
  • The keeper decides prices, in public. It cannot hide a price: every cast price and every close is written on chain, where it can be checked against the market.
  • If the keeper stops, no bells ring and requests wait. Your bait stays in its escrow; it cannot be spent by anyone else, and it comes back when the keeper answers again.
  • No admin can change your terms. Barrier, coupon, chum bonus and soak are written into the protocol; your cast price and reserve are fixed in your line's open record.

10 Risks

Read this first.

  1. Your bait moves with the market. A tokenized stock can fall far below the barrier. Bobber returns the same number of tokens you cast, not their value at cast time.
  2. Custody by a keeper. There is no program: the keeper holds the keys to every escrow. If the keeper or its keys fail or are compromised, bait could be delayed or lost. See The keeper.
  3. The issuer can act on the token. xStocks are issued by Backed. The issuer can pause, freeze or change the token (for example its multiplier after a corporate action). Bobber reads the multiplier at every price.
  4. Coupons exist only while the Reservoir is stocked. There is no promised rate. When free USDC runs low, new lines are refused; open lines keep their reserved coupons.
  5. Prices come from public market data. If Nasdaq and Yahoo disagree or are unavailable, bells are skipped for those symbols and casts wait.
  6. Unaudited software. Bugs are possible. Only cast what you can afford to have stuck or lost.
  7. Non-US persons only. xStocks are not offered to US persons. Check the rules where you live.
  8. Not investment advice. Bobber is software. It is not a bank, broker or adviser.

11 Glossary

Words on the dock.

Angler
Anyone with a line in the water.
Bait
The xStock or USDC you cast. Returned whole.
Bait value
Bait × cast price, in USDC. Coupons are a share of it.
Barrier
95% of the cast price. At or above it, a stage holds.
Bell
An NYSE close written on chain.
Cast
Opening a line.
Catch
USDC a line has earned so far.
Chum
+50% on the next bell if it holds.
Coupon
0.25% of bait value, caught for each stage that holds.
Cut line
Leaving early, no fee.
Escrow
The token account that holds one line's bait.
Keeper
The service that records casts, rings bells and pays out, all in public memos.
Recast
Starting a new season with the same bait.
Reel in
Ending a full season: bait back, catch paid.
Reservoir
The Solana address that holds coupon USDC and signs every keeper record.
Season
Four counted bells: Ripple, Nibble, Bite, Hooked.
Soak
How long a line must be in the water before a bell can count for it: 16 hours, so overnight.
Weigh-in
The leaderboard, computed from the replay of every line.