Module 11: Token Mechanics
What this covers: How BASIS tokens actually work under the hood. Elastic supply mechanics, hybrid multiplier behavior, AMM pricing dynamics, the STASIS flywheel, and edge cases that will break assumptions imported from traditional DeFi.
Prerequisites
- Familiarity with trading basics helps — this module explains why the AMM behaves the way Module 04 says it does
- For token creation parameters that set these mechanics in motion, see Module 07
Related action modules (where these mechanics get applied)
- Module 04 — Trading: every trade is shaped by
hybridMultiplier - Module 05 — Lending: LTV depends on Stable+ vs Floor+ distinction
- Module 06 — Staking: the STASIS flywheel is realized as wSTASIS yield
- Module 12 — Strategy & Stacking: compose these mechanics into multi-layer plays
1. Universal Mechanics
Every token on BASIS — Stable+, Floor+, or Predict+ — shares the same foundation.
Elastic Supply
There is no fixed supply. Tokens are minted on buy and burned on sell. Zero pre-minting. Zero insider allocations. Every token in circulation was purchased at market price by someone who paid for it.
Practical consequences:
- Rug pulls via insider dumps are structurally impossible — creators hold no pre-minted supply
- Burning tokens is mechanically identical to selling — the AMM processes a burn the same way it processes a sell
- When a loan expires and collateral is "burned to cover debt," that burn goes through the AMM as a sell
The Factory
All tokens originate from the Basis Factory contract (ATokenFactory). No external ERC-20 imports. If it trades on BASIS, BASIS created it. This enforces structural safety — creators don't write contracts, they configure parameters within a fixed set of audited rules. → See Module 07 for the SDK methods that interact with the factory.
Token Creation Parameters
| Parameter | Range | Description |
|---|---|---|
symbol | — | Ticker. Must be CAPITALISED. |
name | — | Full token name |
hybridMultiplier | 1–90 or 100 | Controls token type. 1–90 = Floor+. 100 = Stable+. Do NOT use 91–99. |
startLP | 100–10,000 | Starting virtual liquidity. Sets the dollar scale of price movement. |
frozen | bool | Whitelist-only trading until creator calls disableFreeze() (irreversible) |
usdbForBonding | 0–150,000 | Cumulative volume threshold for reward phase. |
autoVest | bool | Auto-vest creator's own purchases (not pre-minting — creator must buy) |
startLP: The Liquidity Scale Factor
startLP is NOT deposit capital — it's a virtual scaling parameter. It sets how much USDB-equivalent capital it takes to move the price, with no cost to the creator.
Initialization: startLP dollars → converted to STASIS at current STASIS price → paired with tokens sized so starting price = $1/token.
| startLP | $100 buy price impact | $1,000 buy price impact |
|---|---|---|
| 100 | Very large | Extreme |
| 1,000 | ~$0.10 | ~$1.00 |
| 5,000 | ~$0.02 | ~$0.20 |
| 10,000 | ~$0.01 | ~$0.10 |
A $100 buy into a 1,000-LP token has the same percentage impact as a $1,000 buy into a 10,000-LP token. startLP controls absolute dollar sensitivity, not percentage sensitivity.
Fee Distribution (All Standard Tokens)
Every trade distributes fees to:
| Recipient | Share |
|---|---|
| Creator (dev fee) | 20% |
| Staking vault (STASIS holders) | 16% |
| Reward phase buyers | 4% |
| Platform treasury | 60% |
Reward Phase
The reward phase is the initial period where early buyers earn claimable reward shares (claimRewards()). Controlled by usdbForBonding at creation.
- Trading starts immediately from block one — same AMM formula runs throughout
- Reward phase ends when cumulative volume hits the
usdbForBondingthreshold (hasBondedflips to true) - After the threshold: trading continues normally, new buys no longer earn reward shares
- Reward phase buys also earn boosted airdrop points
2. AMM Pricing Mechanics
How It Works
BASIS uses a modified AMM where the hybridMultiplier — set at token creation and immutable afterward — changes the pricing formula for both buys and sells. This is not a standard Uniswap-style AMM with a bolt-on mechanism. The multiplier modifies the core constant-product formula itself, so every trade (buy or sell) behaves differently from a traditional AMM.
On every trade, a portion of value is retained in the pool rather than following standard constant-product math. The higher the multiplier, the more retention. This creates a floor price that rises over time as retained value accumulates.
hybridMultiplier = 100(Stable+): Maximum retention. Price can only go up — both buys and sells increase the price.hybridMultiplier = 45(mid Floor+): Moderate retention. Price moves freely but has strong floor protection.hybridMultiplier = 1(minimal Floor+): Lowest retention, but still dramatically more stable than a traditional AMM. Even at multiplier 1, the modified formula retains enough value to provide real downside protection — a Floor+ token at any setting absorbs sell pressure far better than a standard constant-product token would.
Price Impact by Multiplier
Tested on-chain with startLP = 1000, one LP-equivalent buy (= $1,000):
| hybridMultiplier | Price increase per LP-equivalent buy | Floor growth rate |
|---|---|---|
| 1 (most volatile) | +$1.00 | Weakest |
| 15 | +$0.83 | Low |
| 30 | +$0.69 | Moderate |
| 45 | +$0.54 | Moderate-high |
| 60 | +$0.39 | High |
| 90 (most stable Floor+) | +$0.11 | Very high |
| 100 (Stable+) | Price increases via full retention | Maximum |
Higher multiplier = less price movement per buy, but stronger floor.
Swap Routing
All trades route through STASIS. No direct token-to-token swaps exist.
- Buying STASIS:
USDB → STASIS(2-hop) - Buying any factory token:
USDB → STASIS → Token(3-hop) - Selling any factory token:
Token → STASIS → USDB(3-hop)
This routing means every trade on every token touches the STASIS pool.
Simulating Output
Use getAmountsOut(amount, path) to preview exact output before executing. The contract handles multiplier-adjusted calculations internally. For slippage protection, set minOut to ~95% of simulated output.
Standard AMM Assumptions That Break on BASIS
- Price increases on every trade for Stable+ tokens — buys and sells. Any arbitrage strategy that expects sell pressure to create a lower buy entry on Stable+ tokens will fail. The modified formula retains value on both sides.
- The floor rises after every trade on Floor+ tokens. Each trade (buy or sell) leaves retained value in the pool, nudging the floor up. Traditional AMM models do not account for this.
- HFT does not work. Round-trip fees are ~1% for Stable+ and ~3% for Floor+/Predict+ before slippage. Strategies calibrated to 0.05–0.1% fee environments will bleed out.
3. Stable+ Deep Dive
Core Mechanic
hybridMultiplier = 100. The modified formula retains maximum value in the pool on every trade — buys and sells alike. Price can only go up.
This is NOT a "rising floor" framing — the price itself never decreases. The floor and the spot are always the same number.
What happens on a sell:
- Seller sends tokens to contract
- Tokens are burned (supply decreases)
- 100% of the sell's price impact stays in the pool as retained liquidity
- Liquidity-to-supply ratio increases
- Price is now higher than before the sell
What happens on a buy:
- Buyer sends USDB
- Tokens are minted (supply increases)
- Price increases along the AMM curve
- Price is higher than before the buy
Both directions push price up. There is no mechanism for price to decrease.
Trading Fees (Stable+)
| Action | Fee |
|---|---|
| Buy or sell | 0.5% per swap |
| Round-trip | ~1.0% + slippage |
| Creator earns | 0.1% per trade (20% of 0.5%) |
| Max surge tax | 0.5% (50 BP) |
| Max total with surge | 1.0% |
Leverage on Stable+
Since the price floor equals the spot price and neither can decrease:
- LTV: 100% of spot price
- Leverage: 20–36x (varies by pool depth and position size)
- No price liquidation — the collateral value never drops
- The only risk is time-based position expiry
- Smaller positions on deep pools unlock more loops → higher effective leverage
- Larger positions face price impact on each loop → fewer effective loops → lower leverage
Important: Leverage is a trading action (leverageBuy() in Module 04), not a loan. Leverage lives on the SWAP contract; loans live on the LOAN contract — completely separate systems. You manage leverage through client.trading methods: getLeverageCount(wallet), getLeveragePosition(wallet, index) (1-indexed), and partialLoanSell(id, pct, true, minOut). Do NOT use client.loans methods on leverage. → See Module 04 §3c–3d.
The Velocity Thesis
Stable+ tokens appreciate through cycle velocity, not passive holding. Each buy-use-sell cycle leaves slippage residue in the pool that permanently raises the price. More cycles = more residue = higher price.
Best use cases: gambling platforms (buy to play, house burns on wins, winners sell), loyalty tokens (earn, spend, earn), access tokens (buy, burn on access), in-game currencies (buy, spend, burn).
STASIS: The Canonical Stable+ Token
STASIS is the ecosystem hub token and the primary Stable+ token.
- Every trade on the platform routes through STASIS (all paths include it)
- Platform fees flow into the STASIS vault, compounding its value
- Price can only go up from slippage retention across all routing
- Stakeable in the vault (wrap to wSTASIS) to earn yield from all platform trading fees
- Usable as loan collateral at 100% LTV
4. Floor+ Deep Dive
Core Mechanic
hybridMultiplier = 1–90. Price moves freely up and down — but a floor price exists that never decreases.
What happens on a buy:
- Modified AMM price increase (not standard — the multiplier affects buys too)
- Floor price also rises (retained liquidity from the trade's price impact)
What happens on a sell:
- Price decreases (partial sell value returns to seller)
- Floor price does NOT decrease — only the retained portion stays, but it permanently raises the minimum
- The sell impact is dampened versus a standard AMM
The Floor Price
If every holder sold every token simultaneously, the price would bottom at the floor price — not zero, not the launch price, but a permanently rising minimum set by accumulated retained liquidity.
Check it: getFloorPrice(tokenAddress)
The floor only moves in one direction: up. Every trade (buy or sell) leaves some retained value that incrementally raises it.
Trading Fees (Floor+)
| Action | Fee |
|---|---|
| Buy or sell | 1.5% per swap |
| Round-trip | ~3.0% + slippage |
| Creator earns | 0.3% per trade (20% of 1.5%) |
Leverage on Floor+
Loans are valued against the floor price, not the spot price.
- LTV: 100% of floor price (floor < spot, so you borrow less than market value)
- No price liquidation — floor never decreases
- Best entry for leverage: At launch when floor ≈ spot (maximum effective leverage)
- After large sell events, spot drops closer to floor — another high-leverage window
- As spot rises far above floor, per-loop yield drops (2% origination fee per loop stays fixed while collateral value per loop shrinks relative to debt)
Loan expiry scenario: $10 leveraged into $200 bag (debt ~$200). Token goes 5x, bag = $1,000. On expiry, ~$200 in tokens sold to repay debt. Remaining ~$800 claimable. Worst case (no appreciation): entire bag sold, nothing to claim — but you never owe beyond your collateral.
The Survival Advantage
Traditional tokens die from panic selling, not from lack of buying. One whale dump → price craters → holders panic → cascade → dead in hours.
Floor+ breaks this cycle. The same dump creates a smaller dip on Floor+, which reads as a buying opportunity rather than a death signal. The paradox: Floor+ tokens go up slower per buy — but they survive sells that would kill standard tokens, giving them the potential to go higher overall.
5. Predict+ Deep Dive
Core Identity
Each prediction market creates one Predict+ token — a Stable+ subtype with hybridMultiplier = 100. It has a defined lifecycle tied to the market's duration.
Critical distinction — the most common misconception:
| Asset | What it is | How to profit |
|---|---|---|
| Predict+ token | The market itself (Stable+ subtype) | Buy/sell for price appreciation from volume |
| Outcome shares | A bet on a specific result | Win the bet → proportional payout |
These are separate contracts, separate actions, separate P&L. You can hold both, either, or neither.
Why Predict+ Is the Ideal Stable+ Use Case
A Predict+ token launches with zero supply, appreciates fastest during the low-supply early period, and resolves before hitting the supply wall that eventually slows long-lived Stable+ tokens. Short lifecycle + high volume + natural resolution point = optimal Stable+ mechanics.
Trading Fees (Predict+)
| Action | Fee |
|---|---|
| Buy or sell | 1.5% gross |
| Round-trip | ~3.0% + slippage |
| Surge tax | Disabled entirely |
Predict+ Fee Distribution
Predict+ has a different split from standard tokens:
| Component | Amount per $100 trade | Destination |
|---|---|---|
| Prediction ecosystem portion | $1.00 (1%) | Fed back into the market |
| — Resolver bounty pool | $0.05 | Rewards for resolvers |
| — General pot | $0.95 | Merges with outcome pools at resolution |
| Net platform fee | $0.50 (0.5%) | Standard distribution |
| — Staking vault | $0.08 | wSTASIS holders |
| — Creator dev fee | $0.10 | Market creator |
| — Reward phase buyers | $0.02 | Early supporters |
| — Platform treasury | $0.30 | Operations |
Every trade on the prediction market grows the winning pot. The general pot (0.95% per trade) accumulates across the entire market lifetime and merges with all outcome pools at resolution — this is why BASIS payouts are uncapped, unlike $1-cap platforms.
Post-Resolution Price Dynamics
After resolution, the sell wave begins. On Stable+ mechanics, sellers burn tokens → slippage stays in pool → price goes UP as supply decreases. The last seller exits at the highest price. Selling during active trading phases sacrifices potential upside — optimal exit is after resolution when the sell wave has pushed the price to its peak. → See Module 13 for full prediction strategy patterns.
Leverage on Predict+
Same as Stable+: 100% LTV at spot price, 20–36x available, no price liquidation. Best leverage play: buy at launch with leverage, hold through market activity, exit after post-resolution sell wave.
6. Hybrid Multiplier Reference
| Multiplier | Token Type | Floor Behavior | Price Freedom | Use Case |
|---|---|---|---|---|
| 100 | Stable+ | Price IS the floor (up only) | None — only up | Value store, ecosystem token, staking base |
| 80–90 | Strong Floor+ | Very strong floor, near up-only | Minimal | Near-stable community token |
| 50–79 | Balanced Floor+ | Moderate floor | Moderate | Community tokens, mid-volatility projects |
| 20–49 | Weak Floor+ | Weak floor | High | Speculative with safety net |
| 1–19 | Minimal Floor+ | Minimal floor | Very high | Near-traditional AMM behavior |
| 91–99 | DO NOT USE | Technically functional, undefined behavior | — | Not supported by convention |
Reading token type on-chain:
Every factory token exposes hybridMultiplier() (view function, no params, returns uint256):
- Returns
100→ Stable+ or Predict+ - Returns
1–90→ Floor+ - To distinguish Stable+ from Predict+: check if token is associated with a prediction market via the prediction market contract
7. The STASIS Flywheel
Every trade on every token routes through STASIS. This is the economic engine of the platform.
Any token trade
→ fees collected
→ 16% to STASIS vault → staker yield increases → STASIS more attractive
→ 20% to creator → creator earns passively
→ STASIS pool touched on every swap → STASIS price edges up from slippage retention
→ deeper liquidity → less slippage → more trading
→ more trading → more fees → cycle repeats
Why this compounds:
- STASIS is Stable+ — every routed trade pushes its price up incrementally
- Platform growth benefits every position: staked STASIS earns more, tokens have deeper liquidity, markets attract more bettors
- The flywheel accelerates: volume → better liquidity → more traders → more volume
- Platform growth is non-zero-sum — the fee pool grows faster than new participants dilute it
Strategic implication for agents: Activities that increase platform trading volume (quality market creation, referrals, liquidity-attracting token launches) are multipliers on all existing positions through vault yield and STASIS appreciation.
8. Edge Cases and Gotchas
Frozen Tokens
A token launched with frozen = true is whitelist-only until the creator calls disableFreeze(). The unfreeze is irreversible — once public, it cannot be re-frozen. During frozen state: only whitelisted wallets can trade. If frozen = true, usdbForBonding must be >= 1.
For agents: Check isFrozen(tokenAddress) before attempting to trade unfamiliar tokens. Transactions from non-whitelisted wallets will revert.
Surge Tax
Surge tax is a temporary extra fee that token creators manually activate via startSurgeTax(startRate, endRate, duration, token).
- Decays linearly from
startRatetoendRateover the configured duration - Minimum duration: 1 hour
- Quota: maximum 7 days of surge per rolling 30-day window
- Extra fee goes to the creator (all surge basis points added to dev portion)
- The more stable the token, the lower the maximum allowed surge
- Applies to all trades (buys and sells) while active
- Disabled entirely on Predict+ tokens
| hybridMultiplier | Max Surge | Max Total Fee |
|---|---|---|
| 1 (most volatile Floor+) | 15% (1500 BP) | 16.5% |
| 45 (mid Floor+) | 8% (800 BP) | 9.5% |
| 90 (high stability Floor+) | 1% (100 BP) | 2.5% |
| 100 (Stable+) | 0.5% (50 BP) | 1.0% |
| Predict+ | Disabled | 1.5% (base only) |
For agents: Call getAvailableSurgeQuota(token) before starting a surge. Call getCurrentSurgeTax(token) before trading to check if surge is active and what the current rate is.
Reward Phase Timing
During the reward phase (volume < usdbForBonding threshold):
- Early buyers earn reward shares claimable via
claimRewards() - Early buyers earn boosted airdrop points
- After threshold is hit (
hasBonded = true): trading continues normally, reward accrual stops
For agents: Check hasBonded(tokenAddress) to determine if you're in the reward phase. Early entries during reward phase capture both market upside and reward share income.
Closed Tokens
Closed tokens cannot be traded. Check token status before routing trades.
Very Low Liquidity
On tokens with startLP = 100, even small buys create extreme price impact. Slippage bounds must be set conservatively. getAmountsOut() gives exact output — use it before every trade.
Burning = Selling (Always)
On elastic supply tokens, every burn goes through the AMM as a sell. This includes:
- Manual burns
- Loan expiry collateral liquidation
- Any contract-level token destruction
On Stable+ tokens, this burning-as-selling pushes the price up (slippage retention). A "burning event" is bullish on Stable+ tokens, not neutral.
9. Token Comparison Table
| Feature | Stable+ | Floor+ | Predict+ | Traditional AMM |
|---|---|---|---|---|
| hybridMultiplier | 100 | 1–90 | 100 | N/A |
| Price direction | Only up | Free above floor | Only up | Free |
| Supply type | Elastic | Elastic | Elastic | Fixed |
| Sell impact on price | Price stays or rises | Price drops, floor holds | Price stays or rises | Price drops |
| Floor exists | Yes (floor = spot) | Yes (rising, below spot) | Yes (floor = spot) | No |
| Trading fee | 0.5% | 1.5% | 1.5% (gross) | Varies |
| Surge tax | Up to 0.5% | Up to 15% (by multiplier) | Disabled | N/A |
| LTV basis | Spot price | Floor price | Spot price | N/A |
| Effective LTV | 100% of market value | 100% of floor (<spot) | 100% of market value | N/A |
| Leverage available | 20–36x | Lower (floor gap reduces loops) | 20–36x | N/A |
| Liquidation risk | None (time expiry only) | None (time expiry only) | None (time expiry only) | Yes (price-based) |
| Death spiral risk | None | Very low | None | High |
| Best for | Ecosystem token, velocity use cases | Community tokens, speculation | Prediction markets | — |
Quick Reference
| Question | Answer |
|---|---|
| How do I check token type? | hybridMultiplier() on token contract. 100 = Stable+/Predict+, 1–90 = Floor+. |
| How do I check floor price? | getFloorPrice(tokenAddress) |
| How do I preview trade output? | getAmountsOut(amount, path) |
| How do I check if surge is active? | getCurrentSurgeTax(token) |
| How do I check remaining surge quota? | getAvailableSurgeQuota(token) |
| How do I check reward phase status? | hasBonded(tokenAddress) — true means reward phase ended |
| How do I check if token is frozen? | isFrozen(tokenAddress) |
| What's the swap path for any token? | USDB → STASIS → Token (buy) or Token → STASIS → USDB (sell) |
See Also
- Module 04 — Trading: How buy/sell/leverage actions invoke the AMM rules described here
- Module 05 — Lending: LTV uses Stable+ spot price vs Floor+ floor price
- Module 06 — Staking: The STASIS flywheel realized as wSTASIS vault yield
- Module 07 — Token Creation: Set
hybridMultiplier,startLP,usdbForBonding,frozenat creation - Module 12 — Strategy & Stacking: Compose these mechanics into deep multi-position plays
- Module 13 — Prediction Strategies: Predict+ token roles, multi-route plays
- Module 18 — SDK Reference: Full method index and error reference