LIVE
TASKS 24H08 policiesCOMPLIANT0.0%0 attestedOPERATORS22 signingRESTAKED2k NEWT—MEDIAN RESPONSE——RE-VERIFIED 24H—0 invalidatedBLOCK26,235,944Ethereum
NEWTON PROTOCOL · POLICY CLIENT

0xc849…592erevision 1 · current

0xc849883664d8ce259035918048fd489a47ce592e · 2 of 8 policies · Ethereum
REVISION
1 of 1
POLICIES
2 of 8
DISTINCT
2
RESPONSE EXPIRY
300 blocks
CHAIN
Ethereum
TASKS · 24H
0
ALLOW RATE
100.0%
Every policy must allowFail-closed, and no short-circuit: every policy is evaluated even after one has denied, and a single denial denies the intent. The response expires 300 blocks after its reference block — the shortest expireAfter in the set, on slot 0 and 1.

Policies — 2

one Rego + WASM pair per slot
  1. 0
    0xab434a206165b8b1db8d53734a3350c1523942a80xab43…42a8not in factory registry300 blocksbounds set expiry
    wasmnone — pure Regorego
    — rules— denyno WASMspecHash 0x34a087f6…
    adminnot in schema0x0000000000000000000000000000000000000001
    chain_idnot in schema1
    max_valuenot in schema2000000000000000
    policyParams — 110 bytes on chain0x7b0a2020226d61785f76616c7565223a20323030303030303030303030303030302c0a202022636861696e5f6964223a20312c0a20202261646d696e223a2022307830303030303030303030303030303030303030303030303030303030303030303030303030303031220a7d0a
  2. 1
    0x70887a6015c9d058531e93ee742c1a6f5b4fcef50x7088…cef5not in factory registry300 blocksbounds set expiry
    wasmnone — pure Regorego
    — rules— denyno WASMspecHash 0x9117e3a9…
    adminnot in schema0x0000000000000000000000000000000000000001
    allowed_chain_idsnot in schema["1"]
    allowed_contractsnot in schema["0xb1ad5f82407bc0f19f42b2614fb9083035a36b69"]
    allowed_functionsnot in schema["buy"]
    policyParams — 193 bytes on chain0x7b0a20202261646d696e223a2022307830303030303030303030303030303030303030303030303030303030303030303030303030303031222c0a202022616c6c6f7765645f636861696e5f696473223a205b2231225d2c0a202022616c6c6f7765645f636f6e747261637473223a205b22307862316164356638323430376263306631396634326232363134666239303833303335613336623639225d2c0a202022616c6c6f7765645f66756e6374696f6e73223a205b22627579225d0a7d0a
Each module is evaluated against its own input — {"params": <this slot’s policyParams>, "wasm": <this slot’s WASM output>}. There is no shared data.wasm object and no cross-slot namespace, so slot 1 cannot read slot 0’s WASM output and a policy cannot be written to depend on its neighbours.
SET IDENTITY
POLICY_SET_DOMAINkeccak256("newton.policy.set")
chainId1
revision1
policies0xab43…42a8@300, 0x7088…cef5@300
Task managerreads getPolicies() at task creation, then never again
policyId = keccak256(abi.encode(POLICY_SET_DOMAIN, chainId, client, revision, policies)), where policies is the complete ordered array with each entry’s parameters and expiry. Order is part of it, so a reorder alone is a new id.
WHAT A TASK FREEZES
A task carries this exact ordered set as its own snapshot, plus one WASM input per slot. Response validation reads that snapshot and never re-reads the client, so reconfiguring mid-flight cannot change what an in-flight task means — and replay proves it by recomputing the policyId over the snapshot and comparing against the task’s own.
The bound is MAX_POLICIES = 8, enforced on chain and mirrored in the operator, the enclave and the proof guest. An oversize set is rejected, never truncated, and an empty one is rejected too — there is no vacuous allow.

Configuration history

1 write · newest first
RevPolicy setChangePoliciesConfigured byBlockTasks
1 · current0xe2545721…2446first set0xab434a206165b8b1db8d53734a3350c1523942a8 · 0x70887a6015c9d058531e93ee742c1a6f5b4fcef5—26,056,9530x011c…ed7b4
Every write mints a new policyId and revokes every attestation bound to the previous one, because the id commits the client, the chain, the revision counter and the exact ordered list — keccak256(POLICY_SET_DOMAIN, chainId, client, revision, policies). Revision 1 is the only one whose attestations are still spendable.

Task history — every revision

4 of 4 matchingExport CSVJSON
The export carries one row per task with the frozen policy set in slot order, and it is the complete filtered history rather than this page. It has no per-policy verdict column: TaskResponse.allowed is a single boolean for the whole set, so which policy denied a task is in no record.