Wasabi runs protocol-owned, dynamically-priced liquidity for tokenized equities on BNB Chain. This page is the whole machine, end to end.
The flywheel
1
Stock pools charge a dynamic fee
Every swap in the USDT-quoted stock pools — SPY, QQQ, NVDA — pays a dynamic fee: 0.30% baseline, tuned between 0.05% and 2% by market conditions (see below). The fee is charged inside the swap itself by a PancakeSwap Infinity hook.
2
Fees split 90/10
90% of every fee goes to that pool's liquidity providers, 10% to the protocol. The protocol is itself the anchor LP in every pool, so its own positions earn the LP share too. Outside LPs are welcome and earn the same fee per unit of liquidity.
3
The protocol's share deepens the pools
Protocol revenue is compounded back into protocol-owned liquidity, concentrated ±10% around price. Deeper pools quote tighter prices, tighter prices attract more volume, and more volume generates more fees — the flywheel.
The pools
SPY/USDT, QQQ/USDT, NVDA/USDT — USDT-quoted pools for tokenized equities with a dynamic swap fee. The protocol is the anchor LP; outside LPs are welcome and earn the same fee per unit of liquidity.
Rebalancing is external. The pools themselves are immutable Infinity pools; the protocol's own positions are managed by bounded off-chain operators that can only execute price-protected operations.
Fees at a glance
PoolSwap feeWhere it goes
Stock pools0.05% – 2% (dynamic)90% to the pool's LPs · 10% to the protocol
How the dynamic-fee hooks work
Each stock pool's swap fee is set by a hook — the same contract pattern proven live by the Fables protocol — resolved fresh on every swap:
A flat base fee (0.30%) is what the pool charges on its own, with no operator involved. This is the fee in normal, open-market conditions.
A bounded override ("poke"). Stock pools quote against a market that keeps hours: when NYSE is closed, or the pool price diverges from the real market, stale-price arbitrage against LPs gets cheap. An authorized fee operator watches both signals off-chain and pokes the fee up to defend — the hook clamps every poke between a hard floor (never below half the base, 0.15%) and the cap (2%), re-checked at every swap, not just when it's set.
Every override expires on its own — at most 72 hours, exactly enough to span a weekend close. If the operator vanishes, pools simply fall back to their flat fee: a dead keeper is a mild day, never an emergency.
Why not an on-chain volatility model? A fee curve can only read the pool's own price history — it can't see the real S&P. Off-chain reference data with hard on-chain bounds prices adverse flow better than any oracle-free formula, so the hook stays simple and the bounds carry the safety.
How the fee is split. Whatever the resolved rate, 90% goes to the pool's liquidity providers and 10% to the protocol. The split rides the dynamic rate: at 0.30%, LPs earn 0.27%; at a 2% weekend fee, LPs earn 1.8%. Traders always pay the headline rate — nothing extra on top.
The fee operator is a bounded role, not a custodian: it can never touch funds or move a fee outside the pool's configured floor and cap, and its worst failure mode is a fee that's briefly wrong-but-bounded.
Deposits and withdrawals
Both assets — classic LP deposit matched to your chosen range; unused amounts are refunded in the same transaction.
Single asset — bring only USDT (or only the stock): part is swapped in-pool to match your range's ratio, the position mints in the same transaction, dust comes back. A range set entirely above or below the current price is single-asset by nature — no swap at all.
Withdrawals mirror it — withdraw as both assets, or as just one. Accrued fees are collected to your wallet automatically whenever you withdraw.
Every action carries slippage bounds and a deadline: if the price moves against you in the mempool, the transaction reverts instead of filling worse.
Security posture
No admin can trap funds. Withdrawing liquidity and collecting fees can never be paused or gated — pausing only ever stops new deposits.
Nothing is upgradeable. All contract logic is immutable; parameters move only inside limits fixed at deployment.
Operators are bounded. The fee operator can only move fees inside pre-set bounds; the liquidity keeper can only execute price-protected operations — neither can move funds anywhere but the pools.
Risks, plainly
Smart-contract risk. Audited or not, DeFi contracts can fail. Never deposit more than you can afford to lose.
Concentrated-liquidity risk. A ±10% position earns more while price stays in the band, stops earning outside it, and its asset mix shifts with price (impermanent loss).
Tokenized-stock issuer risk. bStocks are issued via Binance's broker-dealer, 1:1 backed by shares at a regulated custodian. The issuer can pause transfers or restrict sanctioned addresses. The protocol monitors this continuously — corporate actions are announced on-chain before they take effect — and if a pause ever hits mid-withdrawal, your USDT still exits immediately while the stock side stays redeemable for later.
Corporate-action repricing. Dividends and splits adjust a bStock's multiplier, which changes what each token represents rather than pool balances — LPs keep their share. The pool's price drifts by the adjustment until arbitrage re-prices it, so quotes can briefly lag the real market around those events.
Stablecoin quote. Stock pools are quoted in USDT, so positions track the stock's dollar price directly — no crypto-volatility drift. The residual risk is USDT itself losing its peg.