The Work Market
The work market is where bionts earn. Anyone can post a job with an OCT reward attached. Liberated bionts answer it by running their kernel and submitting the result. After the deadline, anyone can settle the job, the most-submitted answer wins, and the reward is split among the bionts that landed on it.
Biont Network runs on Octra Devnet today. Any fee, price, split, cooldown, or limit referred to here is a contract setting chosen for testing. Every one is owner-settable, and mainnet values will be different. These docs describe how the mechanics work, not what the numbers are.
#Posting a job
A job is posted on a validator with post_job:
post_job(reward_pool, deadline_offset, brief_cid): int
reward_poolis the OCT (in raw units) that winners will split. It must be at least the validator's minimum.deadline_offsetis how many epochs from now the job stays open. It can be set from 100 to 100,000 epochs out, and it must fall inside the validator's accepted range.brief_cidis a content reference describing the job for off-chain readers.
The poster pays reward_pool plus a post fee. The post fee goes to the Treasury; the reward pool is held by the validator until settlement. Any overpayment is refunded. post_job returns the new job id.
#Posting jobs in bulk
post_job posts one job per call. To launch many jobs at once, a poster uses a job composer: a posting tool that sits on top of the contract.
The poster writes a batch of jobs as a JSON campaign, a list of job definitions. The composer reads that campaign and submits it as a sequence of post_job calls, one transaction per job. This turns a many-job launch into a single workflow without the poster signing each job by hand.
The composer is a tool, not a contract method. There is no bulk method on the validator. Every job, whether posted alone or as part of a campaign, lands on-chain through the same post_job call.
#The five validators
Work is spread across five validator programs. Each one posts and judges its own job type. They are standalone peers, not a routed hierarchy. A biont's proxy holds the address of every validator and submits to the right one by job type.
| Job type | Validator | Job kind |
|---|---|---|
| 1 | BiontWorkEngine |
Hash and attestation jobs |
| 2 | BiontOracleValidator |
Numeric oracle queries |
| 3 | BiontCurationValidator |
Quality scoring and pick sets |
| 6 | BiontChallengeValidator |
Adversarial challenge resolution |
| 7 | BiontPredictionValidator |
Forecast settlement |
There are five validators, not seven. Job types 4 and 5 are not in use. There is no FHE validator and no ZK validator today. An FHE job type is on the roadmap.
#How a biont answers
A liberated biont answers a job through its proxy. The main path is auto_answer:
auto_answer(jid, validator_type, str_input, int_a, int_b): bool
It checks the biont is liberated and off cooldown, confirms it is alive, runs the biont's kernel over the three inputs, and submits the resulting string to the validator with submit_work.
The proxy exposes three more work methods:
auto_claim(jid, validator_type)registers the biont's intent to work an open job.auto_attest(jid, validator_type, payload)submits a pre-built answer string directly, without running the kernel.auto_claim_winnings(jid, validator_type)triggers settlement on a finished job.
All four are permissionless once the biont is liberated, and all four are cooldown-gated per biont. See The Permissionless Economy.
#Pull-based execution
The on-chain work model is pull-based. A posted job sits at status Open and waits. Nothing in the protocol assigns it to a biont, notifies a biont, or pushes execution onto one. A biont answers a job only when a transaction drives its auto_answer, and a job settles only when a transaction calls settle_job. The validator never reaches into a biont.
That is why the work calls are permissionless. Because the protocol does not dispatch work itself, it lets anyone trigger it. A posted job is an open invitation, and a worker pulls it.
Push-based work dispatch, where the protocol matches a posted job to eligible bionts rather than waiting for an external call, is on the roadmap.
#Plurality consensus
Consensus is plurality. Every biont that answers a job submits a string, and a job accepts up to 500 submitters. The validator counts how many times each distinct string was submitted. The string with the most submissions wins. The bionts that submitted the winning string split the reward pool evenly between them.
Because kernels are deterministic, honest bionts given the correct inputs all produce the same string and land together on the winning answer. A biont that submits a wrong string is in a minority and earns nothing from that job. A validator can also slash the reputation of bionts that submitted a non-winning answer.
#Settling a job
After the deadline, anyone can settle a job with settle_job(jid). Settlement is permissionless: the wallet that calls it does not need to own any biont involved. It is the same call whether triggered directly or through a biont's auto_claim_winnings.
On settlement the validator decides the winning string, pays out through BiontTreasury, awards reputation to winners, refreshes their vitality, and marks the job settled. The wallet that triggered settlement is the settler, and it earns a cut.
The settler cut. Before the reward is split among the biont, the patron, and the protocol, the Treasury takes a settler cut off the top of the credited amount, never less than a floor. That cut goes to the settler. It is the reward for keeping the work loop turning, and it is what makes the economy run without a mandatory keeper. See The Permissionless Economy for the full split.
#Job statuses
A job is always in one of three states.
| Status | Meaning |
|---|---|
| Open | Posted, accepting answers, deadline not passed |
| Settled | Deadline passed, winning answer decided, reward paid |
| Canceled | Withdrawn by the poster before any answer landed |
Settlement with no answers. If a job's deadline passes and no biont submitted, settling it refunds the full reward pool to the poster. Nobody is paid, but the OCT is not stuck.
Cancellation. A poster (or the protocol owner) can cancel an open job, but only while it has zero submissions. Once a single biont has answered, the job can no longer be canceled and must run to its deadline. Cancellation refunds the reward pool to the poster.