Skip to content

Quantums and Subticks

In dYdX, quantities and prices are represented in quantums (for quantities) and subticks (for prices), which need conversion for practical understanding.

Quantums

The smallest increment of position size. Determined from atomicResolution.

atomicResolution - Determines the size of a quantum. For example, an atomicResolution of -10 for BTC, means that 1 quantum is 1e-10 BTC.

Subticks

Human-readable units: USDC/<currency> e.g. USDC/BTC

Units in V4 protocol: quote quantums/base quantums e.g. (1e-14 USDC/1e-10 BTC)

Determined by quantum_conversion_exponent, this allows for flexibility in the case that an asset’s prices plummet, since prices are represent in subticks, decreasing subticks_per_tick would allow for ticks to denote smaller increments between prices.

E.g. 1 subtick = 1e-14 USDC/1e-10 BTC and if BTC was at 20,000 USDC/BTC, a tick being 100 USDC/BTC (subtick_per_tick = 10000) may make sense.

If BTC drops to 200 USDC/BTC, a tick being 100 USDC/BTC no longer makes sense, and we may want a tick to be 1 USDC/BTC, which lets us set subtick_per_tick to 100 to get to a tick size of 1 USDC/BTC.

Interpreting block data

Interpret1

Buy or Sell

First, notice row I is negative. That means this trade is a sell by the taker account. If It was positive, it would be a buy.

Market determination

Next, look at row N. The perpetual_id is 7, which maps to AVAX-USD market. You can see all the mappings from this endpoint for the dYdX Chain deployment by dYdX Operations Services Ltd. https://indexer.dydx.trade/v4/perpetualMarkets where the clobPairId is the perpetual_id.

Quantity determination

Next, we need to get the decimals for this market. First, get the atomicResolution from that endpoint above which we see is -7. Now we can get the size of the trade. From row I and J, take this number -500000000 and multiply by 10^(AtomicResolution) and you get: -500000000 x 10^-7 = 50, so the quantity is 50.

Price determination

Next, look at row, E, F, G, H, I, and J

Interpret2

The price of the trade is either abs((G+E)/I)*10e(-6 - AtomicResolution), or abs((H+F)/J)*10e(-6 - AtomicResolution), either one is the same. Note that the ‘-6’ is because the AtomicResolution of USDC is -6.

abs((1479130125 + 369875)/-500000000)*10e(-6 + 7) = 29.59

abs((-1479337255 - 162745)/500000000)*10e(-6 +7) = 29.59

Conclusion

In conclusion, we have determined that this trade is SELL 50 AVAX-USD at price $29.59