Skip to content
Skip documentation navigation
Introduction

How it works

Code that passed your test, before you paid for it.

8 min read Ormas documentation

The product#

Ormas pays for verified receipts, not inference turns. Describe the change and the test that proves it. Qualified miners offer a firm price, or an estimate with a hard limit. Pass → branch + receipt. You are charged the firm price, or the miner’s settled price — never above its limit. Fail → you pay nothing.

Ormas is an Outcomes API for coding work, and Bittensor subnet 76. This site is the receipt: it shows the run after it happens and never merges or deploys your code. US-only.

Deliveries are checked against the client’s agreed tests. Verification is currently operated by Ormas.

When to use Ormas#

TaskBest fit
A few-line edit someone is waiting forWork inline with your current agent.
Exploration, design or conversational debuggingWork inline or use a subagent.
A bounded task your harness can check and needs this sessionUse a subagent.
A testable ticket with bounded paths and a test that fails correctly on the base, where you can waitUse Ormas.
Several independent, testable ticketsUse Ormas in parallel, within your account's in-flight limit.
A test exceeding the public verifier's 60-second per-call limitSplit the test or work inline; unsupported tests are refused before paid work.
An underspecified task or a weak acceptance testClarify the task and test before submitting.
A whole-repository refactor or work larger than one attemptSplit it into bounded tickets first.
A private repository requiring confidential executionProtected has operator-run production evidence, but the broader client offering is still in testing. Standard allows provider and checker access to plaintext code.

Waiting 10–30 minutes is a planning example, not a delivery promise. We have not established a speed or total-cost advantage over a harness doing the same work with subagents. Preparing a useful acceptance test is part of the customer's effort.

1 — Create an account or sign in#

Create an account or sign in. Google, GitHub, or an email magic link. A new account starts on Start here. Admitted accounts go to Outcomes.

2 — Make an Ormas key and connect your harness#

Open /app/keys. Create an Ormas key (tb_live_…). Copy it once. It is not a model-provider key; Outcomes needs no provider keys from you.

Use Setup to choose Codex or Claude Code and copy its setup command. Your agent can run it on this computer, or you can paste it into Terminal. Setup installs Python privately if needed, checks the client and its agent server, and configures the selected agent using a fixed executable path. You do not need to activate an environment, manage PATH, or set environment variables yourself.

For Codex:

bash
bash -c '(
  installer="$(mktemp)" || exit 1
  trap '\''rm -f "$installer"'\'' EXIT
  curl --fail --silent --show-error --location --proto '\''=https'\'' --proto-redir '\''=https'\'' \
    --connect-timeout 15 --max-time 180 \
    https://ormas.ai/install-client.sh -o "$installer" || {
      echo "Ormas installer download failed. Check your connection to https://ormas.ai and retry." >&2
      exit 1
    }
  bash "$installer" --agent codex
)'

For installation without configuring an agent:

bash
bash -c '(
  installer="$(mktemp)" || exit 1
  trap '\''rm -f "$installer"'\'' EXIT
  curl --fail --silent --show-error --location --proto '\''=https'\'' --proto-redir '\''=https'\'' \
    --connect-timeout 15 --max-time 180 \
    https://ormas.ai/install-client.sh -o "$installer" || {
      echo "Ormas installer download failed. Check your connection to https://ormas.ai and retry." >&2
      exit 1
    }
  bash "$installer"
)'

For Claude Code, choose its command in Setup or the first-task guide. That guide also covers GrokBuild and installation without agent configuration.

Then connect your account in Terminal, using the key you just created:

bash
"$HOME/.ormas-client/bin/ormas" login
"$HOME/.ormas-client/bin/ormas" doctor

Paste the key only into the login prompt, never into agent chat. These commands work immediately without changing terminal settings. Setup also configures the short ormas command in supported shells for future terminals. Restart your coding agent after login, then ask: “Check my Ormas connection and show my projects. Do not start paid work.” See installation troubleshooting if setup reports an error.

On macOS (Apple Silicon or Intel), or any machine without a native Linux/amd64 Docker engine, ask your agent to prepare with preflight_mode: "deferred". No Docker is needed. The provider checks the unfixed base before any paid work. Every failing acceptance case must fail at a plain assert (an AssertionError). An exception (for example KeyError), an import error, or extra output mixed into the test result (a library warning printed into the result) is refused before any paid work, with $0 charged, as your task fault: it did not fail at an assertion. Keep warnings and prints out of the result. If the check already passes on the base, the job ends as no-delivery at $0, so commit a failing acceptance check first. Linux/amd64 with Docker may keep the default local preflight for immediate feedback. On Windows, use WSL2 with Ubuntu and follow these steps in the Ubuntu terminal. Native Windows is not supported.

