The FloorStreet ladder: garage to skyscraper at night
10,000 Buildings · in partnership with Robinhood Chain & Falcon Finance

From Garageto Skyscraper

Every Building starts as a garage. Merge two of the same tier and climb five floors of weight. The contract takes secondary-sale royalties, buys tokenized stocks — AAPL, NVDA, MSFT, TSLA, SPY — and streams them to active holders — every second, on-chain, no server in the loop.

0
Genesis Buildings
0
Tiers · one merge ladder
0×
Skyscraper reward weight
0%
of royalties → stock purchases
How it works

Four moves. One ladder.

01

Mint

Every Genesis Building is a Tier 1 Garage. No rarity roll — the only economic parameter is the tier. Art inside a tier is cosmetic.

02

Activate

Buy $BONDS on the market and burn it to switch your Building on. Inactive Buildings earn nothing. Any transfer switches a Building off.

03

Merge

Two Buildings of the same tier + a $BONDS burn = one Building of the next tier. Supply shrinks, weight compounds.

04

Claim stocks

The contract buys tokenized stocks with royalties and streams them by weight. Claim all assets in one transaction, whenever you like.

Merge mechanics

Two of a kind become one floor higher

Two garages merging into a small office
2 × Garage + $BONDS burn → 1 × Small Office
  • Same tier, same ladder. Two Tier-N Buildings plus a $BONDS burn produce one Tier-N+1 Building. Merge is open from the day activations open — art for all five tiers ships before mint.
  • The survivor keeps its identity. Its tokenId and active status stay. The second Building is burned forever; collection supply only goes down.
  • Nothing is lost on the way up. Both Buildings are settled before the weight changes, and the burned Building's unclaimed rewards move onto the survivor.
  • Tariffs are carved in stone. Activation, reactivation and merge prices are fixed in $BONDS at deploy — no oracle, no admin edits. A deploy-time assertion guarantees act(t) + merge(t→t+1) ≥ act(t+1): no cheap-activation arbitrage through merging.
TIER NSURVIVOR · KEEPS $BONDSID TIER NBURNED · SUPPLY −1 + BURN$BONDS · FIXED TARIFF TIER N + 1WEIGHT ↑ · UNCLAIMED CARRIED OVER10,000 → MAX 625 SKYSCRAPERS
1 · Garage
2 · Small Office
2.2×
3 · Trading Floor
4 · HQ
11.5×
5 · Skyscraper
26.5×

Weights are immutable contract constants (integer ×10: 10 / 22 / 50 / 115 / 265). Rewards split pro-rata by weight among active Buildings only.

Garage
Tier 1
Garage
corrugated steel · cast iron
Small Office
Tier 2
Small Office
2.2×
dark brick · limestone · brass door
Trading Floor
Tier 3
Trading Floor
limestone · steel · brass ticker
HQ
Tier 4
HQ
11.5×
travertine · gunmetal · gold fluting
Skyscraper
Tier 5
Skyscraper
26.5×
marble · gold · sunburst crown
Consolidation calculator

How much weight do 16 garages carry?

Drag to compare holding garages separately against merging them all the way up. Every merge burns one NFT and a fixed $BONDS tariff.

26.5× consolidated
16×
held separately
+66%
weight uplift
15
NFTs burned
1
Buildings left
Reward engine

Royalties in. Tokenized stocks out.

No treasury discretion, no dashboard promises. Revenue hits a router, the router splits, a keeper buys stocks under hard caps, and the pool streams them to active Buildings by weight. Every number here is a contract parameter, not a policy.

The keeper runs hourly, 24/7 — tokenized stocks trade on-chain around the clock, and TWAP and slippage caps insure the thin hours. Dividends or airdrops that land on stocks held in the pool are swept, permissionlessly, back into the same split path.

The reward vault streaming to buildings
RewardPool · custody + streaming accumulator

What the pool buys

Rewards are paid in tokenized U.S. equities — on-chain tokens backed 1:1 by the real shares. An example basket and its purchase weights below; the live allow-list and weights are set by the admin and shown in the dApp.

