Dodo

Dodo guide is a Method for Tuning Slippage Factor k in Concentrated PMM Liquidity

Dodo guide is a focused method for choosing slippage factor k in DODO's Proactive Market Maker curve. A smaller k keeps quoted prices closer to reference price i, concentrating usable depth near equilibrium; a larger k makes the quote react faster as base or quote inventory leaves its target. The setting therefore links four inputs - reference price, reserve targets, inventory state, and k - to two outputs: price sensitivity and executable depth. This page explains the costly failure first: low k combined with a stale i sells too much inventory around the wrong price. It then shows the permitted range, formula, pool controls, V3 differences, and monitoring decisions that keep concentration aligned with the market.

The short version: It is a PMM tuning method in which smaller slippage factor k values concentrate depth near the reference price, while larger ones raise slippage.

Low k Magnifies a Wrong Reference Price

A low slippage factor decides whether DODO's concentration becomes useful depth or misplaced liquidity, because the pool keeps quoting near reference price i as inventory changes.

At k = 0, price remains i until one side runs out; at k = 0.01, the response is still gentle, so even a modest reference error persists across substantial flow. A trader does not need to know why i is stale: the quote itself directs trades toward the cheaper side. Once base inventory falls below B 0 , the formula raises its price, but a small k raises it slowly. The operator therefore accepts higher reference-price dependency in exchange for deeper near-i execution. Updating i, sizing reserves, and limiting the interval between reviews become parts of the same concentration decision.

How Small Should k Be?

The right k is the smallest value that keeps guide price i credible throughout the operator's update interval without exposing a reserve to rapid exhaustion.

The documented pool interface exposes k = 0.01 for low-volatility pairs, k = 0.5 for broader pairs, and k = 1 for volatile assets; k = 1 is the documented default in the relevant creation flows. These values are strategy anchors, not performance promises. USDC/USDT or DAI/USDC starts from a stronger reference-price premise than WETH/USDC because the first pairs target similar units. Chainlink-backed guide pricing strengthens the reference input for supported standard pools, while a DODO Private Pool operator owns the update cadence.

A Dodo guide focused on k treats the pair relationship as evidence: a durable peg mechanism, a shared unit of account, and deep external price discovery support a lower value. Narrative correlation or a short calm period does not. Begin with the widest curve consistent with intended execution, then lower k only when reserve monitoring and i updates are reliable. The next test is the formula's response once one reserve moves away from target.

The PMM Curve Behind Price Sensitivity

The PMM equation determines price sensitivity by multiplying inventory imbalance by k, so the same reserve change produces a steeper quote response at larger values.

On the base-shortage branch, the marginal price is P = i[1 − k + k(B 0 /B) 2 ]. The exponent 2 makes sensitivity nonlinear: a falling base reserve increases the squared B 0 /B term, and k decides how much of that term reaches the quote. When B equals B 0 , the ratio is 1 and P equals i. The quote-shortage branch uses the reciprocal form with Q 0 /Q, preserving symmetry between the two assets. If neither side is short, the state multiplier R equals 1, so the curve returns to its guide price.

DODO V2 contracts encode k in 18-decimal fixed-point units from 0 through 1e18, where 1e18 represents k = 1. The endpoints matter: k = 0 produces constant-price quoting, while k = 1 reproduces the constant-product-style curve familiar from Uniswap V2. Values strictly between 0 and 1 concentrate liquidity around i while preserving an inventory-sensitive slope.

Which Inputs Move the Quote?

Four inputs move a classical DODO PMM quote: guide price i, slippage factor k, current inventory, and each asset's equilibrium reserve target. B and Q record current base and quote inventory; B 0 and Q 0 represent targets. Capital size sets how many tokens trade before a boundary is reached. The same k therefore yields different realized slippage in pools with unequal reserves.

Six Stages From Parameter Choice to Live Liquidity

The six-stage PMM setup keeps parameter control with the creator until execution, after which smart contracts hold reserves and enforce the chosen curve.

The workflow matters because k is a contract parameter, not a trader preference. Token approval and funding are separate EVM actions under ERC-20, while pool rules decide who withdraws reserves or revises the curve later.

Process Stage Custody or Control Model
1. Select the token pair and pool type The creator controls the choice, and both assets remain in the creator's wallet.
2. Set i and target inventory The creator controls the proposed reference and reserve plan; no asset moves yet.
3. Choose k and the fee The creator controls parameter selection until the creation transaction is submitted.
4. Approve ERC-20 spending The token contract records an allowance; the wallet retains assets until an authorized transfer executes.
5. Create and fund the pool The pool contract receives reserves and enforces its stored ownership rules.
6. Execute live swaps The contract settles input and output atomically, updates reserves, and sends output to the recipient.
End State Smart contracts hold pool reserves; withdrawal and parameter rights follow the selected pool model.

Pool creation crosses one decisive boundary. Before funding, the creator controls both assets and settings; after funding, the contract enforces the stored state. Public pools issue share accounting to liquidity providers, while a DPP reserves provision and parameter rights to its creator. Read the final transaction preview as a custody transition and a curve commitment.

Pool Controls Across DVM, DSP, and DPP

Pool type determines who changes k after deployment, who supplies inventory, and whether the curve behaves as public liquidity or a managed quotation.

