RevenueDocs / Protocol / The peg & market maker

The peg & market maker

The peg is the whole reason DUALITY exists: one coin living on Solana and Base at the same time, with one price between them. This page explains exactly how that price is held — the band, the math, the vault that does the work, and the places where it can strain.

The band: a leash, not a cage

Each dual coin's two prices are allowed to trade anywhere within ±5% of each other. Inside that band, the protocol does nothing at all — Solana trades at Solana speed, Base trades at Base depth, and small differences are just the two crowds disagreeing for a few minutes. That disagreement is healthy; it's what arbitrage traders eat.

The band is what makes a dual coin one coin rather than two coins with the same name. Without it, the two listings would drift apart permanently — the exact failure you see when teams launch on one chain and bridge a wrapped copy to another.

Why 5%? Wide enough that routine volatility almost never triggers the market maker (corrections cost spread and bridge fees), narrow enough that neither side's holders ever feel like they own the "cheap version." Loop-style dual-venue systems converge on similar widths for the same reason.

Reading the gap

Every block on each chain, keepers compute the gap between the two venue prices, each expressed in USD via that chain's native oracle:

gap = (P_sol − P_base) / mean(P_sol, P_base)

# examples
P_sol $0.00105 · P_base $0.00100 → gap = +4.9% → in band, MM idle
P_sol $0.00112 · P_base $0.00100 → gap = +11.3% → out of band, correction fires

A positive gap means the Solana side is rich; a negative gap means the Base side is. The sign decides which direction the market maker trades.

A correction cycle, step by step

Say a whale market-buys on Solana and pushes the gap to +11%. Here's the full sequence, exactly as the simulation on the home page plays it:

SOLANA rich side: SELL MMVault batch + bridge BASE cheap side: BUY proceeds inventory spread captured on every leg → fee flywheel
one correction leg: sell rich side → rebalance through vault → buy cheap side
  • 1 · Detect. Keepers see |gap| > 5% and arm the correction engine for that coin.
  • 2 · Sell the rich side. The vault sells coin inventory on Solana into the inflated bid — capturing the premium as spread.
  • 3 · Buy the cheap side. Simultaneously, the vault's Base float buys coin on Base at the discount.
  • 4 · Converge partially. Each cycle closes 18% of the gap, not all of it. A +11% gap takes roughly 5 cycles (~a few minutes) to re-enter the band.
  • 5 · Rebalance later. Inventory drift between chains is squared up through the bridge in batches, on a schedule — never inside the correction itself.

Why only 18% per cycle?

Instant convergence would make the MM a free lunch: snipers could sandwich its predictable full-size orders, and a single oracle misprint would make it dump an entire inventory at the wrong price. Partial steps cap the damage of any one bad cycle, cost attackers more than they can extract, and still close gaps in minutes rather than hours.

The MMVault

Every dual coin gets a dedicated vault at genesis, seeded from the launch deposit. It holds three things:

HoldingWhereJob
Coin inventorySolana + Basesold on whichever side is rich
Quote float (SOL / ETH-USDC)Solana + Basebuys whichever side is cheap
Bridge floatin transitabsorbs rebalancing between chains

The vault is self-feeding: 15% of all protocol revenue flows back into it (see Fees), so heavy correction activity — the thing that drains it — is also the thing that refills it. Vault balances are public, per coin, on-chain.

The vault never holds user funds. Traders trade against the curves and DEX pools as normal; the vault is just another market participant with a rulebook and no feelings.

Bridging & batching

Corrections themselves never wait for a bridge — both legs execute from local inventory on each chain. The bridge only enters the picture afterwards, to square up inventory drift, and it does so in batches on a rolling schedule.

  • Traders never bridge. You buy on the chain you live on. Period.
  • Your tokens never wrap. Both deployments are native; the vault moves its own float, not user assets.
  • Congestion degrades gracefully. If the bridge slows, local inventory thins and the effective band widens until batches land — corrections continue, just smaller.

Band states

Every dual coin is always in exactly one of four states, shown live on its coin page:

StateConditionWhat the MM does
IN BAND|gap| ≤ 5%nothing — memes may meme freely
CORRECTING|gap| > 5%18%-per-cycle convergence, both legs
WIDEbridge congested or vault < 20% targetcorrections continue at reduced size; effective band up to ±8%
SUSPENDEDa chain halted or an oracle is staleband paused; live chain trades on alone until both legs return

Parameters

ParameterValue
Peg band width±5%
Wide-state band±8%
Convergence per cycle18% of gap
Cycle cadenceevery block, per chain
Oracle sourcesPyth (Solana) · Chainlink (Base)
Oracle staleness limit30s
Vault refill from revenue15%
Bridge batch cadencerolling, ≤ 30 min
Max single-cycle trade2% of vault inventory

Template note: these are the reference parameters this concept ships with — tune them to your deployment and audit before publishing them as fact.

What can break (honestly)

Peg break. One-sided flow bigger than the vault's inventory leaves the gap open until fees refill it. The band is a market mechanism, not a redemption promise — a dual coin is never "backed" by its twin.
Oracle divergence. The gap is only as real as the two oracles. A stale or manipulated print flips the engine to SUSPENDED rather than letting it trade on bad data — 30 seconds of staleness is the cutoff.
Bridge failure. A halted bridge can't stop corrections (they're local), but it stops rebalancing. Prolonged failure drains one side's inventory and forces WIDE, then SUSPENDED.

Every state transition is emitted on-chain and mirrored to the coin's page in real time. The protocol's position is simple: when the mechanism strains, it says so in public, immediately.

Questions traders actually ask

Can I arbitrage the band myself?

Please do — inside the band you ARE the market maker. Anyone closing small gaps before they hit 5% earns the spread the vault would have taken, and the peg gets stronger for free.

Does a correction dump on my chain?

A correction sells the side that's expensive relative to its twin — it pushes your price toward the shared fair price, capped at 2% of vault inventory per cycle. It cannot push a coin below its twin.

What do I actually hold — is it wrapped?

Native tokens only. SPL on Solana, ERC-20 on Base, both minted at genesis. Nothing you hold ever touches the bridge.

What happens to the peg after graduation?

Nothing changes. The vault keeps running against the Raydium and Aerodrome pools exactly as it did against the curves — the band is for life, funded by the fee flywheel.