LIVE
TASKS 24H365 policiesCOMPLIANT100.0%0 attestedOPERATORS32 signingRESTAKED0.04 NEWT—MEDIAN RESPONSE36sp99 36.0sRE-VERIFIED 24H—0 invalidatedBLOCK11,958,371Sepolia
NEWTON PROTOCOL · POLICY CLIENT

0x5105…7fa6revision 1 · superseded

0x51054ed0a36f216f5ff57428e9581fae67be7fa6 · 1 of 8 policies · Sepolia
Revision 1 is superseded. Every attestation minted against 0xa48a00b9…f74c was revoked when revision 2 landed on 2026-10-07 — regardless of its expiry block, because the client’s policyId no longer matches. Tasks created under it still replay correctly: each one carries this exact set as its own frozen snapshot. See revision 3, the current set →
REVISION
1 of 3
POLICIES
1 of 8
DISTINCT
1
RESPONSE EXPIRY
60 blocks
CHAIN
Sepolia
TASKS · 24H
—
ALLOW RATE
—
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 60 blocks after its reference block — the shortest expireAfter in the set, on slot 0.

Policies — 1

one Rego + WASM pair per slot
  1. 0
    0x37cd0e284a9cfaa516193fdaa1fa1e695eef27440x37cd…2744not in factory registry60 blocksbounds set expiry
    wasmnone — pure Regorego
    — rules— denyno WASMspecHash 0x61e09fa5…
    adminnot in schema0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
    allowed_actionsnot in schema{"31337": {"address": "0x8f86403a4de0bb5791fa46b8e795c547942fe4cf", "max_limit": 1000000000000000000, "function_name": "buy"}, "11155111": {"address": "0x8f86403a4de0bb5791fa46b8e795c547942fe4cf", "max_limit": 1000000000000000000, "function_name": "buy"}}
    token_whitelistnot in schema{"31337": {"symbol": "NEWT", "address": "0x8f86403a4de0bb5791fa46b8e795c547942fe4cf", "max_limit": 1000000000000000000}, "11155111": {"symbol": "WBTC", "address": "0x29f2D40B0605204364af54EC677bD022dA425d03", "max_limit": 1000000000000000000}}
    policyParams — 724 bytes on chain0x7b0a20202261646d696e223a2022307866333966643665353161616438386636663463653661623838323732373963666666623932323636222c0a202022616c6c6f7765645f616374696f6e73223a207b0a20202020223331333337223a207b0a2020202020202261646472657373223a2022307838663836343033613464653062623537393166613436623865373935633534373934326665346366222c0a2020202020202266756e6374696f6e5f6e616d65223a2022627579222c0a202020202020226d61785f6c696d6974223a20313030303030303030303030303030303030300a202020207d2c0a20202020223131313535313131223a207b0a2020202020202261646472657373223a2022307838663836343033613464653062623537393166613436623865373935633534373934326665346366222c0a2020202020202266756e6374696f6e5f6e616d65223a2022627579222c0a202020202020226d61785f6c696d6974223a20313030303030303030303030303030303030300a202020207d0a20207d2c0a202022746f6b656e5f77686974656c697374223a207b0a20202020223331333337223a207b0a2020202020202261646472657373223a2022307838663836343033613464653062623537393166613436623865373935633534373934326665346366222c0a202020202020226d61785f6c696d6974223a20313030303030303030303030303030303030302c0a2020202020202273796d626f6c223a20224e455754220a202020207d2c0a20202020223131313535313131223a207b0a2020202020202261646472657373223a2022307832396632443430423036303532303433363461663534454336373762443032326441343235643033222c0a202020202020226d61785f6c696d6974223a20313030303030303030303030303030303030302c0a2020202020202273796d626f6c223a202257425443220a202020207d0a20207d0a7d0a
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")
chainId11155111
revision1
policies0x37cd…2744@60
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.

Tasks under revision 1

no tasksExport CSVJSON
No tasks match this scope yet.
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.