Glossary
Every term used across Motoswap docs and code, from actor points to zap.
Terms used across Motoswap docs and code. Grouped alphabetically.
A to C
A to B
Actor Points - Points the trader earns on their own fee-paying swap,
boosted by staked Motocats. The scoring internals are not published; read
balances from GET /points/{address} after the daily drop.
Address (branded) - Address type in the SDK/API is always a lowercased
0x-prefixed 20-byte hex string. Never mixed-case (checksum) on the wire.
Alloc points - pool weight in MasterChef. A pool earns
allocPoint / totalAllocPoint of the current emission rate. MasterChef is
deployed; no emission campaign is running and none is planned.
Beacon proxy - the pattern Motoswap uses for pairs. Every pair is a
minimal ERC-1967 proxy pointing at one shared beacon. One
upgradePairImpl call retargets every live pair at once.
Boost (Motocat) - the multiplier a swap's points earn from the wallet's Motocat count (staked only - a held cat counts for nothing). Read by the indexer at the block before the swap.
Boost (MotoStaking) - multiplier on effective stake per lock duration: 1x / 2x / 4x / 8x for 3/6/12/24 months.
Bps - basis points; 100 bps = 1%.
Bucket (Collector) - one destination in Collector.buckets[], with a
recipient, weight, and notify flag.
Bytes32 / hex32 - a 32-byte value. Used for tx hashes, salts, permit
digests. Wire type: 0x-prefixed 64 hex chars.
C
Campaign (MasterChef) - a single emission run (startEmission → emissionStart..emissionEnd). Only one campaign at a time. None is running
and none is planned.
Chain head - the current highest processed block on the indexer. Served
by GET /chain/head - used to gate freshness on client reads.
Collector - the fee-splitter contract. Receives protocol fees from
FeeRouter, splits into weighted buckets on distribute(token).
Cooldown (MasterChef) - 24 hours between withdraw (queue) and
claimWithdrawal (claim) while the pool earns. None when no campaign is
emitting or the pool's weight is 0. The deployed VampChef has no cooldown: its
withdraw returns principal in the same call.
CREATE2 - deterministic contract deployment (address = hash(deployer, salt, initcode)).
Used by MotoSwapFactory (pair addresses).
Creator (fees) - the entity registered in CreatorFeeRegistry for a
given token. Earns creatorFeeBps (max 50 bps = 0.50%) on every swap of
that token, in the quote asset.
Cron version - ETag component derived from max(cron_state.last_run_at)
for a set of cron jobs. Used to version routes that depend on
cron-refreshed data.
Cursor - opaque HMAC-signed pagination token. Scope-bound to the endpoint + filters - cannot be replayed across queries.
D to F
Decimals - the decimals() value on an ERC-20. USDC = 6, MOTO/WETH/most = 18.
Deposit fee (MasterChef) - 0-1000 bps (up to 10%) skimmed on deposit,
paid to feeRecipient. Set per pool by owner.
Effective stake (MotoStaking) - amount × (10_000 + boostBps) / 10_000.
Drives reward share.
EIP-712 - typed structured data signing standard. Used for permit and for moto.fun launch signatures. Rakeback does not use it.
Epoch (Rakeback) - one Sunday-anchored week:
floor((seconds − 259200) / 604800) (the offset shifts the Thursday Unix
epoch start to Sunday 00:00 UTC). Each epoch gets its own merkle root; the
50 / 25 / 25 vest is baked into the leaf, and the claim window is 30 days
from the slice's activation.
ETag - HTTP cache validator on cached GETs. Send If-None-Match with the
previous value and expect 304. /config carries Cache-Control and no ETag.
FeeRouter - user front door for swaps. Charges the protocol fee
(protocolFeeBps, 0.70%, owner-settable, so read it live) on the quote leg,
then routes through MotoSwapRouter02.
FeeToSetter - admin role on MotoSwapFactory (two-step transferable).
Also the beacon owner. Can set swap fee, pair implementation, swap allow-list.
FoT - fee-on-transfer token. A token that taxes its own transfer /
transferFrom. Handled by dedicated *SupportingFeeOnTransferTokens
variants; explicitly rejected by MotoSwapZap.
H to L
Halving curve (MasterChef) - the contract's emission math. No campaign is
running and none is planned. Period k emits
initialPeriodReward >> k over halvingPeriod (default 42 days). 8 periods
default → ~336 days total.
HMAC - the pagination cursor is HMAC-SHA-256 signed.
Indexer - the QuickNode → Postgres → RisingWave pipeline that turns on-chain events into the API's derived tables.
Launch farming - Motoswap's launch farm, now ended. You staked
Uniswap V2 LP tokens into the VampChef and earned MOTO; your liquidity stayed on
Uniswap. It ran for 14 days (DURATION() on the chef). There was no protocol fee
before the DEX opened, because FeeRouter was not deployed.
launchPhase - the /config field that says which step of the launch the
deployment is in: prelaunch, vamp (the launch farming contract is deployed, the
DEX contracts are not) or dex (the DEX contracts are deployed). A contract
that is unset for the current phase reads 0x0 from /config.
JIT (just-in-time) - an attacker stakes right before a reward event and
unstakes right after. Motocat PvE defeats it with the snapshot rule: a credit
is sized against staked balances at the block before it landed
(stakedBalanceOfAt(wallet, creditBlock - 1)), so a same-block stake earns
nothing. No warmup window exists or is needed.
Keyset pagination - cursor-based pagination on a sort key (e.g.
(tvl_usd, pair_address)). Alternative to offset. Consistent under
concurrent writes.
LP token - the ERC-20 receipt from adding liquidity. In Motoswap, the
MotoSwapPair itself IS the LP token (MotoSwapERC20, symbol MOTO-V1-LP).
M to O
µ-USD - 6-decimal-integer USD. Wire representation is a decimal string of
dollars (e.g. "2500.50" for $2,500.50). Runtime is bigint µ-USD (2500500000n).
MOTO - the protocol reward token, an ERC-20 on Ethereum mainnet with 18
decimals. Fixed supply. No mint, no owner, no pause. Deployed; read its
address from /config.addresses.motoToken.
Motocat - the collectible NFT. Stakeable at MotocatStaking; staked cats
receive PvE airdrop credits (claimed from PveVault) and boost swap Points.
Multicall - batch RPC read pattern; Multicall3 is available at its canonical address.
Notify - the "reward push" call flag on a Collector bucket. true = the
bucket recipient is IStakingRewards and Collector calls notifyReward().
P to R
P
Pair - the AMM (Uniswap-V2-shape) for one token pair. Address is
deterministic via CREATE2 with sorted (token0, token1).
Perimeter (swap-allowed) - the factory.swapAllowed[caller] allowlist.
Only listed callers can call MotoSwapRouter02.swap*. The deploy lists the
core router and FeeRouter; outside integrators swap through FeeRouter.
Permit - EIP-2612 signed approval. Supported by every Motoswap LP token
(MotoSwapERC20.permit) and MOTO (MotoToken.permit).
Permit2 - Uniswap's batched-approval router-signature system. Used by
FeeRouter.swap*Permit2 variants.
PoolInfo - per-pool MasterChef state: `{ lpToken, allocPoint, lastRewardTime, accRewardPerShare, lpSupply, depositFeeBps }`.
Points - indexer-derived per-user counter, scored per swap into the
points_events ledger and published once a day at the 00:00 UTC drop.
Per-swap deltas are never observable via the API.
Protocol fee - protocolFeeBps on FeeRouter, charged on the quote
leg. Owner-set (≤ 100 bps ceiling), 70 bps. Read it live.
PvE mode - a moto.fun launch option. The creator's own ETH buys a slice of
the token at the curve price, the slice is escrowed, and it is credited to
Motocat stakers in one drop when the token graduates. Shares are claimed from
PveVault, sized by the staked-cat snapshot at the block before the credit,
and never expire.
Q to R
Quote asset - a token registered in QuoteAssetRegistry. The set is
WETH/USDT/USDC/MOTO with rank order (WETH > USDT > USDC > MOTO) that
determines fee-side selection when a path has quote at both ends.
Rakeback - the trader's share of the protocol fee. 2 / 7 of every
FeeRouter.Swap fee is earmarked, paid by merkle proof against a weekly
epoch root. The 50 / 25 / 25 vest is baked into the leaf amount at post
time, and the claim window is 30 days from the slice's activation. Anything unclaimed after that is swept to the treasury.
Referral (Points) - the referrer earns 10% of a referee's Points, one level, added on top. This covers trading Points on moto.fun too.
RewardVestingEscrow - 180-day linear vesting for the streamed half of farm rewards (50% liquid / 50% vested). Folding grant: repeated deposits re-spread the tail without resetting the head.
RisingWave - the streaming SQL engine that CDC-reads from Postgres and maintains derived views (points sum, rakeback per epoch, pool/token 24h stats). You don't see it directly; it powers the API's aggregate reads.
Ratio - a pool spot ratio (token0 priced in token1). Runtime is a
bigint at 18-decimal fixed point (1.0 = 10^18); the wire form is a decimal
string.
S to Z
S
Salt - 32-byte CREATE2 salt. For pairs, keccak256(sorted token0, token1).
Seconds - Unix seconds (integer). Every timestamp in the API and DB.
Snapshotter - one-shot on-chain marker (block + timestamp) for off-chain snapshots.
Sync (event) - MotoSwapPair.Sync(reserve0, reserve1). Fires after
every state-changing pair call. Canonical reserves snapshot for indexers.
Swap-allowed - see Perimeter.
T to Z
Total effective stake - sum of all MotoStaking positions' effective
stake. Denominator for reward share.
TVL - total value locked. On the API it is a decimal-dollar string (for
example "2500.50"), never null; an unknown value reads "0".
Unstake ticket (MotoStaking) - one entry per requestUnstake. Streams
principal linearly over UNSTAKE_DRIP = 30 days.
UUPS - upgradeable proxy pattern. Owner authorizes upgrades; each
UUPS contract has a one-way renounceUpgradeability to freeze.
VampChef - the launch farming (ended) contract. A trimmed MasterChef:
Uniswap V2 LP tokens (or MOTO on its own, in pool 1) in, MOTO out, one flat 14-day emission window (DURATION() is the source of truth), no withdraw cooldown, no deposit fee. While
launchPhase was vamp, the vampChef and masterChef keys of /config both held its address.
Vault (MotoStaking) - colloquial for one of the four lock duration
options. Not a separate contract - MotoStaking has all four.
Watermark (user activity) - user_activity.last_activity_block. The
indexer bumps it on any event the user is a party to. Per-user API
routes ETag on it, so polls are 304 until the user transacts.
WETH - canonical wrapped ether. Mainnet: 0xC02a…6Cc2. Always resolve it
from /config.addresses.weth.
Wire type - the JSON serialization of a domain type. Address →
string. Wei/Usd → decimal string. Numbers → number. Full cheat sheet:
addresses, config and events.
Zap - MotoSwapZap. Single-sided liquidity provisioning - swap
optimal half, add balanced LP, refund dust.