Skip to content

Events and limits

OCH-1.1 emits each state transition needed to reconstruct a task from Arbitrum One logs. The deployed hub also applies explicit calldata, timing, and economic bounds before it accepts state changes.

Event Emitted by Indexed fields Data fields
TaskCreated Hub taskId, creator, specHash verifierId, verifier, inputHash, maxRewardUSDC, minBondUSDC, acceptDeadline, maxComputeWindowSec, createdAt, specURI
TaskSelected Hub taskId, creator, delegatee rewardUSDC, bondUSDC, feeBpsSnapshot, escrowedRewardUSDC, computeWindowSec, selectedAt, activateDeadline, encryptedKey
TaskActivated Hub taskId, delegatee activatedAt, submitDeadline
TaskCompleted Hub taskId, delegatee outputHash, complete publicValues, outputURI
TaskSelectionCancelled Hub taskId None
TaskCancelled Hub taskId, specHash None
TaskTimedOut Hub taskId slashedBondUSDC

The lifecycle is:

OPEN -> SELECTED -> ACTIVE -> COMPLETED
OPEN -> CANCELLED
SELECTED -> OPEN
ACTIVE -> TIMED_OUT
Event Emitted by Indexed fields Data fields
BidNonceIncremented Hub delegatee newNonce
FeeConfigSet Hub None globalFeeBps, treasury
GlobalMinBondSet Hub None globalMinBondUSDC
FeesClaimed Hub to amount
Paused Hub None account
Unpaused Hub None account
OwnershipTransferStarted Hub or registry previousOwner, newOwner None
OwnershipTransferred Hub or registry previousOwner, newOwner None
VerifierSet Registry verifierId verifier, active

Filter VerifierSet by the verifier registry address. A hub-only log filter will not receive it.

Constant Value Unit and effect
ARBITRUM_ONE_CHAIN_ID 42161 The constructor requires the runtime chain ID to equal Arbitrum One.
USDC_DECIMALS 6 Rewards, bonds, and fees use USDC microunits.
MAX_FEE_BPS 2000 20%; bounds the configurable settlement fee.
MAX_PROOF_LEN 131072 Bytes; caps proof calldata at 128 KiB.
MAX_PUBLIC_VALUES_LEN 1024 Bytes; caps proof-bound public values.
MAX_SPEC_URI_LEN 200 Bytes; bounds the off-chain TaskSpec locator.
MAX_OUTPUT_URI_LEN 200 Bytes; bounds the off-chain result locator.
MAX_ENCRYPTED_KEY_LEN 1024 Bytes; bounds selection key-delivery data.
MIN_COMPUTE_WINDOW_SEC 300 Seconds; tasks and bids provide at least five minutes to compute.
ACTIVATION_WINDOW_SEC 900 Seconds; a selected delegatee has 15 minutes to activate.

STATS_V1 adds an exact publicValues length of 224 bytes. The hub requires every publicValues payload to be at least 96 bytes and word-aligned, then binds its first three words to taskId, inputHash, and a non-zero outputHash before calling the verifier.

At Arbitrum One block 498336646 on 2026-08-25 at 19:34:56 UTC:

Setting Observed value
Hub pause state Unpaused
Global fee 100 basis points (1%)
Global minimum bond 10_000_000 microunits (10 USDC)
STATS_V1 registry route Active
REPO_PATCH_HARNESS_V1 registry route Inactive
REPO_PATCH_HARNESS_V2 registry route Inactive

STATS_V1 cannot settle while the SP1 v6.0.0 route is frozen, since 2026-10-09. At block 515499563 on 2026-10-16, both hubs still had a fee of 100 basis points and a minimum bond of 10_000_000 microunits. New software-work tasks settle through the separate hub and registry in the contract reference.

  • Task creation snapshots the verifier address and runtime code hash, so later registry changes do not alter that task’s proof route. Selection separately snapshots the chosen fee.
  • EIP-712 bids bind the hub address, runtime chain ID, task commitments, validity deadline, nonce, and salt. Signature validation supports EOAs and ERC-1271 contract wallets.
  • Selection refunds escrowedRewardUSDC - rewardUSDC immediately. A cancelled selection keeps the reduced current escrow, and OCH-1.1 provides no top-up call for a higher reselection. Activation is the point where the delegatee posts the bond and becomes timeout-slashable.
  • Completion requires the selected delegatee, an active task, an unexpired submit deadline, a valid proof, and public values bound to the task. State changes happen before payout.
  • Pausing blocks createTask, selectBid, and activateTask while leaving proof submission and refund, cancellation, and timeout paths available.
  • Treasury fees accrue on successful completion and move only through claimFees.