NVDAx
NVIDIA
25%
Falcon collateral
AAPLx
Apple
15%
SPYx
S&P 500 ETF
15%
Falcon collateral
MSFTx
Microsoft
10%
TSLAx
Tesla
10%
Falcon collateral
AMZNx
Amazon
10%
GOOGLx
Alphabet
10%
METAx
Meta
5%

Illustrative basket. Up to 10 assets stream at once · rebasing assets excluded · added assets warm up 24–48h · holders receive every asset pro-rata by weight, not a choice.

Revenue
ERC-2981 · Pons fee share

Secondary-sale royalties from OpenSea and the creator-fee share from $BONDS trading on Pons. Future modules plug in as adapters behind the timelock.

RoyaltyRouter
split 70 / 15 / 10 / 5

Immutable receiver. Unwraps WETH, sweeps ERC-20 royalties, splits every inflow by a timelocked vector.

PurchaseEngine
keeper · hourly · 24/7

Converts to the target stable and buys allow-listed tokenized stocks under per-tx and daily caps, minOut and optional TWAP checks. Output can only go to the pool.

RewardPool
stream 3h · rollover · 1e27

Each purchase becomes a per-second rate over a 3-hour window. Accrual is lazy math on-chain, proportional to tier weight among active Buildings. Empty pool? The clock stops — nothing leaks.

Holder
claimAll() · any time

All assets in one transaction. Unclaimed rewards travel with the NFT on sale; the buyer claims without reactivating.

70% stock purchases15% future LP10% buyback & burn5% treasury
0.000000 SPYx · simulated
Live per-second accrual · what the dApp shows for one active Skyscraper
streaming

Claim is untouchable

No role can pause claims or transfers — only stock purchases can be paused. The single outflow guard is a public 24h rate-limit with an immutable floor: an anti-hack brake, not a freeze lever.

0

No server in the math

The indexer only displays. Rates, weights and pending balances live in the contract; the site ticks locally and the contract settles at claim.

≤10

Bounded asset set

At most ten assets stream at once; the admin picks the allow-list and purchase weights, holders never choose. Added assets warm up 24–48h before the first buy; removals are instant.

× × Strategic partners

Built with Robinhood Chain and Falcon. Rewards that keep working.

FloorStreet is deployed in partnership with Robinhood Chain — Robinhood's EVM L2, where tokenized stocks trade on-chain around the clock and where every contract of the ladder lives — and developed in partnership with Falcon Finance — the universal collateralization infrastructure behind USDf, an overcollateralized synthetic dollar, and sUSDf, its yield-bearing form. Falcon backs the project, and its collateral engine already accepts tokenized stocks. That closes the loop: the stocks this contract streams to you can become liquidity and yield on Falcon without ever selling the shares.

Tokenized stocks Falcon lists as collateral today:NVDAxSPYxTSLAxMSTRxCRCLx
Tokenized stocks growing yield
Claim → collateralize → stake → compound
1 · RewardPool
claimAll()

Your accrued tokenized stocks leave the pool into your wallet. One transaction, every asset.

2 · Your wallet
xStocks · 1:1 share-backed

Each token is a digital certificate for one real share, held by regulated, segregated, bankruptcy-remote custodians (tokenized by Backed).

3 · Falcon · Mint
USDf · ≈20% overcollateralized

Deposit eligible stocks as collateral and mint USDf against them. Falcon's own example: 30 TSLAx → roughly 10,000 USDf. You keep the upside of the shares.

4 · Falcon · Stake
sUSDf · market-neutral yield

Stake USDf into sUSDf. Yield comes from Falcon's diversified strategies — cross-exchange and basis arbitrage, options, funding — on top of the stocks, not from them.

5 · Compound
restake · loop

Lock sUSDf for a fixed term to amplify returns, or route USDf back into the ladder: $BONDS, activations, merges.

≈20%
Overcollateralization for equities
10,000
USDf · Classic Mint minimum
1 : 1
xStocks backed by real shares
KYC
Verified on Falcon before minting
24 / 7
On-chain · no market hours

Yield mechanics — live and on the table

Live on Falcon

Collateralize, don't sell

