Skip to content
Lockstep

How Lockstep works

Status

Lockstep is in pre-launch. The curve maths and the milestone engine described here are implemented and tested, and they power the simulator on the home page. The on-chain programs are not deployed, so no coin can be created or traded yet.

Protocol

A coin is minted by the Lockstep program as a Token-2022 mint and trades only in its own Lockstep pool. Each coin has two accounts: a pool, which holds the curve reserves, and a vault, which holds the creator's locked tokens and locked fees.

Every trade pays a fee in SOL. One part goes directly to the protocol treasury. The other part is the creator's, and it accrues in the vault. The creator's dev buy at launch also goes straight into the vault. Both unlock in proportion to the milestones reached.

The protocol pause stops new launches only. It never blocks a sell.

Curve maths

The pool is a constant-product curve with virtual SOL liquidity. The whole supply starts in the pool.

(virtual_sol + real_sol) × token_reserve = k

price        = (virtual_sol + real_sol) / token_reserve
tokens_out   = token_reserve × net_sol / (virtual_sol + real_sol + net_sol)
sol_out      = (virtual_sol + real_sol) × tokens_in / (token_reserve + tokens_in)

fee          = ceil(amount × trade_fee_bps / 10000)
protocol_fee = floor(fee × protocol_share_bps / 10000)
creator_fee  = fee − protocol_fee

Defaults: 30 virtual SOL, a supply of 1,000,000,000 with 6 decimals, a 1% trade fee split 50/50. All maths are integer and every rounding favours the pool, so k never decreases and buying then selling at once always loses the fees. There is no graduation and no migration: the pool lives on.

Venue lock

Each mint carries a Token-2022 transfer hook. A transfer is allowed when either side is a Lockstep pool or vault reserve, or when both token accounts are owned by ordinary wallets. A transfer to or from an account owned by another program is refused, which prevents a pool from being opened on another AMM.

The trade-off: accounts owned by a program address, including multisig vaults and smart wallets, cannot hold the coin. Hold it in a regular wallet.

Milestones

A vault has 1 to 8 milestones whose unlock shares add up to 100%. Reaching a milestone releases its share of both the locked tokens and the accrued fees.

PROGRAM_SHIPPED · target in upgrades
Deploys and upgrades of the declared program. Each upgrade is one ship event. The program's upgrade authority must be the creator's wallet at launch.
PROGRAM_USERS · target in wallets
Unique wallets that signed a successful transaction on the declared program. The creator, and wallets funded by the creator or linked wallets in the previous 7 days, are excluded.
PROGRAM_TXS · target in txs
Successful transactions sent to the declared program, with the same creator and linked-wallet exclusions as program users.
ONCHAIN_REVENUE · target in USD
SOL and USDC received by the declared revenue wallet, converted to USD at the Pyth price when received. Transfers from the creator or linked wallets do not count.
HOLDERS · target in holders
Wallets holding more than the minimum balance. Lockstep pool and vault reserves are not counted.
VOLUME · target in SOL
Cumulative buy and sell volume of the pool, in SOL. Read straight from the pool account.
MCAP_HELD · target in USD
Market cap stays at or above the target for N consecutive days. Pool price times Pyth SOL/USD, sampled every hour. One sample below the target restarts the count.

Dormancy. Each vault has a dormancy window of 7 to 90 days. If no ship event is recorded for that long, anyone can close the vault. Tokens that were never unlocked are burned, fees that were never unlocked go to the treasury, and whatever was already unlocked stays claimable.

Anti-sybil

User, transaction and revenue milestones ignore the creator's own activity. A wallet is excluded when it is the creator, or when it was funded by the creator or by a wallet linked to the creator in the previous 7 days. Revenue sent from those wallets does not count.

Oracle model

Only VOLUME is read directly from the pool account. The other milestones are computed off-chain from public on-chain data and written to the vault by an oracle key. That is a trust assumption, and it is bounded:

  • Progress can only go up, never down.
  • Each update is capped by a maximum step set at launch.
  • The oracle cannot move tokens or SOL. It only writes progress numbers.
  • The creator can freeze the oracle permanently. Frozen progress can no longer change.
  • Every update is a public transaction.

Official addresses

lockstep program
not deployed yet
lockstep_hook program
not deployed yet

Until addresses are published here, any program or token claiming to be Lockstep is not.

FAQ

Can I launch a coin today?
No. You can fill in the launch form and your draft is saved in your browser, but launching is closed until the programs are on mainnet.
Can selling ever be blocked?
No. Neither milestones, the pause, nor dormancy touch the sell path.
What does the creator get if they never ship?
Nothing from the vault. The dev buy is burned and the fee share goes to the treasury.
Does the composer write smart contracts?
No. It turns a sentence into settings for the builder, and those settings are validated the same way as ones typed by hand.