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 flywheel of each main, 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 flywheel is realized as vault rewards
- Module 12: Strategy & Stacking: compose these mechanics into multi-layer plays
Examples use the default main, STASIS, whose pair asset is USDG. On another main read "USDG" as that main's pair asset and use its
decimals(). The mains of a deployment are listed in/contracts.json(mains[]).
1. Universal Mechanics
Every token on BASIS (Stable+, Utility+, Floor+, Meme+, Yolo+, Yolo and Predict+) shares the same foundation.
Elastic Supply
Supply is elastic: a buy mints and a sell burns. (A Yolo token, reversed at setting 100, is the exception: its supply is fixed and it trades like a plain fixed-supply memecoin.) There is no creator or insider allocation at creation. Every token in a wallet was bought.
Practical consequences:
- There is no pre-minted allocation for insiders to dump: creators hold no pre-minted supply and cannot mint, and there is no LP a creator can pull; a creator who wants tokens must buy them
- When a keeper closes an expired loan, the collateral that covers the debt is taken to repay it. 10% of the rest is the liquidation fee, and you claim the remainder within 365 days of the liquidation; after that the leftover may no longer be claimable
The Factory
Factory tokens, market tokens and Up/Down pool tokens all come from the Basis Factory contract (ATokenFactory), each on a registered main. The mains (STASIS on the default pair) are not factory tokens: they are separate contracts registered as pairs on SWAP, and a main's pair asset is an outside token. A cross swap (SWAP.swapCross) can also start or end on an outside token, where a route exists. Creators do not write contracts; they configure parameters within a fixed set of protocol 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–100 | Every value is accepted. With reversed, sets the token type: on a normal token 100 = Stable+, 50–99 = Utility+, 1–49 = Floor+; on a reversed token 1–50 = Meme+, 51–99 = Yolo+, 100 = Yolo |
startLP | 1,000–100,000 | Launch depth: higher = deeper = less price movement per trade. 10,000 is the standard depth |
frozen | bool | Needs a presale. Gates presale buys by whitelist; sells are never gated. Lifts when the presale completes, or on disableFreeze() (irreversible) |
presaleTokens | 0 or more | Presale size in whole tokens (0 = no presale) |
autoVest, autoVestDuration, gradualAutovest | bool, 1–990 days, bool | Auto-vest every buyer's presale purchase |
mainToken | a registered main | createTokenFor / createReversedTokenFor only: the main the token trades against |
supplyMultiplier | 1 to main.MAX_SUPPLY_MULTIPLIER() | createTokenFor / createReversedTokenFor only: leave at 1 (the app's value) |
rewardsEnabled | bool | createTokenFor / createReversedTokenFor only: holder rewards on. Fixed at creation |
createTokenFor(params) is payable: send exactly feeAmount(), or 0 if feeWhitelist(you); any other value reverts "Wrong fee". Its struct takes mainToken, supplyMultiplier and rewardsEnabled with the rest. createReversedTokenFor(params) creates a reversed token (Meme+, Yolo+ or Yolo). To pay holders, create with rewardsEnabled: true: it can never be switched on later.
startLP: The Launch Depth
startLP is a depth setting from 1,000 to 100,000, not deposited capital. Higher means a deeper pool and less price movement per trade. 10,000 is the standard depth. A market token launches at startLP 10,000 and an Up/Down pool token at 2,500.
Fees and Where They Go
Every trade and every bet pays a base fee: 0.60% today, or 0.54% when the wallet has an on-chain referrer. A factory token or a market token adds its creator fee (0 to 1%, set by the token's dev; it is 0 until the dev sets it) and, only when the token was created with holder rewards, its rewards fee (0 up to maxRewardsFee: 0.5% at multiplier 100, rising to 10% at multiplier 1, always 10% on a reversed token (Meme+, Yolo+, Yolo)). A main pays the base only. A fee-exempt wallet pays nothing. The dev can change each of the two fees once per cooldown (4 hours today). Read the rate for a wallet with TAXES.getTaxRate(token, wallet) (basis points) and the parts with TAXES.getTokenTaxInfo(token). The base rate is capped at 1.5% in the contract: read TAXES.baseRate(), do not hardcode it.
The base part of a fee is split:
| Fee | SOCIAL (Alpha+ author pay) | Vault of the token's main | Operations | Referrer | Second-level referrer | Creator | Buyback |
|---|---|---|---|---|---|---|---|
| Trade through SWAP | 15% | 10% | 10% | 15% | 5% | 0 | the rest (45%, plus any referral share nobody can receive: 65% with no referrer) |
| Bet | 0 (to the buyback) | 10% | 10% | 15% | 5% | 0 | the rest (60%, plus any referral share nobody can receive: 80% with no referrer) |
| Loan side (origination, top-up, extension, the leverage loop fees, the 3% leverage profit tax) and unwon prize money | 0 | 10% | 10% | 0 | 0 | 20% (the collateral token's creator) | 60% |
The creator fee goes to the token's dev wallets and the rewards fee to the token's holders, on top of the base, in the same transaction. Every leg is paid in the pair asset of the token's main. A creator earns the creator fee they set plus 20% of the base part of loan-side fees on their token; both are paid as they happen, and nothing is claimed.
Presale
A token created with presaleTokens > 0 starts in a presale: buys run through the same curve until presaleSold reaches presaleTarget (= presaleTokens × 1e18). The buy that reaches it emits Bonded, sets presaleComplete and lifts frozen. A frozen token must have a presale; while it is frozen only whitelisted wallets can buy, each up to its cap, which is a number of tokens.
- Trading starts immediately from block one: the same curve runs throughout;
SWAP.buyTokens/sellTokensroute to the presale or the AMM by themselves - The presale ends on tokens sold, not on volume (
presaleComplete()flips to true) - After it: trading continues normally and the presale never reopens
Holder rewards. Holder rewards exist only on a token created with rewardsEnabled = true (through createTokenFor or createReversedTokenFor; never on a market token). The token's dev sets a rewards fee; it is shared among all holders in proportion to their balance, and is paid in the pair asset of the token's main. Read getClaimableRewards(holder) on the token; take it with claimRewards(). With rewards off the read is 0.
- A buy hands the buyer the full amount the curve gives; nothing is held back.
- The share follows the balance: transfer or sell the tokens and the rewards from then on go with them. A leverage position keeps earning; tokens pledged in a hub loan or held in a vesting do not.
- Rewards are not tied to the presale: every holder of a
rewardsEnabledtoken earns, for as long as they hold.
2. AMM Pricing Mechanics
How It Works
BASIS prices every token on a proprietary pricing curve. The hybridMultiplier (set at token creation and immutable afterward) sets where the token sits on the stability dial, for both buys and sells. This is not a standard Uniswap-style AMM with a bolt-on mechanism, so every trade (buy or sell) behaves differently from a traditional AMM.
On every trade, slippage stays in the pool, so the price rises on a Stable+ token and the floor rises on every other normal token.
hybridMultiplier = 100(Stable+): Price can only go up (in pair-asset units): both buys and sells increase the price.hybridMultiplier = 45(upper Floor+): Price moves freely above a floor that keeps rising.hybridMultiplier = 1(lowest Floor+): The most price freedom, still above a floor that never falls. A Floor+ token at any setting absorbs sell pressure better than a standard AMM token would.
On a reversed token (Meme+, Yolo+, Yolo) the same dial runs the other way: 100 is Yolo, which trades like a plain fixed-supply memecoin.
Price Impact by Multiplier
On a normal (not reversed) token, the same buy moves the price less as the multiplier rises:
| hybridMultiplier | Price movement per buy |
|---|---|
| 1 (most volatile) | Largest |
| 30 | Large |
| 60 | Medium |
| 100 (Stable+) | Smallest |
Higher multiplier = less price movement per buy. Simulate the trade on the token you are about to trade.
Swap Routing
Each main trades against its own pair asset, and each factory token trades against its main. SWAP.pairs(main) returns (pairAsset, staking, active); a token's main is token.quoteToken().
- Buying a main:
[pairAsset, main](2-hop) - Buying a factory token:
[pairAsset, main, token](3-hop), or[main, token]with the main in hand - Selling a factory token:
[token, main, pairAsset](3-hop), or[token, main]
A factory token paired straight with the pair asset is refused: [token, pairAsset] on a sell and [pairAsset, token] on a buy revert "Bad pair". A swap between tokens of different mains, or with an outside token, is one transaction through SWAP.swapCross(path, amountIn, minOut, recipient, deadline, unwrapNative); it still goes hop by hop through each token's main. Quote it with SWAP.quoteCross(path, amountIn, trader) by eth_call (it is nonpayable).
A trade of a factory token also moves its main's pool.
Simulating Output
Use getAmountsOut(amount, path) to preview the output before executing. It excludes the trade fee. With rate = getTaxRate(token, wallet):
- buy:
getAmountsOut(amountIn − amountIn × rate / 10000, path)(the fee comes off the input); - sell:
getAmountsOut(amount, path) × (10000 − rate) / 10000(the fee comes off the proceeds).
Set minOut a tolerance below that taxed quote. Never pass 0.
Standard AMM Assumptions That Break on BASIS
- Price increases on every trade for Stable+ tokens: buys and sells (in pair-asset units). Any arbitrage strategy that expects sell pressure to create a lower buy entry on Stable+ tokens will fail. Slippage stays in the pool on both sides.
- The floor rises after every trade on Floor+ tokens. Each trade (buy or sell) leaves its slippage in the pool, nudging the floor up. Traditional AMM models do not account for this.
- HFT does not work. A round trip costs two trade fees (at least 1.2% at today's base, more with a creator or rewards fee) before slippage. Strategies calibrated to 0.05–0.1% fee environments will bleed out.
3. Stable+ Deep Dive
Core Mechanic
hybridMultiplier = 100 on a normal token. Slippage stays in the pool on every trade: buys and sells alike. Price can only go up, in pair-asset units (on a main whose pair asset is not a USD stable, the USD value can still fall).
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)
- The sell's slippage stays in the pool
- Price is now higher than before the sell
What happens on a buy:
- Buyer sends the pair asset (SWAP buys the main first)
- 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 the price to decrease in its pair asset. A sale still receives less than the quoted price after fees and slippage, more so on a large sale.
Trading Fees (Stable+)
| Action | Fee |
|---|---|
| Buy or sell | base 0.60% (0.54% referred) + the token's creator fee + its rewards fee (capped at 0.5% at multiplier 100); read getTaxRate |
| Round-trip | two trade fees + slippage |
| Creator earns | the creator fee the dev set (0 to 1%) |
Leverage on Stable+
Since the price floor equals the spot price and neither can decrease:
- LTV: 100% of the floor value (on Stable+ the floor is the price)
- Leverage: up to about 37x, depending on the token and the size of the buy; the position must be more than 2x (
Under 2x); readsimulateLeverageLocked/simulateLeverageFactoryLocked - No price liquidation: the collateral's price never drops in its pair asset
- Price cannot liquidate you; expiry, fees, a fall above the floor and contract risk remain
- 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. A leverage position is opened and closed through SWAP and recorded on the token's main; hub loans live on the loan hub. Manage leverage with client.trading: getLeverageCount(wallet), getLeveragePosition(wallet, index) (1-indexed, per main), and partialLoanSellFor(main, id, pct, true, minOut). The owner can also extend it on its main with main.extendLoan(id, days, true, payInMainPair, refinance) and repay it with main.repayLoan(id, amount, true). client.loans methods act on hub loans only. → 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 and the Other Mains
STASIS is the main of the default pair (STASIS / USDG). There can be several mains, each with its own name and symbol, its own pair asset and its own pool in the vault.
- Every trade of a factory token routes through its main
- 10% of the base part of every fee on a main's tokens goes to that main's vault as staker rewards
- A main's price can only go up (in its pair asset), because the slippage of all routing stays in its pool
- Stake it 1:1 in its vault (no receipt token); rewards arrive in the main and are taken with
claim()orcompound()(Module 06) - Usable as loan collateral at 100% LTV
4. Floor+ Deep Dive
Core Mechanic
hybridMultiplier = 1–99 on a normal token (50–99 Utility+, 1–49 Floor+; this section covers both). Price moves freely up and down, but a floor price exists that never decreases.
What happens on a buy:
- Price increases (not a standard AMM: the multiplier shapes buys too)
- Floor price also rises (the trade's slippage stays in the pool)
What happens on a sell:
- Price decreases (partial sell value returns to seller)
- Floor price does NOT decrease: the slippage that stays in the pool raises the minimum for good
- The sell impact is dampened versus a standard AMM
The Floor Price
The floor price is the lowest price the contract will trade at. It never falls below the launch price, and it only rises.
Check it: getFloorPrice(tokenAddress) (contract: calculateFloor(), in pair-asset units; every factory token)
The floor only moves in one direction: up. Every trade (buy or sell) leaves slippage in the pool that raises it a little.
Trading Fees (Floor+)
| Action | Fee |
|---|---|
| Buy or sell | base 0.60% (0.54% referred) + creator fee + rewards fee (cap from maxRewardsFee: up to 10% at multiplier 1); read getTaxRate |
| Round-trip | two trade fees + slippage |
| Creator earns | the creator fee the dev set |
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: debt 200, bag worth 1,000 at expiry. After liquidationTime a keeper liquidates the position. Assume it can happen in the first block after the deadline. Until that transaction lands a repay or a paid extension still goes through; do not plan on the gap. At liquidation the collateral that covers the debt (about 200 worth) is taken to repay it, 10% of the 800 left is the liquidation fee, and you claim about 720, in tokens (claimLiquidation). Claim within 365 days of the liquidation; after that the leftover may no longer be claimable. Worst case (no appreciation): the whole collateral goes to repay the debt and nothing is left 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.
4b. Meme+, Yolo+ and Yolo Deep Dive (reversed tokens)
A Meme+ token is created with createReversedTokenFor(params); reversed() is true. The dial runs the other way round, and at setting 100 nothing is minted or burned at all.
- At
hybridMultiplier100: trades like a plain fixed-supply memecoin; floor = launch price. - Lower settings keep part of the rising floor and move toward Floor+ behavior.
- The price can fall, so "price can only go up" never applies to a Meme+ token. The floor never goes below the launch price.
- Loans value it at its floor, so a Meme+ at 100 borrows against the launch price only.
- Rewards fee cap: 10% at every setting (
maxRewardsFee(multiplier, true)). - Presale: at most half the launch supply.
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 → payout by rank |
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 no circulating 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 | getTaxRate(marketToken, wallet): base 0.60% (0.54% referred) + the market creator's creator fee (0 until set); no rewards fee |
| Round-trip | two trade fees + slippage |
| Bet | the same rate, once, on the way in; redeeming is not taxed |
Predict+ Fee Distribution
A bet fee follows the trade split of §1 without the SOCIAL share, which goes to the buyback. For a 100-unit bet by a wallet with no referrer on a market with no creator fee: base fee 0.60 → vault 0.06, operations 0.06, buyback 0.48 (the 20% referral slot, 0.12, goes to the buyback when there is no referrer). With a referrer the wallet pays 0.54, the slot pays 0.081 and 0.027, and the buyback gets 0.324. The market's creator fee, when set, goes to the creator on top.
A market resolves to a ranking of outcomes. getTrancheBP(market) gives the share of the profit for each rank: [10000] is winner-take-all. A holder of a ranked outcome gets its cost back plus that rank's share of the profit (the losers' money and the seed), pro rata to shares. That is a property of the settlement, not a fee rebate.
Post-Resolution Price Dynamics
After resolution, the sell wave begins. On Stable+ mechanics, sellers burn tokens → slippage stays in pool → price goes up in its base asset 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 the floor value (the price), no price liquidation. Leverage reaches up to about 37x, depending on the size of the buy; the position must be more than 2x (Under 2x); read simulateLeverageLocked / simulateLeverageFactoryLocked. Best leverage play: buy at launch with leverage, hold through market activity, exit after post-resolution sell wave.
6. Hybrid Multiplier Reference
1 to 100 is valid. On a normal token 100 = Stable+, 50 to 99 = Utility+ and 1 to 49 = Floor+; on a reversed token 1 to 50 = Meme+, 51 to 99 = Yolo+ and 100 = Yolo.
| Multiplier | Token Type | Floor Behavior | Price Freedom | Use Case |
|---|---|---|---|---|
| 100 | Stable+ | Price IS the floor (up only) | None: only up (in pair-asset units) | Ecosystem token, staking base, velocity tokens |
| 50–99 | Utility+ (the app offers 50–90) | Strong, fast-rising floor | Low to moderate | Long-term community tokens |
| 1–49 | Floor+ (the app offers 1 and 10–40) | Rising floor, weaker toward 1 | Moderate to very high | Room to run with a safety net |
1–50, reversed() true | Meme+ (the app offers 10–50) | Grows; never below the launch price | Free | Memecoin with a growing floor |
51–99, reversed() true | Yolo+ (the app offers 60–90) | Grows slowly; never below the launch price | Free | Bigger swings |
100, reversed() true | Yolo | The launch price; fixed supply | Free | Plain memecoin |
Reading token type on-chain:
- Read
hybridMultiplier()andreversed()on the token (views, no params).reversed()true → 1–50 Meme+, 51–99 Yolo+, 100 Yolo. Otherwise 100 → Stable+, a market token or an Up/Down pool token; 50–99 → Utility+; 1–49 → Floor+. TAXES.isPrediction(token.DEV())is true for a token made by a BASIS host: a market token or an Up/Down pool token.- To tell a market token:
host.getMarketData(token).marketToken == tokenon the public or the private market host.
7. The Flywheel (per main)
Every trade of a token routes through its main. This is the economic engine of each pair.
Any token trade
→ the base fee (0.60% today)
→ 10% of the base part to the vault of the token's main → staker rewards increase → the main more attractive
→ 15% + 5% to referrers
→ the creator fee to the creator (plus 20% of loan-side fees)
→ the token's main is touched on every swap → its price edges up, because the slippage stays in its pool
→ deeper liquidity → less slippage → more trading
→ more trading → more fees → cycle repeats
Why this compounds:
- A main is Stable+-like: every routed trade pushes its price up incrementally (in its pair asset)
- Platform growth benefits every position: staked mains earn more, tokens have deeper liquidity, markets attract more bettors
- The flywheel accelerates: volume → better liquidity → more traders → more volume
- Platform growth can be non-zero-sum: the fee pool can grow faster than new participants dilute it
Strategic implication for agents: Activities that increase trading volume on a main (quality market creation, referrals, liquidity-attracting token launches) are multipliers on all existing positions on that main through vault rewards and the main's appreciation.
8. Edge Cases and Gotchas
Frozen Tokens
A token launched with frozen = true is whitelist-only until the creator calls disableFreeze() or the presale completes. The unfreeze is irreversible: once public, it cannot be re-frozen. While frozen, only whitelisted wallets can buy, each up to its cap, which is a number of tokens; sells are never gated. If frozen = true, presaleTokens must be above 0.
For agents: Check getTokenState(token).frozen (the contract read is frozen()) before attempting to trade unfamiliar tokens. Buys from non-whitelisted wallets will revert.
Creator and Rewards Fees
The token's dev sets the creator fee with TAXES.setCreatorFee(token, bps) (0 to 100 bps; on a market token the market's creator) and, only on a rewardsEnabled token, the rewards fee with TAXES.setRewardsFee(token, bps) (up to maxRewardsFee(hybridMultiplier, reversed): 50 bps at multiplier 100, up to 1000 bps at multiplier 1 and on every reversed token (Meme+, Yolo+, Yolo)). Each can change once per 4 hours after its first setting, so a fee can change between your quote and your trade.
For agents: read getTaxRate(token, wallet) right before trading.
Presale Timing
- During the presale (
presaleComplete()false), buys run the same curve as after it - After
Bonded(presaleComplete()true): trading continues normally and the presale never reopens
For agents: Check getTokenState(token).presaleComplete (contract: presaleComplete()). It flips on tokens sold, not on volume.
Closed Tokens
A token cannot be traded when isEcosystemToken(token) is false (SWAP then refuses it, "Alien output" on a buy, "Wrong token" on a sell), when its main's pair is paused (SWAP.pairs(main).active is false: a paused pair refuses buys, sells, new loans and extensions; repaying still works) or when its main has not enabled trading (tradingEnabled() is false). Check all three before routing.
Very Low Liquidity
On tokens with startLP = 1000 (the minimum), even small buys create large price impact. Slippage bounds must be set conservatively. Quote with the fee included (§2 Simulating Output) before every trade.
9. Token Comparison Table
| Feature | Stable+ | Utility+ / Floor+ | Predict+ | Meme+ / Yolo+ / Yolo | Traditional AMM |
|---|---|---|---|---|---|
| hybridMultiplier | 100 | 50–99 / 1–49 | 100 | 1–50 / 51–99 / 100 (reversed) | N/A |
| Price direction | Only up (in pair-asset units) | Free above floor | Only up | Free above floor | Free |
| Supply type | Elastic | Elastic | Elastic | Elastic; fixed at 100 | Fixed |
| Sell impact on price | Price stays or rises | Price drops, floor holds | Price stays or rises | Price drops, floor holds | Price drops |
| Floor exists | Yes (floor = spot) | Yes (rising, below spot) | Yes (floor = spot) | Yes, never below the launch price | No |
| Trading fee | base 0.60% + creator fee + rewards fee: read getTaxRate | same | same (no rewards fee) | same | Varies |
| LTV basis | Spot price | Floor price | Spot price | Floor price | N/A |
| Effective LTV | 100% of market value | 100% of floor (<spot) | 100% of market value | 100% of floor | N/A |
| Leverage available | up to about 37x; simulate | lower: each loop borrows at the floor | up to about 37x; simulate | lower: borrows at the floor | N/A |
| Liquidation risk | None (time expiry only) | None (time expiry only) | None (time expiry only) | None (time expiry only) | Yes (price-based) |
| Death spiral risk | Low: selling can't push the price down in its base asset | Very low | None | See §4b | High |
| Best for | Ecosystem token, velocity use cases | Community tokens, speculation | Prediction markets | Memecoins | - |
Quick Reference
| Question | Answer |
|---|---|
| How do I check token type? | hybridMultiplier() and reversed() on the token. reversed() true = Meme+ (1–50), Yolo+ (51–99) or Yolo (100); otherwise 100 = Stable+/Predict+, 50–99 = Utility+, 1–49 = Floor+ (§6). |
| How do I check floor price? | getFloorPrice(tokenAddress) |
| How do I preview trade output? | getAmountsOut(amount, path): untaxed; see the taxed quote in §2 |
| How do I check a token's fees? | getTaxRate(token, wallet), getTokenTaxInfo(token) |
| How do I check presale status? | getTokenState(token).presaleComplete (presaleComplete() on the token): true means the presale has ended |
| How do I check if token is frozen? | getTokenState(token).frozen (frozen() on the token) |
| What's the swap path for any token? | pairAsset → main → token (buy), the reverse to sell; each token through its own main |
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 flywheel realized as vault rewards
- Module 07: Token Creation: Set
hybridMultiplier,startLP,presaleTokens,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