Post NVDAx, SPYx or TSLAx from your claims as collateral and mint USDf. The shares stay yours — dividends, upside and all — while the dollars go to work. Falcon applies roughly 20% overcollateralization to equities.

Live on Falcon

Delta-neutral yield

sUSDf earns from a diversified set of market-neutral strategies: cross-exchange arbitrage, spot–perp basis, statistical arbitrage, an options portfolio and funding-rate farming. Yield is independent of whether your stocks go up or down.

Live on Falcon

Fixed-term restaking

Lock sUSDf for a fixed term to amplify returns above the base staking yield. Longer commitment, higher rate — set by Falcon, visible before you lock.

Holder strategy

Loop the ladder

Mint USDf against claimed stocks → buy $BONDS → activate or merge → higher weight → more stocks streamed → more collateral. It is leverage: watch Falcon's collateral ratio, because a falling stock can trigger liquidation.

Under exploration

Pooled claim-and-deposit

Falcon's Classic Mint starts at 10,000 USDf, above what a single Garage earns quickly. We are exploring a FloorStreet vault that aggregates holders' claims into one Falcon position and streams sUSDf back pro-rata. Nothing committed yet.

Under exploration

Treasury & fallback lanes

The 15% LP and 5% treasury buckets could sit in Falcon vaults behind the 48h timelock instead of idling. And if the tokenized-stock gate fails, USDf is a candidate fallback reward asset — a manifest change, not a code change.

Robinhood Chain and Falcon Finance are independent platforms; neither issues, endorses or guarantees FloorStreet rewards. Collateral eligibility, overcollateralization ratios, minimums and yields are set by Falcon, change over time, and require KYC on Falcon; Falcon's tokenized-stock products are available to institutional investors and qualified, verified retail investors in jurisdictions where tokenized equities are recognized. Nothing here is a guarantee of yield. FloorStreet's reward asset list is chosen by the collection's admin under the contract's allow-list rules and may differ from Falcon's collateral list. Figures quoted from falcon.finance as of November 2025.

A $BONDS coin burning
Every burn is bought on the open market
$BONDS

One billion, then only down

Plain ERC-20 with Permit. No transfer tax, no admin functions, no minting — ever. Supply is fixed at launch on Pons and only ever burns. There is no activation reserve: every burn is bought on the open market.

  • Activationburn
  • Reactivation after transferburn · scales with tier
  • Merge to next tierburn · fixed tariff
  • Buyback & burn (10% of revenue)burn · after DEX listing

Activation tariffs and the distribution table are finalized by the financial model before TGE. Activations open only after TGE — there is nothing to burn before the token exists.

1,000,000,000
Fixed supply · burns only
Governance & security

Immutable core. Three keys. Two days.

The core contracts are deployed once, without proxies, and never upgraded. What can change is listed below — and each change has a speed limit that matches its blast radius.

Three keys and a timelock dial
Safe 2-of-3 · TimelockController 48h
INSTANT · SAFE 2-OF-3

Operations

  • Asset allow-list and purchase weights
  • Pause stock purchases — never claims, never transfers
  • Rotate the keeper key
TIMELOCK · 48 HOURS

Configuration

  • Revenue split vector
  • Plug or unplug revenue adapters
  • Router → PurchaseEngine pointer
  • Renderer address (art contract)
  • Rate-limit parameter, never below the floor
IMMUTABLE · FOREVER

Economics

  • Activation, reactivation and merge tariffs
  • Tier weights 1 / 2.2 / 5 / 11.5 / 26.5
  • Royalty percentage
  • Rate-limit floor
  • Total supply of $BONDS

The keeper is a hot key with one power: buy allow-listed assets into the pool, within caps. A compromised keeper means downtime, not loss. Deployment is a single scripted run — manifest, deploy, verify, hand every role to Safe and Timelock, renounce the deployer, check every parameter.

01
BuildingsNFT

SeaDrop mint, tier / active / merge state, activate · reactivate · merge with Permit-burn, transfer hook → inactive, ERC-2981, finalizeSupply().

02
BONDS

$BONDS · ERC-20 + Permit. Supply set in the constructor from the distribution table. Zero admin surface.

