DEEPSTATEDOCS
Market Making

Full-Reward Quantity

Decimal-aware whole-token targets with proportional rewards below each target.

Each Rewarder V3 side has a full-reward quantity denominated in the token the maker sells.

quantityFactor = min(soldAmount / fullRewardQuantity, 1)

An order below the target earns proportionally less. An order at or above it receives the full quantity component, but remains subject to the emission ceiling and spread multiplier.

Thirty-day ramp

The target begins at one whole token and rises geometrically for 30 days after that side activates:

Q(t) = 1 token × (Qmax / 1 token)^(min(t, 30 days) / 30 days)

It remains at Qmax for the rest of the 365-day schedule.

Full-reward quantityExponential ramp · logarithmic quantity axis
USDG bid sideNVDA side
10^010^110^210^310^410^510^60d5d10d15d20d25d30d

The value is evaluated continuously in wall-clock seconds and stays flat after day 30.

NVDA/USDG targets

Pool sideMaker sellsStartDay-30 maximumRaw startRaw maximum
NVDA/USDG bidUSDG1 USDG1,000,000 USDG1e61_000_000e6
NVDA/USDG askNVDA1 NVDA5,000 NVDA1e185_000e18

Generic token decimals

Factory callers provide whole-token maxima, such as 20_000. The Factory reads decimals(), uses one whole token as the start, and scales the maximum into raw units. Native ETH uses 18 decimals.

The Factory rejects a maximum above 1,000,000 whole tokens relative to the one-token start. It does not require a token to be USDG, NVDA, 6 decimals, or 18 decimals.

Continuous integration

The target moves continuously while an order is active. The rewarder analytically integrates the quantity factor against the emission curve rather than sampling only the start or end of an interval.

quantityAdjusted[a,b] = integral from a to b of min(soldAmount / Q(t), 1) dC(t)

The result is then multiplied by the spread factor applicable to that checkpointed interval.

On this page