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

0x4e3d…2880revision 0 · current

0x4e3d7190a6c7b572b8f7fe5b4e8b952dfa962880 · 0 of 8 policies · Ethereum
REVISION
0 of 0
POLICIES
0 of 8
DISTINCT
0
RESPONSE EXPIRY
0 blocks
CHAIN
Ethereum
TASKS · 24H
0
ALLOW RATE
0.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 0 blocks after its reference block — the shortest expireAfter in the set, on slot .

Policies — 0

one Rego + WASM pair per slot
    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
    revision0
    policies
    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

    0 writes · newest first
    RevPolicy setChangePoliciesConfigured byBlockTasks
    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 0 is the only one whose attestations are still spendable.

    Task history — every revision

    50 of 1,428 matchingExport CSVJSON
    TaskSenderPolicyFunctionSignersResultAge
    ← Newer50 per page · newest firstOlder →
    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.