Skip to main content

Token rewards

Points (DP) are Dyma's own score. A campaign can also have a reward pool in a real token (for example USDC or SAF on Safrochain). At the end of the campaign the pool is split between the earners who qualify, in proportion to their points in that campaign unless the project chose an equal split, under the rules the project set for that campaign.

How your share is computed​

your share ≈ pool × your points ÷ all eligible points (split by points, the default)
your share ≈ pool ÷ number of eligible earners (equal split)
  • Which points count: quests you submitted before the campaign ended and that were verified before the end of the review grace (24 hours by default, set per campaign between 1 and 72 hours). Anything still in review after the grace is out.
  • Amounts are rounded down to the token's smallest unit; the few units left over are handed out one by one so the whole pool is used. The exact rules, with examples, are in Distribution modes and the split.

During the campaign the campaign page shows your points, your share so far and a projected amount. After the grace it shows the final amount.

The campaign's split rules​

Each project sets these rules per campaign. The campaign page lists the ones that are set under How rewards are split, in the reward pool card and in the escrow explainer.

RuleWhat it meansShown as
Splitby points (the default): your share follows your points. Equal: every earner who qualifies gets the same amount"Split by points" / "Equal split"
Minimum pointsyou need at least this many DP in the campaign to qualify"At least 200 DP to qualify"
Top Nonly the N earners with the most points are paid"Top 50 earners by points"
Maximum payoutthe most any one earner can receive, whatever their points"Max 100,000 SAF per earner"
Minimum payouta share below it is not paid (by default one hundredth of a token, e.g. 0.01 USDC)"Min 1,000 SAF to be paid"

In automatic mode the rules are locked with the pool in the escrow: once the project has funded it, they cannot change. In manual mode the project pays the split Dyma computes with the same rules.

Worked example​

Pool 1,000,000 SAF, maximum 100,000 SAF per earner, minimum payout 1,000 SAF, every earner with the same points (or an equal split), Dyma fee 0 (the default):

EarnersEach receivesPaid outBack to the project
2100,000 SAF: an even split would give 500,000, but no one gets more than the maximum200,000 SAF800,000 SAF
10100,000 SAF1,000,000 SAFnothing
2050,000 SAF1,000,000 SAFnothing

Every share here is above the 1,000 SAF minimum, so everyone is paid. With equal shares, the whole pool is paid only when earners × maximum ≥ pool; when points differ, whatever a share has above the maximum also returns to the project, it is never handed to the other earners.

What goes back to the project​

Whatever earners do not receive (apart from Dyma's fee, 0 by default) returns to the project:

  • At completion (automatic mode), in the same transaction that completes the escrow: rounding dust, amounts not paid because of the minimum or the maximum, and the unused fee reserve.
  • After the claim window: payouts still unclaimed when the claim deadline passes (for example a transfer that failed and was never claimed).
  • If the split expires (Dyma does not finalize it before the commit deadline): the whole pool.

In manual mode the pool never leaves the project's wallet, so whatever is not paid simply stays there.

Two ways the pool is paid​

Manual distributionAutomatic distribution (escrow)
Where the pool isin the project's walletlocked in an escrow contract on Safrochain since before the campaign went live
Who paysthe project, with Dyma's payout assistantthe contract, after a public challenge window
What you see"Paid by project" and the payout transactionescrow address, funding transaction, live balance, then your payout transaction
Guaranteethe project's word: Dyma computes the exact amounts and checks every payout transaction on chain, but cannot force paymentthe pool cannot leave the escrow except to earners (or back to the owner, see What goes back to the project)

Automatic: the timeline​

  1. Campaign ends. Points stop counting new completions.
  2. Review grace (default 24 h). Pending reviews are decided; payout addresses are fixed.
  3. Commit and finalize. Dyma's operator writes the allocation (address and weight per earner) to the escrow and publishes the allocation file whose SHA-256 is recorded on chain.
  4. Challenge window (default 24 h, between 1 hour and 7 days). Anyone can check the allocation; the project can dispute it once, and Dyma's guardian multisig can reject a wrong one (it is then recomputed and committed again).
  5. Payouts. The contract pays everyone in batches. Gas is paid by Dyma's operator. If a payout to your address fails, it stays reserved for you.
  6. Claim (optional). Until the claim deadline (by default 180 days after payouts open) you can also call claim yourself from your wallet — useful if your payout failed or you do not want to wait for the next batch.

If the escrow is paused (by Dyma's pauser or guardian, e.g. during an incident), every deadline stops with it and resumes for exactly the time that was left; a pause never lets a window lapse.

Manual: what the project does​

After the review grace the project gets the final list (same computation) and pays it, usually in batched transfers prepared by Studio. Dyma checks each transaction on chain — sender, recipients, exact amounts and token — and marks the matching payouts as paid. Your Rewards page then shows the transaction.

Where to see it​

  • Campaign page → reward pool: pool, mode, phase, the split rules, your projected or final amount, and (automatic mode) the escrow's contract, funding transaction and a "Check it yourself" button that reads the contract from a public node in your browser.
  • Rewards: every payout with its status, amount and transaction link.

To check an escrow independently of Dyma, follow Verify an escrow on the explorer.