Skip to content

Earn Mode

Earn Mode is a policy: a switch, a set of conditions, and a set of limits. It's enforced where it runs — in the browser today (see Earn Mode in the browser), or by the optional desktop app later. Each shows only the conditions and limits it can actually enforce.

The model is EarnModePolicy in shared/src/earn-mode.ts.

Conditions

All enabled conditions must be true before anything is contributed.

Condition Meaning Default
Idle No keyboard or mouse input for N minutes On, 15 minutes
Plugged in The computer is on external power On
Battery Battery at or above N%. Treated as met on devices without a battery On, 50%
GPU usage The owner's own GPU use is below N% On, 20%
Active hours Local time is inside a window, which may cross midnight Off, 23:00–07:00

Earn Mode itself is off by default. Nothing contributes until the person turns it on.

Evaluation

evaluateEarnMode(policy, inputs) returns a check per enabled condition (met, unmet or unknown) and a single ready flag.

  • ready is true only when Earn Mode is on and every check is met.
  • An unknown reading never counts as met. If the device can't tell whether it's idle, Earn Mode waits.
  • When any condition stops being met while contributing, contribution must stop promptly and the state change must be reported.

The website's Earn Mode page runs this same function against a hypothetical computer so people can try the rules.

Limits

While contributing, Idlecash stays within these bounds:

Limit Range
CPU share 10–100%
GPU share 10–100%
Storage allocation 0–2,000 GB
Bandwidth 0–1,000 Mbps

Resource groups (compute, storage, bandwidth) can also be switched off entirely. Storage and bandwidth are off by default and marked "coming later" in the product until supported workloads exist for them.

States

State Meaning
off Earn Mode is switched off
waiting On, but a condition isn't met
ready All conditions met; waiting for a workload
contributing A workload is running within the limits
paused Temporarily paused by the owner