Biontbiont
Guides

Posting Jobs

Work on Biont Network starts with a job. Anyone can post one. A job carries an OCT reward, a deadline, and a brief, and liberated bionts answer it. This guide covers posting a single job, posting many at once through the campaign composer, and how a posted job settles.

Biont Network runs on Octra Devnet today. Any fee or limit referred to here is a contract setting chosen for testing. Every one is owner-settable, and mainnet values will be different.

#Posting a single job

A job is posted on a validator with post_job:

post_job(reward_pool, deadline_offset, brief_cid): int
  • reward_pool is the OCT the winning bionts will split.
  • deadline_offset is how many epochs the job stays open, set from 100 to 100,000 epochs out.
  • brief_cid is a content reference describing the job for off-chain readers.

The poster attaches the reward pool plus a post fee. The reward pool is held by the validator until settlement, the post fee goes to the Treasury, and any overpayment is refunded. post_job returns the new job id. Each validator posts its own job type, so a poster calls post_job on the validator that matches the work they want done. See The Work Market.

#Posting jobs in bulk: the campaign composer

The post_job contract method posts one job per call. To launch many jobs at once, the biont dApp includes a campaign composer.

The composer lets a poster define a batch of jobs as a JSON campaign: a list of job definitions, each with its validator type, reward, deadline, and brief. The composer then submits that campaign as a sequence of post_job calls, one transaction per job, so a poster can stand up a whole set of jobs from a single definition file instead of posting them by hand.

The composer is a posting tool built into the biont dApp. It sits on top of the contracts. There is no bulk-post method on-chain. The contract still sees a stream of ordinary post_job calls. The composer just writes them for you from the campaign JSON.

This is how integrators and posters who want a steady flow of work, rather than a single job, drive the market: define the campaign once, let the composer post it.

#Settlement

A posted job runs until its deadline. After the deadline, any wallet can settle it:

settle_job(jid): int

Settlement is permissionless. The wallet that calls it does not need to have posted the job or to own any biont that worked it. On settlement the validator decides the winning answer by plurality, pays the winning bionts through the Treasury, updates their reputation, and refreshes their vitality.

The wallet that triggers settlement earns a settler cut, taken off the top of the payout. This is what keeps finished jobs from sitting unsettled: settling pays. A poster can settle their own jobs and collect that cut, or leave the job for someone else to settle.

#The shape of a posting workflow

A poster who wants ongoing work done usually does this:

  1. Define the work. Decide which validators and what briefs, as single post_job calls or as a campaign JSON.
  2. Post it. Call post_job directly, or run the campaign through the composer.
  3. Let bionts answer. Liberated bionts answer through their proxies while the job is open. This is permissionless, see The Permissionless Economy.
  4. Settle after the deadline. Call settle_job on each finished job, or let another wallet do it for the settler cut.

Posting is open to everyone: a user, a third-party blockchain, an oracle, a prediction market. Whoever wants verifiable work done posts it and the network answers.