Documentation

Stocks Bank Docs

Everything the contracts actually do, in plain language. No marketing copy: if something here sounds like a risk, it is one.

What is Stocks Bank

Stocks Bank is two products sharing one treasury. The launchpad lets anyone launch a token that trades against AVAX from the first block, with a locked liquidity curve and an anti-snipe cap. Half of every launch's trading fees flow into SB, a fixed-supply token with an hourly rebase funded entirely by those fees and a redeemable floor value that only ever moves with real protocol revenue.

Nobody owns Stocks Bank. The launchpad factory has no admin function beyond registering new quote assets at genesis. SBLauncher, the contract that creates every SB sub-contract, has no external function at all besides its own constructor, verified on-chain (see Contracts). Once deployed, nothing here can be paused, upgraded, or rescued by anyone, including the team.

How the launchpad works

Every token launches on a bonding curve priced in the pool's quote asset (AVAX today). The curve starts at a $10,000 fully-diluted valuation and graduates to a real, freely-tradable Uniswap V3 position once the pool reaches ~$80,000 FDV, an 8x curve, calibrated so the creator and early buyers absorb the thin-liquidity risk, not the market that arrives after graduation.

  • 1% trading fee on every swap while the token is on the curve, split 50/50 between the token's creator and the Stocks Bank treasury, the treasury half is what funds SB's rebase (see Treasury & fee flow).
  • Liquidity is locked forever. The LP position that seeds the curve is held by the factory contract itself. There is no unlock function, no rug path, for any token launched here.
  • Anti-snipe cap: for the first 5 minutes after launch, no single buy can exceed 0.5% of supply. This is enforced per-transaction on-chain, not by a bot or a delay.
  • Creator exemption: the anti-snipe cap does not apply to the token's own creator, by design, so a creator can build their own initial position without the cap fighting them. It applies to everyone else.
  • 80/20 liquidity split: 80% of the curve's token supply seeds the primary bonding position; the remaining 20% seeds a continuation position that only activates after graduation, so liquidity stays deep on both sides of that transition instead of thinning out right when real volume arrives.

How SB works

SB has a fixed supply of 100M tokens, minted once, at deployment. There is no mint function anywhere in the contracts, not hidden behind a role, not left for later. What exists on day one is all that will ever exist.

  • 20M SB seeds SB's own locked liquidity position (same locked-forever design as every launchpad token).
  • 80M SB is the fixed reward reserve that funds every rebase. When it's empty, rebases stop, permanently. There is no refill function.
  • 1,000 SB was staked once, at genesis, to a dead address, a permanent floor on total staked supply that closes a first-staker griefing path. It can never be unstaked.

Staked SB (sSB) rebases roughly ×2 per day, in token count, an 2.93% increase to every staker's balance, once per hour, compounding. This is a token-count rate, not a return: it says nothing about SB's price, which is set entirely by the open market. Rebases are paid out of the fixed reward reserve above. When it runs out, growth stops for everyone, non-stakers and stakers alike.

Staking has a 2-hour withdrawal lock from your last stake, it blocks unstaking and redeeming only; a deposit counts toward rebases immediately. sSB itself is non-transferable, it cannot be sent, sold, or used as collateral anywhere; the only way out is to unstake back to SB or redeem.

Redeeming burns sSB for a pro-rata share of the treasury's USDC balance, literally your share × treasury balance, minus a 5% team fee taken from the payout, sent to the address disclosed in Team fee disclosure. The redeem value per sSB goes down when new stakers join, and goes up when protocol fees come in.

How the APY is calculated

The APY figure shown on the landing page, the dashboard, and the stake page is the per-epoch rebase rate, Staking.RATE_WAD(), compounded for a full year:

APY = (1 + r)^8760 − 1, where r is the real on-chain rate (2.9300% per hour right now) and 8760 is the number of one-hour epochs in a year (365 × 24). It is computed in BigInt, the same exponentiation-by-squaring technique Staking.sol's own _compoundSaturating uses internally, never a hardcoded number, and never a float (a float would silently lose precision past its 15th digit; this result has over a hundred).

As of right now, that works out to 7,515,336,264,874,405,059,955,731,842,433,753,969,828,250,295,719,844,890,296,257,431,449,611,823,705,582,683,065,886,753,854,668,456,324,341,081,198%. This number is astronomical by construction. It is what ×2/day, compounded for 365 days straight, actually is, and it is exactly why the line under every APY display says what it says: the reserve cannot pay it.

Worked example, 1,000 SB staked today:

  • After 24 hours (≈×2, the real design rate): ~2,000.00 SB.
  • After 7 days (≈×128, i.e. 27): ~128,000.00 SB.