03
RoyaltyRouter

Eternal receiver: ETH, WETH unwrap, ERC-20 sweep. Split 70/15/10/5, LP and buyback buckets, open donate().

04
PurchaseEngine

Pull from Router → stable → stocks → atomic deposit into the pool. Holds nothing longer than one transaction.

05
RewardPool

Custody of stocks + streaming accumulator, claimAll, rate-limit with floor, settle hooks only from BuildingsNFT, dividend sweep.

06
Renderer

View-only tokenURI: tier art plus deterministic cosmetics from tokenId. Swappable behind the timelock.

07
TeamVesting

OpenZeppelin VestingWallet for the team allocation of $BONDS.

+
Safe · Timelock

Gnosis Safe 2-of-3 and a 48h TimelockController — no custom code, no proxies, no upgrade path.

Roadmap

Gates first. Then the ladder.

We ship in phases, and each phase has a hard gate. Dates are announced on X only once the previous gate is closed — no calendar promises that a fact-check can break.

PHASE 0

Fact-check gates

Chain infrastructure · transferability, on-chain liquidity and TWAP of tokenized stocks · Pons launchpad mechanics.

PHASE 1

Model & spec

Tariff grid, distribution table, TGE calibration. Final spec: events, invariants, deploy manifest.

PHASE 2

Build & audit

Contracts + Foundry invariants (streams, rollover, zero-weight, rate-limit). Two independent audits, staggered.

PHASE 3

Testnet rehearsal

Full cycle: mint → TGE simulation → activations → merge → purchases → claim → transfer → reactivation.

PHASE 4

Mint & TGE

One scripted mainnet deploy. Mint on OpenSea, finalizeSupply(), then TGE on Pons.

PHASE 5

Ladder opens

Activations and merge go live. First purchases. First claim. Then LP and buyback modules behind the timelock.

FAQ

Straight answers

Do I earn anything without activating?

No. A Building earns only while active. Activation is a one-time $BONDS burn per Building; any transfer switches it off again, and reactivation costs a tier-dependent burn.

What happens to my rewards when I sell?

Unclaimed rewards travel with the NFT. The buyer can claim them immediately without reactivating. New accrual for the buyer starts only after they reactivate. Selling never destroys rewards.

Can the team freeze claims?

No role in the system can pause claims or transfers — not the Safe, not the Timelock. The only outflow control is a public 24-hour rate-limit whose floor is immutable in code. It exists to blunt a hack, not to hold your assets.

Which stocks will the pool hold?

Tokenized U.S. equities such as AAPLx, NVDAx, MSFTx, TSLAx, AMZNx, GOOGLx, METAx and index tokens like SPYx. The admin sets the allow-list and purchase weights. At most ten assets stream at once. Holders do not pick assets. Newly added assets warm up 24–48 hours before the first purchase; removals are instant. Rebasing assets are banned.

Is there rarity?

No. The only economic parameter is the tier. Everything else — day or night, materials, props — is deterministic cosmetics from the tokenId and never affects rewards. There is nothing to snipe, so there is no reveal.

Can tariffs or weights be changed later?

No. Activation, reactivation and merge tariffs, tier weights, the royalty percentage and the rate-limit floor are immutable at deploy. Not even the timelock can touch them.

What if tokenized stocks can't be bought on-chain?

That is exactly what the fact-check gate tests before launch: free transferability without KYC, on-chain buyability, liquidity depth and per-asset TWAP. If the gate fails, the fallback is rewards in a stablecoin — a change of the asset list in the manifest, not of the code.

What about dividends on stocks in the pool?

Dividends and airdrops that land on pooled stocks are swept — permissionlessly — into the same 70/15/10/5 split, so they end up bought back into stocks and streamed like everything else.

Where do I trade?

Mint and secondary trading of Buildings on OpenSea; $BONDS launches on the Pons launchpad and later moves to a DEX with protocol-owned liquidity. The dApp handles activation, merge and claims. Not available to U.S. persons.

Mint

Start in the garage

Allowlist first, then public. Wallet caps apply. After the mint window closes, finalizeSupply() burns the unminted remainder — nothing is ever issued later.