3 — Add credit once#

Check Billing for existing credit first. Outcomes admission opens after the first credit purchase; running work still requires sufficient credit. Any signed-in account with credit and an Ormas key can submit to a public repository. There is no selected-pilot allowlist for public work. Local task preparation is provider-free and can be inspected before funding. On verified delivery, you are charged the firm price or the miner’s settled price, never above its limit; a miss costs nothing. The only Ormas fee is 5.5% when you buy credits, shown as its own line at checkout. Taxes may apply. The console does not start work on its own.

If you have bought credit and still do not see Outcomes, tell us — that is on us, not you.

4 — Open a repository and send a spec#

Choose a GitHub repository and check the supported environments. Reuse its Ormas project or create one with explicit third-party execution consent. For a public repository, press Connect repository in Setup once; providers and qualified checkers read it anonymously, and Ormas publishes the result branch through the Ormas SN76 GitHub app. For a public repository only, you can alternatively save GitHub access through ormas project github-token PROJECT_ID at a hidden terminal prompt. Keep tokens out of chat. Ormas makes no zero-data-retention claim; see Where your code goes. The first-task guide explains permissions and local preparation requirements.

Public and private GitHub repositories both work at the Standard service level. Public and private repositories connect with Connect repository in Setup through the Ormas SN76 GitHub App; the first-task guide has the steps.

Where your code goes#

  • At Standard, the assigned provider and an operator-run checker read your repository and receive the task description and acceptance test. Execution providers choose their own AI services, so your code and task text can be sent to those services.
  • Standard makes no confidential-computing or zero-data-retention promise. A provider, checker or AI service may keep a copy. Keep secrets, credentials and regulated data out of any repository or task you send.
  • For a repository connected with Connect repository, Ormas holds only the access needed to publish the result branch to that one repository, and Disconnect repository in Setup removes it.
  • Protected has completed operator-run deliveries with the miner and validator in confidential VMs. Its next client offering and independent-miner onboarding are still in testing. The planned choices distinguish an attested inference gateway, inference inside confidential hardware, and approved zero-retention routes. A private GitHub repository is not automatically Protected. See Standard and Protected.

Ask your coding agent for the change and agree on the behavior that proves it. Offered task sizes are small, medium and large; large runs as a single attempt against the attempt authorization you set. The agent prepares a frozen independent check, verifies that it fails the unfixed base at a plain assert, and selects the supported runtime and locked dependencies. Ormas handles isolation and qualification; you do not write a wrapper or move packets by hand. Your ceiling at submission is a maximum, never the price. An offer within your ceiling is accepted automatically by default; for public repositories, set award_policy to manual at enqueue to choose the offer yourself. Preparation alone submits nothing. You do not choose a model; the provider decides how to do the work and receipts show the outcome, price and verification, not a model.

For a public bounded task, ask your agent to set payload.award_policy before submitting: lowest_expected_charge chooses the lowest predicted charge; lowest_expected_total_cost (default) also weighs failed-delivery risk and price exposure; manual lets you compare offers and confirm your choice. The Choose your offer guide explains the window and accept_offer, decide_now and update_award_policy calls. Private Standard repositories currently use a direct claim: the job goes straight to one provider without a competitive offer book. Omit award_policy when submitting them. An absent book alone does not prove a job used this path; older jobs can also omit it.

If every provider slot is busy, a submitted job waits as queued instead of being refused. Each client can have up to 5 jobs in flight (queued and running). An unclaimed job ends after 60 minutes as no-delivery with $0 charged. You may ask for a shorter wait with queue_wait_s (1–3600 seconds) in the enqueue payload, never longer. Status shows queued and queue_expires_at while waiting. Funds for queued jobs are held against your balance and any daily cap at submission.

5 — Read the receipt#

Firm offers show Price. Limit offers show Estimate · Limit · Charged. An estimate is not a charge; read the settled receipt for the actual billed amount.

A worker finishing can still leave the result awaiting operator-run checker results. Follow the agreed acceptance count and deadline, then inspect the receipt, result branch and billed amount. A job whose provider never delivers settles as no-delivery at $0 on an ordinary status read. You do not need to call reconcile after a restart. Reconcile still exists and is safe. Resubmitting after a no-delivery receipt is safe. A terminal job can be no-delivery; pending acceptance is not a settled charge. Usage shows receipts and last 24h / 7d / 30d totals. Review before merging. For the next change, reuse the same project and saved access.

Done when#

Outcomes shows the result branch and checker state and count. The settled receipt shows the actual billed amount. Review the branch and check result before merging.