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.
Task lifecycle events
Section titled “Task lifecycle events”| Event | Indexed fields | Data fields |
|---|---|---|
TaskCreated |
taskId, creator, specHash |
verifierId, verifier, inputHash, maxRewardUSDC, minBondUSDC, acceptDeadline, maxComputeWindowSec, createdAt, specURI |
TaskSelected |
taskId, creator, delegatee |
rewardUSDC, bondUSDC, feeBpsSnapshot, escrowedRewardUSDC, computeWindowSec, selectedAt, activateDeadline, encryptedKey |
TaskActivated |
taskId, delegatee |
activatedAt, submitDeadline |
TaskCompleted |
taskId, delegatee |
outputHash, complete publicValues, outputURI |
TaskSelectionCancelled |
taskId |
— |
TaskCancelled |
taskId, specHash |
— |
TaskTimedOut |
taskId |
slashedBondUSDC |
The lifecycle is:
OPEN → SELECTED → ACTIVE → COMPLETED │ │ └→ TIMED_OUT │ └→ OPEN └→ CANCELLEDSupporting events
Section titled “Supporting events”| Event | Indexed fields | Data fields |
|---|---|---|
BidNonceIncremented |
delegatee |
newNonce |
FeeConfigSet |
— | globalFeeBps, treasury |
GlobalMinBondSet |
— | globalMinBondUSDC |
FeesClaimed |
to |
amount |
VerifierSet |
verifierId |
verifier, active |
Deployed hub constants
Section titled “Deployed hub constants”| 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.
Observed configuration
Section titled “Observed configuration”At Arbitrum One block 498292588 on 2026-08-25 at 16:31:19 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 |
Settlement protections
Section titled “Settlement protections”- 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 the difference between the maximum escrow and chosen reward immediately. 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, andactivateTaskwhile leaving proof submission and refund, cancellation, and timeout paths available. - Treasury fees accrue on successful completion and move only through
claimFees.