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.

On this page