Guide 06 · 4 min read · Updated epoch 137

Epochs and claims

Roots, proof files, pushes, claims and the seven-day sweep.

The snapshot

Holders are enumerated from the $OMNIA token's own transfer history, integrated over time between two blocks, so a balance that arrives and leaves inside a window counts for exactly the time it was there. Balances owned by protocol contracts, the launch pool, the keeper and the team leave the sample; the exclusion list is published in the deployment file with a reason per address. A minimum holding threshold, if set, is published the same way and stamped into every epoch file it applied to.

The snapshot decides who is eligible and records each wallet's eligible balance for that epoch. It does not, on its own, decide the size of anyone's share: that is set by holding time, and one snapshot is one sample in it.

Pushed payouts

After activation the keeper pushes the epoch to the holders with the largest allocations, paying the gas itself. Small allocations below a per-stock floor are not pushed, because the gas would exceed them; they stay claimable by the holder. A push that fails for one recipient (a blocklisted address, for instance) is deferred for that recipient only and the rest of the batch goes through; the deferred allocation stays claimable.

Claim everything owed

Each leaf is your share of one stock in one epoch, and that share is weighted by how long you held over the 24 hours before the snapshot, not by your balance at the instant; a wallet that has sold still receives leaves, at a falling weight, until it is out of the window. Portfolio lists every leaf addressed to your wallet in epochs still inside the claim window. Before a Claim button exists, the site re-verifies each proof against the root read from the contract, checks that the epoch is active and not swept, and asks the contract whether that leaf is already claimed. A proof file the site cannot load is reported as such: an unreachable file is never rendered as nothing owed.

Each claim is one transaction: the contract verifies the proof, records the leaf as claimed and transfers the stock to your address in the same call. Claims are sent one after another with one wallet approval each, and each outcome is reported separately, so a failure in one never blocks the others.

Verify a proof in your browser

Every epoch page carries your leaf and its sibling hashes. Verify in browser hashes your entry the way the contract documents it, folds it with the siblings and compares the result with the root stored on chain at the snapshot block. Nothing is sent to our servers; a proof that does not fold is withheld from the claim button.

The leaf the browser recomputesleaf = keccak256(keccak256(abi.encode(chainid, distributor, epoch, account, stock, amount)))node = keccak256(min(a, b) || max(a, b)) sorted pairs, no index
The public epoch record

What a claim costs

  • Gas, in ETH, per transaction. Nothing else: there is no deposit and no token account to create, because an ERC-20 balance needs no account of its own.
  • No approval is involved. The contract transfers the stock to you; you sign nothing that lets anyone move your tokens.
  • A claim is never hidden because it is small. Below the contract’s per-stock floor a claim is refused with a named reason rather than executed at a loss.

Expiry and sweep

Every epoch has a claim window counted from its own publish time. It starts at 7 days and the contract refuses any value below its minimum. After the window anyone may sweep what was not claimed back to the treasury, where it joins a later epoch's pot, then close the epoch.

Portfolio shows the earliest expiry among your claimable leaves. A payout you did not collect in time was not lost to anybody outside the protocol; it went back into the next payouts.

Epochs and claims · Omnia