Before any of that matters, DODO V2 groups permissionless liquidity into three named contract families: DODO Vending Machine (DVM), DODO Stable Pool (DSP), and DODO Private Pool (DPP). The product interface describes four creation choices - standard, pegged, single-token, and private - because it presents strategy shapes rather than only contract acronyms. DVM supports flexible single-token inventory, DSP concentrates paired assets around a peg, and DPP gives one creator active control. Those ownership differences determine whether a selected k remains a creation-time commitment or a managed variable.

A public pool creator cannot revise k after deployment, while the DPP creator changes guide price i, k, fees, and reserve sizes. Standard-pool administration remains separate from creator ownership.

The V2 proxy method resetDODOPrivatePool exposes DPP control in one transaction. Its signature contains 7 top-level arguments. Two arrays carry 3 curve settings - LP fee, i, and k - and 4 reserve movements - base in, quote in, base out, and quote out. Two minimum-reserve guards and one deadline constrain execution. Because reserve changes and curve changes settle together, the operator keeps the new k aligned with the inventory that supports it.

DSP or DVM suits a rule set established at launch; DPP suits an operator who revises concentration as external markets move. The ownership model decides the next action.

What Changes in DODO V3?

Notably, DODO V3 gives each token two independent PMM sides, so kBid shapes bid liquidity while kAsk separately shapes ask liquidity inside bounded price ranges.

Each V3 side uses 4 conceptual inputs: a lower price, an upper price, an amount, and its own k. Across bid and ask, that makes 8 curve inputs for one token before midPrice and swapFee. Price truncation adds hard boundaries; once a side moves beyond its configured range, no liquidity remains there. VUSD acts as the internal bridge for token-to-token exchange, so execution crosses 2 PMM legs without requiring the trader to hold VUSD. Independent sides deepen bids without forcing the ask curve to move in tandem.

V3 storage packs 11 fields per token; price and amount mantissas use 16-bit storage and stop at 65,535 before decimal scaling. Larger economic values use a smaller mantissa with a separate decimal. Parameter builders must preserve that pair when changing k or inventory.

Range width and k solve different problems. The boundaries decide where liquidity exists; k decides how price bends inside them. Raising k does not restore liquidity outside a V3 boundary. Move the boundary when market coverage is missing, and change k when curvature inside the range is wrong. The adjacent topic is explained in Using Dodo.

Fees, Inventory, and Realized Depth

The executable depth that traders receive reflects k only after swap fees, reserve size, route splitting, and the live distance from equilibrium are applied. DODO's creation choices pair fee tiers of 0.01%, 0.3%, and 1% with the curve. Fees shift the all-in quote without changing k, while depleted inventory steepens the PMM component. A tight curve with small reserves loses usable depth sooner than a larger pool with a higher k. Judge concentration by fee-adjusted execution and reserve balances.

The Right Operator for Concentrated k Settings

Concentrated k settings belong with operators who maintain a defensible reference price, monitor both reserves, and rebalance before a one-sided inventory shortage dominates quoting.

The operator must maintain i from dependable market data, understand ERC-20 units, and automate reserve observation on the chosen EVM chain. A stablecoin issuer managing USDC, USDT, or DAI inventory has a clearer anchor than a team quoting a thin token against WETH. Professional market makers also benefit from DPP or V3 controls because they couple hedging and rebalancing with parameter changes. Passive liquidity providers should favor pool rules whose preset k and ownership model already match their exposure.

Three signals justify tighter concentration: reference prices update on schedule, both reserves remain within operating bands, and external liquidity on venues such as Uniswap V3 or Curve supports rebalancing. If any signal breaks, increase k, widen a V3 range, reduce exposed inventory, or pause new liquidity until the input recovers. Dodo guide is most useful as a control loop: select k, observe inventory response, compare execution, and revise the parameter only where ownership permits.

Things people ask

Does a trader set k before swapping on DODO?

No, a trader accepts the k already stored in the selected pool, controls the input amount, recipient, route preference, and slippage tolerance, and receives the output produced from the pool's reserves, fee, and PMM state, while the pool creator or authorized operator changes k only where that pool's ownership rules permit parameter updates after deployment.

Can concentrated PMM liquidity eliminate impermanent loss?

No, concentration changes the distribution of price impact; it does not remove inventory exposure. A lower k keeps execution near i for longer, which moves more of one reserve when trading is one-sided. If the market price leaves i, the pool finishes with a different asset mix. Fees and rebalancing can offset part of that difference, but k alone cannot guarantee it.

How do ERC-20 decimals affect the on-chain k setting?

ERC-20 token decimals do not change k's normalized range from 0 to 1. DODO V2 stores k with 18-decimal fixed-point precision, while reserve amounts use each token's own units and guide price i combines base and quote units. Incorrect scaling therefore distorts i or inventory amounts rather than redefining k. Integrations should normalize every value before constructing pool or reset transactions.

When should a V3 maker widen the price range instead of raising k?

A DODO V3 maker should widen the range when intended trading has moved beyond the configured bid or ask boundary. Raising k only changes curvature inside an active range; it does not recreate depth past a truncated endpoint. If liquidity exists across the needed prices but reacts too slowly to inventory change, raise k. If the endpoint blocks execution, move that boundary and resize the corresponding side.

Why can a DODO swap revert after showing an acceptable PMM quote?

A DODO swap reverts when the executed state no longer satisfies transaction constraints such as minimum output, deadline, allowance, or available route liquidity. Another confirmed swap can change reserves before inclusion, which changes the PMM quote even though k stays fixed. A restrictive slippage tolerance then rejects the updated output. Refreshing the quote and renewing any insufficient allowance resolve state mismatch; raising tolerance changes the accepted price range and should reflect the pair's liquidity.