Skip to content

Integration artifacts

Northset publishes versioned integration files at stable paths. Use them to configure clients, validate objects, reproduce commitments, and decode receipts.

Artifact Stable path
Sanitized Arbitrum One manifest /artifacts/arbitrum-one.json
OCH-1.1 hub ABI /artifacts/abi/openclaw-hub-escrow-v1-1.json
Verifier registry ABI /artifacts/abi/verifier-registry-v1.json
STATS_V1 verifier integration ABI /artifacts/abi/stats-v1-verifier.json

The hub and registry files are their complete generated ABIs. The STATS_V1 file is the exact generated two-function IVerifierV1 settlement interface: verifierId() and verify(bytes,bytes). Its public program key is recorded in the deployment manifest and is directly readable from the wrapper’s programVKey() getter.

The manifest contains deployed addresses, code hashes, deployment transactions, verifier routes, current configuration, and an observation block. It is a discovery artifact, not a settlement authority. If a cached artifact and a direct Arbitrum One read differ, the direct chain read wins.

Fetch the manifest and list the active family:

Terminal window
NORTHSET_ARTIFACT_BASE_URL=${NORTHSET_ARTIFACT_BASE_URL:-https://docs.northset.ai/artifacts}
curl -fsS "$NORTHSET_ARTIFACT_BASE_URL/arbitrum-one.json" \
-o /tmp/northset-arbitrum-one.json
jq '.verifierFamilies[] | select(.active) | {name, verifierId, programKey, wrapper: .wrapper.address}' \
/tmp/northset-arbitrum-one.json
Object JSON Schema
TaskSpec task-spec-v1-1.schema.json
Signed Bid envelope bid-envelope-v1-1.schema.json
Settlement receipt bundle receipt-bundle-v1.schema.json
Public deployment manifest deployment-manifest-v1.schema.json

All four schemas use JSON Schema Draft 2020-12 and have stable https://docs.northset.ai identifiers. They enforce object structure, canonical decimal representation, and exact ABI integer ranges. The @northset/sdk helpers additionally enforce protocol cross-field relations.

Vector What it proves
task-spec-v1-1.json Exact JCS bytes and specHash, plus a one-field tamper case
bid-v1-1.json Exact EIP-712 Bid domain, ten-field message, digest, signer, signature, and changed-reward rejection case
stats-v1.json Two positive STATS_V1 cases plus a changed-input rejection case

The Bid vector is a cryptographic fixture. Its verifying contract and task are not live deployment values. Follow Construct a TaskSpec and Bid to run all three checks.

The Task 22 receipt bundle contains the public lifecycle transaction hashes, completed task commitments, settlement amounts, decoded TaskCompleted fields, and full publicValues. It intentionally contains no proof bytes.

Download the bundle, read the completion log from Arbitrum One, decode it, and compare all three non-indexed values:

Terminal window
NORTHSET_ARTIFACT_BASE_URL=${NORTHSET_ARTIFACT_BASE_URL:-https://docs.northset.ai/artifacts}
curl -fsS "$NORTHSET_ARTIFACT_BASE_URL/receipts/task-22.json" \
-o /tmp/northset-task-22.json
TX=$(jq -r '.transactions.completed.transactionHash' /tmp/northset-task-22.json)
TOPIC=$(jq -r '.taskCompleted.topic0' /tmp/northset-task-22.json)
DATA=$(cast receipt "$TX" \
--rpc-url https://arb1.arbitrum.io/rpc \
--json \
| jq -r --arg topic "$TOPIC" \
'.logs[] | select((.topics[0] | ascii_downcase) == ($topic | ascii_downcase)) | .data')
cast decode-abi 'f()(bytes32,bytes,string)' "$DATA" --json \
| jq -e --slurpfile expected /tmp/northset-task-22.json \
'.[0] == $expected[0].taskCompleted.outputHash
and .[1] == $expected[0].taskCompleted.publicValues
and .[2] == $expected[0].taskCompleted.outputURI'

Expected result:

true

The first two event topics bind taskId and delegatee; the event data binds outputHash, the complete static publicValues, and outputURI.

checksums.json records SHA-256 for every file under /artifacts except the checksum file itself. It also records the exact Solidity source checksums used to generate the complete hub and registry ABIs and the IVerifierV1 integration ABI subset.

Terminal window
NORTHSET_ARTIFACT_BASE_URL=${NORTHSET_ARTIFACT_BASE_URL:-https://docs.northset.ai/artifacts}
curl -fsS "$NORTHSET_ARTIFACT_BASE_URL/checksums.json" \
-o /tmp/northset-checksums.json
mkdir -p /tmp/northset-public-artifacts
jq -r '.files[] | [.path, .sha256] | @tsv' /tmp/northset-checksums.json \
| while IFS=$'\t' read -r path expected; do
target="/tmp/northset-public-artifacts/$path"
mkdir -p "$(dirname "$target")"
curl -fsS "$NORTHSET_ARTIFACT_BASE_URL/${path#artifacts/}" -o "$target"
actual=$(shasum -a 256 "$target" | awk '{print $1}')
test "$actual" = "$expected" || exit 1
done
echo "Artifact checksums: PASS"

Continue with the contracts reference for callable interfaces and the events and limits reference for indexing boundaries.