dAPP
Connect walletExit

The contract

Every method this app can call, and what each one costs.

Publish tender
ContractGENVM PYTHON
0x533CED45454C3BeA3c2eC378997aF002c4822899

On GENLAYER STUDIO. Source version 4. An entry deposit is 0 GEN, an appeal bond is 0 GEN, and the award fee is 0% - all read from the contract, not from this page. Run npm run verify to check this deployment against the source in the repo.

Write methods20
  • open_roundWRITE
    (title, summary, criteria, weights, primary, windows, eligibility)

    Escrows the budget and freezes the criteria. There is no method that edits either afterwards.

  • check_criteriaWRITE
    (criteria)

    The scorability gate. Final in both directions, so criteria cannot be re-asked until they pass.

  • commitWRITE
    (round_id, commitment)

    Stores a sha256 that binds your own address. Costs the entry deposit.

  • amendWRITE
    (round_id, bid_index, commitment)

    Replaces a sealed digest while the commit window is open.

  • withdrawWRITE
    (round_id, bid_index)

    Cancels a sealed bid before the window closes and returns the deposit.

  • revealWRITE
    (round_id, bid_index, salt, proposal)

    Refused unless the hash of address, proposal and salt matches what was sealed. Eligibility is not re-checked, so a bid sealed in good faith can always be opened.

  • scoreWRITE
    (round_id, bid_index)

    Permissionless. Runs the comparative consensus that grades one bid.

  • appeal_scoreWRITE
    (round_id, bid_index, argument)

    Once per bid, by its own bidder, against a bond forfeited unless the re-score raises the total.

  • resolve_appealWRITE
    (round_id, bid_index)

    Permissionless. Re-scores the bid with the argument in front of the network.

  • askWRITE
    (round_id, question)

    Open to any address. Closes with the commit window.

  • answerWRITE
    (round_id, question_index, reply)

    Buyer only, once, and closes with the commit window.

  • awardWRITE
    (round_id)

    Buyer first, then anyone once the decision window has passed.

  • declineWRITE
    (round_id, why)

    Returns the budget, and the deposit of every bidder who turned up. A commitment nobody ever opened still forfeits. Never charges the fee.

  • expireWRITE
    (round_id)

    Abandons a round that cannot be awarded, so escrow is never stranded. Refuses while an appeal is open: resolving one is permissionless, so that is not a dead end.

  • sweepWRITE
    (round_id)

    Marks bids that were never revealed, so the record matches reality.

  • claimWRITE
    (round_id, bid_index)

    Each bidder pulls what they are owed. Nothing is pushed.

  • collect_forfeitsWRITE
    (round_id)

    Permissionless. Sends the deposits of bidders who never revealed to the treasury, which is what pays for scoring the bids that did arrive.

  • transfer_ownershipWRITE
    (new_owner)

    Owner only. Refuses the zero address, so the role cannot be dropped by accident.

  • set_termsWRITE
    (fee_bps, entry_deposit, appeal_bond)

    Owner only, and it never reaches a round that already exists.

  • set_treasuryWRITE
    (treasury)

    Owner only. Where the award fee is sent.

Read methods10
  • termsREAD

    Fees, deposits and every published limit.

  • statsREAD

    Running totals: rounds, bids, escrow, payouts.

  • checkREAD
    (digest)

    The stored scorability verdict for a criteria set. Read before publishing, so wording already judged is never re-asked.

  • rounds_pageREAD
    (offset, limit)

    A page of rounds, newest first.

  • roundREAD
    (round_id)

    One round with its frozen criteria and weights.

  • bidsREAD
    (round_id)

    Every scorecard, proposals cut to a preview.

  • bidREAD
    (round_id, bid_index)

    One bid with its proposal in full.

  • questionsREAD
    (round_id)

    Every clarification, asked and answered.

  • bidderREAD
    (address)

    What an address entered, opened, scored and won.

  • buyerREAD
    (address)

    What an address published, awarded and declined.