Elgora docs

The Poster flow

The Poster flow end to end — what you decide, what Elgora checks, what goes on-chain, and what you can do afterwards.

You are a Poster if you are paying for an answer. You own two things nobody can take from you: the exact wording of the challenge, and the wallet that funds it. You do not pick the winner — the pinned Guardian roster judges, and the contract settles.

That roster is a committee, not a person: the several independent Guardians the protocol had in place when you created the bounty, recorded on-chain against it so nobody can substitute them later and anyone can check who they were and what each decided. Two thirds of them have to agree before anything settles. See The Guardian roster.

What you need

You needWhy
An EVM wallet you controlIt owns the bounty, funds escrow, and later claims a refund or retrieves the winning work
USDC on the deployment's chainThe reward is escrowed in USDC (6 decimals) at publication
A little native gas on that chainOne funding transaction with authorization; approval plus creation for the allowance fallback
Node.js 24 and @elgora/cli, or the web appThe CLI publishes and funds from your own machine; the app does the same in a browser
A written challengeOne bounty_challenge.md file — see Write the challenge

No account, no signup, no API key. Your wallet is your identity.

Submissions are only as good as the bounty

Solvers and Guardians follow the rules you set, so the challenge decides the outcome before anyone starts. Price it below what solving it yourself would cost you, and high enough to draw Solvers.

The whole flow

Decide and draft

Write one bounty_challenge.md: the task, the deliverables, finite acceptance criteria, a deterministic winner and tie-break rule, the reward in USDC base units, and an absolute submission deadline.

→ Write the challenge

Publish

poster:publish-fund sends the exact bytes to Elgora. The API validates the frontmatter, runs an automated readiness review, stores the bytes, and returns the spec_commitment plus prepared transaction arguments. A challenge that is not practically judgeable is returned to you with a list of issues, and nothing is stored or spent.

→ The readiness review

Fund

The same command signs a USDC authorization and calls createBountyWithAuthorization from your wallet, carrying spec_commitment, the escrow amount, and the deadline. The contract assigns a bounty_id, pins the current Guardian roster to it, snapshots the fee policy, and computes the judging and timeout deadlines.

→ Publish and fund

Wait out the window

Solvers submit until the deadline. Guardians judge after it. You do nothing in this phase — there is no Poster action that influences the result, by design.

→ Lifecycle and deadlines

Handle the outcome

awarded, no_valid_submission, or timed_out. Each has exactly one thing for you to do, and an awarded bounty additionally lets you retrieve the winning Submission's content.

→ Outcomes, refunds, and getting the work

The one command

elgora-cli help poster:publish-fund
elgora-cli poster:publish-fund ./bounty_challenge.md

It needs ELGORA_POSTER_PRIVATE_KEY in the process environment; publishing and funding are not available in external-wallet mode from the CLI. If you cannot inject a process-local secret safely, use the web app instead — it does exactly the same thing with a browser wallet.

Read the emitted bounty_id

The command prints one JSON line per step. The last one carries the bounty_id. That number is how everything else — Solvers, Guardians, the subgraph, your refund, your delivery — refers to your bounty. Record it, along with spec_commitment and the transaction hash.

What this costs you

The reward you set in frontmatter, gas for funding (plus approval when using the allowance fallback), and a protocol fee taken out of the escrow at settlement — never charged separately, and capped in the contract. A timed_out bounty refunds the full escrow with no fee at all.

The rate in force is public state on the Hub, and publishing quotes you the policy that would apply before you sign anything. Your bounty snapshots that rate at creation, so a later change does not touch it.

What a Poster can never do

  • Change the challenge after publication. Publish a new bounty instead.
  • Cancel a funded bounty, or withdraw escrow before an outcome.
  • Overrule, appeal, or veto a Verdict.
  • Read a Submission before finality. The funding Poster is authorized to fetch a Submission's stored envelope, but the artifact keys are time-locked, and the content key for the winning Submission is released only after the contract has finalized awarded.

Read this page as Markdown

On this page