The fixed reward reserve is what actually bounds this. Every rebase pays out of a reserve that was seeded once, at deployment, and never refilled (see How SB works). The 8,760-epoch APY figure assumes the rate keeps compounding for a full year uninterrupted. It never does, because the reserve empties in a small fraction of that time. The number above is a rate description, not a promise of what any balance will actually reach.

Treasury and fee flow

Every launchpad token's trading fees are claimed in whatever asset they traded in (AVAX-derived, today). FeeProcessor converts the treasury's half into USDC and forwards it to SB's Treasury contract. USDC is what actually backs the redeem value stakers see.

That conversion only happens against a TWAP-checked price, a genuinely fresh on-chain time-weighted average, not spot, and reverts if the pool's price deviates too far from that average. A pool with no real, organic trading history simply doesn't convert yet; fees sit safely until it does. This is a deliberate manipulation guard, not a bug: it means a newly-launched token's fees can take a while to reach the treasury, and that's by design.

Risks

×2 / day is the sSB rebase rate in token count, not a return on your money. Rebases are paid from a fixed reward reserve and stop when it is empty. They dilute non-stakers. SB is a high-risk game: its price can fall faster than your balance grows. Your floor is the redeem value shown above, which starts at zero and grows only with protocol fees.

Said plainly, beyond that mandatory notice: SB's rebase dilutes everyone who isn't staked, a non-staker's share of total supply shrinks every hour rebases run. SB's price can fall faster than your staked balance grows, a ×2/day token count is not a ×2/day dollar value, and the market sets price independently of the rebase schedule. The redeem floor starts at exactly zero and only ever grows from real trading fees reaching the treasury. There is no seed capital under it at launch.

Nobody can step in if something goes wrong. No owner, no admin key, no pause switch, no upgrade path. The contracts that make this trustless also make it un-rescuable. A bug that reaches mainnet stays exactly as deployed. This is the direct cost of the same design that guarantees nobody can rug the locked liquidity or mint extra supply.

Stock quote tokens are bridged representations of Robinhood Chain stock tokens, issued and controlled by a third-party bridge, not by Stocks Bank. If that bridge is paused, reconfigured or drained, tokens paired against them become unsellable for the stock. Their LP stays locked and there is no recourse.

Contracts

Every address below is read live from this deployment's own config. Nothing here is typed in by hand. Each contract is submitted for source verification as part of the deploy itself; click through to confirm the verified-source badge on its own Snowtrace page directly, since verification can take a few minutes to finish processing after a fresh deploy.

Stock quote tokens are bridged representations of Robinhood Chain stock tokens, issued and controlled by a third-party bridge, not by Stocks Bank. If that bridge is paused, reconfigured or drained, tokens paired against them become unsellable for the stock. Their LP stays locked and there is no recourse.

Independent audit reports, published in full:

FAQ

Can the team mint more SB?

No. There is no mint function in the deployed contract, for anyone, ever.

Can liquidity be pulled?

No. Every locked LP position, SB's and every launchpad token's, is held by its factory contract with no unlock function.

What happens when the reward reserve runs out?

Rebases stop permanently. Staked SB keeps its balance and stays redeemable for its share of the treasury; it just stops growing.

Is sSB the same as SB?

No. sSB represents a staked position and cannot be transferred, sold, or moved. Unstake back to SB (after the withdrawal lock) to get a transferable token again, or redeem directly for USDC.

Who can launch a token?

Anyone. Launching costs gas plus, optionally, an initial dev buy. There is no allowlist or approval step.

What backs the redeem value?

Real USDC sitting in the Treasury contract, sourced entirely from launchpad trading fees, never newly minted SB, never team capital.

Is Stocks Bank affiliated with Robinhood or the companies behind SPY/NVDA/AAPL?

No. Stocks Bank only registers these tokens as launchpad quote assets. It does not issue, bridge, custody, or guarantee any of them. See Risks.

Can I lose access to a stock-paired token if the bridge breaks?

Yes, see Risks and Contracts. A stock token itself could become unsellable for the underlying stock. The launchpad pool it trades in is unaffected as a mechanism, but a token nobody can meaningfully price becomes effectively worthless to trade regardless.

Team fee disclosure

The team takes a flat 5% commission on every redemption, set once in the constructor, immutable, identical for every redeemer, with no discount tier or special case. The team holds no allocation of SB at launch; if the team wants SB, it buys on the open market like anyone else. The commission address is shown, live, in the Contracts section above as Redemption.teamAddress(), read it directly from the contract, not from this page.