ARCBALLdocsFollow on X ↗

Hold weight

How hold time multiplies your share, and what resets it.

Your share of a roll is not just your balance. It is your balance multiplied by how long you have held it.

weight  = balance × multiplier(heldDays)
share   = weight / totalWeight
payout  = share × ballBalance

The curve

The multiplier starts at 1.00× the moment you acquire tokens and saturates toward 2.50×:

multiplier(d) = 1 + 1.5 × (1 − e^(−0.026 × d))

It is deliberately steep early and flat late. A week in you are at roughly 1.25×; a month in, about 1.81×; by six months you are close to the 2.50× ceiling and further holding changes very little.

HeldMultiplier
0 days1.00×
7 days1.25×
30 days1.81×
90 days2.36×
180 days2.49×

The ceiling matters as much as the slope. Without one, the earliest wallets would compound their advantage indefinitely and the protocol would slowly become a pension for its first ten addresses.

What resets it

Any outgoing transfer resets your multiplier to 1.00×. Not proportionally — entirely, on your whole remaining balance.

That includes moving tokens between wallets you own, and selling one token out of a million. The contract cannot tell the difference between you reorganising your own holdings and you exiting, and a rule that tried to guess would be a rule people could game. So it does not guess.

Buying more does not reset you. Incoming transfers blend instead: your hold age is recalculated as the balance-weighted average of what you had and what just arrived. Adding a small amount to a long-held position barely moves your multiplier.

Worked example

Two holders, both with 10,000 tokens, at a roll of 25,000 USDC where the total hold-weighted supply is 4,000,000.

HeldMultiplierWeightPayout
A90 days2.36×23,600147.50 USDC
B2 days1.05×10,50065.63 USDC

Same balance, 2.25× the payout. If A sells a single token the day before the roll, A drops to 1.00× and takes less than B.

The slider on the home page plots the same curve the contract uses.