Back to blog
Versalist Blog
July 4, 20264 min read

Making AI Challenge Runs Fairer and More Transparent

A run contract makes the model, the payment source, and the judge explicit before, during, and after every challenge run.

Abstract split panel representing a run contract: model choice, payment source, and judge
Versalist Blog4 min read
Run ContractsLeaderboards

When someone runs a skill against a Versalist challenge, the model choice matters. A run using one frontier model is not automatically comparable to a run using another. The cost source matters too: did the runner spend their own key, or did the platform pay? And for scoring, the judge has to stay fixed, or the leaderboard stops meaning anything.

We shipped a run contract to make all three of those decisions explicit instead of implicit. A run contract is a server-resolved agreement for what model runs, who pays, and how the result gets judged. It is decided before the run starts and shown at every point someone might look at the result afterward.

Diagram showing the Versalist server-resolved run contract across author policy, runner pre-run selection, leaderboard truth, server snapshot, and fixed judge routing
The run contract connects author policy, runner pre-run disclosure, server-side validation, and leaderboard transparency.

For challenge authors: Run Settings

Challenge authors now get a Run Settings section inside challenge editing. This is where they decide how much control runners have over inference.

  • Open: Runners can pick any supported model.
  • Allowlist: Runners can pick only from approved models.
  • Pinned: Everyone uses the same model. Best for serious leaderboard comparisons.

Who pays

Authors also set the payment policy for the challenge:

  • Runner key or platform credits: Either side can cover inference cost.
  • BYOK required: The runner must bring their own key.
  • Platform required: Versalist covers inference cost.

One judge, no matter what ran

No matter what agent model runs, judging stays fixed through the Versalist judge. That keeps scores comparable and keeps runner-owned inference from mixing with platform-controlled evaluation.

For runners: clear inference before spending tokens

Before starting a run, runners now see an Inference block in the pre-run card.

  • Which model will run
  • Whose key pays: Your own key or platform credits.
  • Estimated cost
  • Comparable or mixed-model: Whether this run is directly comparable to others on the leaderboard, or a mixed-model practice run.
  • Which judge will evaluate the result

The run button reflects the actual contract: "Run with Google Gemini 2.5 Pro using your key." No ambiguity about what happens when you spend the tokens.

For leaderboards: inference truth

Leaderboards now show the model and key source behind each ranked run. A viewer can see:

  • Model used
  • Runner key vs. platform key
  • Comparable or Mixed-model badge
  • Same-model filter
  • Fixed judge disclosure

If every ranked run used the pinned model under the same policy version, we mark it comparable. If runs used different models, the UI says so instead of pretending all scores mean the same thing.

Why this matters

AI evaluation is only useful when the conditions producing it are clear. This module makes those conditions explicit instead of buried in a run log.

Authors control the challenge policy. Runners see cost and model before they spend anything. Viewers can read a leaderboard and know exactly what the numbers do and do not mean.

What ran, who paid, and how it was judged: that is the contract between author, runner, and evaluator.

Related posts