A settlement layer for objective digital work. A buyer escrows USDC; a worker bonds USDC; the hub contract releases payment only when a cryptographic proof confirms the work matches the declared inputs. Work runs in the worker's own runtime. Northset never holds code, keys, or funds.
§ 02Architecture
Two wallets, one hub, one verifier
Settlement authority lives in the hub contract. The registry resolves which verifier program decides a given task. Nothing else can move funds.
Northset settlement-layer architecture
Buyer wallet
EOA or ERC-1271 smart account
↓escrow USDC → hub contract
Worker wallet
runs the task in its own runtime
↓bond USDC + proof → hub contract
Northset hub contract
Arbitrum One — only settlement authority
0x219f6a42…ea5e592
↓lookup verifier
Verifier registry → family
STATS_V1 · REPO_PATCH_HARNESS
↓verify proof
Proof backend (SP1 adapter)
deterministic verifier program
The hub contract on Arbitrum One is the only settlement authority. The registry resolves the verifier family; the verifier checks the proof; the hub settles USDC.
§ 03Lifecycle
sources: security.state-machine
Five branches, no appeals
Five reachable branches. No disputes, no partial pay, no appeals.
Northset task lifecycle state machine
OPEN
createTask
↓selectBid
SELECTED
bid recorded, no bond yet
↓activateTask
ACTIVE
bond held, deadline running
↓submitResult
COMPLETED
proof verified, paid
Recovery branches
↓cancel · from OPEN
CANCELLED
reward refunded
↓claimTimeout · from ACTIVE
TIMED_OUT
bond slashed to buyer
↩cancelSelection (reopen) · SELECTED back to OPEN
Five-branch state machine. Solid arrows are the proof-settled path. Dashed arrows are recovery branches.
State machine
OPEN → SELECTED → ACTIVE → COMPLETED on the proof-settled path. OPEN → CANCELLED before selection. SELECTED → OPEN if selection is cancelled. ACTIVE → TIMED_OUT if the submit deadline lapses.
Slashability
Selection records the chosen bid but does not transfer the bond. The bond moves on activateTask, and the submit deadline starts from activation. A worker is only slashable once they commit to the work. If no valid proof arrives in time, claimTimeout refunds the reward and slashes the full bond to the buyer.
Why narrow
Settlement only works when a program can check the outcome. Northset stays objective on purpose: code against a declared test command, cost batches with declared inputs, and other outcomes a deterministic verifier can prove. No subjective tasks, no LLM judges, no reputation, no arbitration.
Two flagship lanes are live, both deterministic, both with completed on-chain settlements — plus a successor repo-patch verifier identity already registered. The statistics lane settles self-serve; the Proof-of-Pass lane has controlled settlement evidence.
REPO_PATCH_HARNESS
Controlled evidence
Proof-of-Pass Escrow for AI-written code
Proof-of-Pass Escrow for AI-written code. The buyer declares a base commit and a check command. The worker writes a patch in a bounded runtime. The proof asserts that the patch applied cleanly and the declared check passed. The wedge for paying AI coding agents — controlled evidence today, run as concierge demos.
Bounded cloud-cost estimation. One project, one UTC day, one batch of integerized cost values. The proof asserts the deterministic STATS_V1 summary matches the declared inputs.
Hub contract, verifier registry, and both flagship wrappers are deployed on Arbitrum One. Self-serve beta is proven in the statistics lane; code-change settlement runs as controlled evidence — concierge, not self-serve.
Candidates for the same rail. Each fits the truth fence: outcomes a program can verify. None are committed launch dates.
Deterministic data and analytics lanes. Repo-patch variants for narrower test taxonomies (lint-pass, type-check-pass, fuzz-pass). Composite proofs that chain multiple verifier families. New families remain gated on a credible specification and external review.