Skip to main content

Running Dyma Jobs

Dyma Jobs is paid work that projects post outside their campaigns (see Jobs for earners). It is on by default on Dyma UTXO. Operators run it from Admin, with the platform:manage permission; disputes are also open to moderation:global.

Settings​

Admin → Settings → Jobs holds every setting. Changes apply to jobs published from then on; a published job keeps the terms it was published with.

SettingDefaultRangeWhat it does
Jobs ononOff stops new work only: the board, applications, drafts, publishing, invitations and hiring. Work under way keeps going (deliveries, reviews, claims, payouts, disputes).
Default fee5%0–10%Dyma's commission per task or per period, never per revision. 10% is the job escrow's cap.
The project pays the fee on toponOn: the worker gets the advertised reward and the project pays the reward plus the fee. Off: the fee comes out of the reward.
AssetsADA, USDM, USDCxThe assets a job may pay in, matched by exact unit. No other token is ever accepted.
Minimum reward10 ADA, 5 USDM, 5 USDCxPer task or per period.
Dyma Points per task, per period100, 400–1,000,000Granted when the project approves a task or a period.
Reputation per task, per period10, 40–100,000Granted with the points.
Review deadline7 days1–90After a delivery, before the worker may report a review that never came.
Payment deadline7 days1–90Direct jobs: after approval, before the worker may report a missing payment.
Dispute window7 days1–90How long a worker may contest a rejection, an ending, or a late review or payment.
Escrow claim margin60 days7–3,650Added to the last deadline an escrow funds: until then the project cannot reclaim the escrow without Dyma.
Open jobs per project501–10,000Published and not yet closed.
Applications per job2001–100,000A public job stops taking applications at this count.
Applications per person per day201–1,000Across every job, per UTC day.

On Dyma (Cosmos) jobs stay off and cannot be turned on: there is no Cosmos job escrow or fee rail.

Negotiated rates​

Settings → Jobs → Negotiated rates gives a project its own fee instead of the default: its slug or id, the rate (0–10%) and a note saying what was agreed. The rate applies to the jobs the project publishes from then on; Back to the default removes it. Studio shows the project its rate. Every change is in the audit log.

The job escrow​

Escrow jobs lock their reward and Dyma's fee in the job escrow, a contract of its own, separate from the campaign escrow (see Smart contracts and Deployments).

  1. The attester key. Dyma signs every job funding ticket and every approval (assignment, release, withdrawal) with the jobs_attester credential, a raw Ed25519 key distinct from the campaign ticket key. In Admin → Escrow → Cardano → Job escrow, a super admin stores or rotates it, and Test shows its public key. In production, ops/prod-set-credentials.sh --edition utxo jobs stores it from the secrets folder.
  2. Deploy with the contracts repository's scripts/deploy/deploy-jobs.mjs: the configuration names the governance keys, the attester's public key, the treasury that receives Dyma's fees and the fee cap. The record deployments/<network>.jobs.json is committed to the repository.
  3. Register it: Job escrow → Register deployment, pick the network and paste or upload the record. It becomes the network's active job escrow; one it replaces stays listed, inactive, and its jobs keep working.

The panel then reads the active deployment on chain on every load: whether its attester is Dyma's key, the treasury, the fee cap, whether governance paused it, and how many jobs it holds. A paused job escrow refuses fundings, assignments, releases and withdrawals; owners can still reclaim after expiry.

Without a job escrow on a network, projects there can still post direct jobs: they pay workers themselves and pay Dyma's fee in advance.

Dyma's operator wallet pays the network fee and collateral of every worker's claim and every assignment, within the daily budget of sponsored claims (Escrow → Cardano → Sponsored claims).

Jobs and disputes​

Admin → Jobs lists every job, with filters (status, funding, suspension, open disputes) and the next step each one waits for. A job's page shows its work round by round with the project's reviews, the payouts, the escrow (pool, claimable, reserved, withdrawable, expiry), direct fees and credits, the activity and the audit trail. From there an operator can:

  • Suspend a job, with a reason sent to the project: it leaves the board and nothing moves until the suspension is lifted.
  • Cancel it as Dyma, with a reason: the work ends and applicants are told. Approved work keeps its pay; funds no approved work needs go back to the project.

Admin → Jobs → Disputes is the queue of disputes workers opened. Notices to the operators' inbox link each new one. Open one, read the worker's reason and the job, and Resolve:

DecisionEffect
Release to the workerThe task or period is approved, for its whole reward or the part you enter. Escrow: the worker can claim it. Direct: the project owes the payment. On a direct job, the fee prepaid on a part not released becomes a credit of the project.
Return to the projectThe task or period closes unpaid. Escrow: its funds become withdrawable by the project. Direct: its prepaid fee becomes a credit of the project.

The decision note is required; the project and the worker both read it. While a dispute is open, the funds it covers cannot be withdrawn.