0xC3F1…821B
PASSDegradedDon’t trust — verify
Re-check this certificate yourself with the open-source MIT checker. It pulls the live bytecode via eth_getCode, confirms it hashes to the pinned bytecode_hash, fetches and hashes the witness, replays the derivation locally, and prints PASS only if all hold — trusting nothing from veric.audit except the math.
tarski-verify-veric verify --cert arbitrum-degraded.hook-cert.jsontarski-verify-veric@0.4.2tarski-verify-veric repo (MIT)What this proves
- For this exact bytecode on this chain, the cork-class access-control + state-transition property holds.
- The specific failure shape that cost Cork Protocol ~$11M is provably absent — to the strength stated by the trust flavour.
- The result is re-checkable by the open MIT tarski-verify-veric checker, trusting nothing from this site.
What this does NOT prove
- That the hook is safe, bug-free, or audited overall.
- Anything about reentrancy, oracle/MEV, donation, rounding, admin/upgrade, or economic-design risk.
- Anything about a different bytecode, a different chain, or the surrounding protocol.
- Liveness or fitness for purpose.
- A guarantee over time — a proxy upgrade or redeploy voids this cert.
The certificate
- Property
- cork-class/access-control+state-transition
- Verdict
- PASS
- Trust flavour
- degraded
- Analyzer
- tarski-verify-veric@0.4.2 (3034b09)
- Checked at
- 22 May 2026
- Expires
- Never on a clock — a bytecode change voids it
- Bytecode hash (the pin)
sha256:84a05f1e9b7c2d3068e1f4a97b50c2d83e60147af9b2e85c310d7f64a209e5cd
This cert is valid only for this exact bytecode. A proxy upgrade or redeploy changes the hash and voids the cert.
Raw .hook-cert.json (the exact bytes a re-checker consumes)
{
"schema": "hook-cert/v1",
"subject": {
"kind": "uniswap-v4-hook",
"chain": "arbitrum",
"address": "0xC3F1a08E47b29D6510fA8c3b71e0D924A6f5821B",
"bytecode_hash": "sha256:84a05f1e9b7c2d3068e1f4a97b50c2d83e60147af9b2e85c310d7f64a209e5cd"
},
"property": "cork-class/access-control+state-transition",
"verdict": "PASS",
"trust_flavor": "degraded",
"analyzer": {
"name": "tarski-verify-veric",
"version": "0.4.2",
"git": "3034b09"
},
"evidence": {
"witness_uri": "veric.audit/witness/arbitrum-degraded.json",
"witness_hash": "sha256:cf28e0719a6b4d35802e1fc4a9d70b386e51294af0b7c63d815ea0972f4d6b3a"
},
"recheck": {
"checker": "tarski-verify-veric",
"checker_version": "0.4.2",
"cmd": "tarski-verify-veric verify --cert arbitrum-degraded.hook-cert.json"
},
"checked_at": "2026-05-22T09:03:27Z",
"expires_hint": null
}Witness
This is the re-checkable witness the cert points at — the artifact the trust rests on. You don’t trust this rendering; you trust the re-check. Confirm the bytes hash to the pin below.
sha256:cf28e0719a6b4d35802e1fc4a9d70b386e51294af0b7c63d815ea0972f4d6b3a{
"schema": "hook-witness/v1",
"cert_ref": "arbitrum:0xC3F1a08E47b29D6510fA8c3b71e0D924A6f5821B",
"analyzer": {
"name": "tarski-verify-veric",
"version": "0.4.2"
},
"trust_flavor": "degraded",
"inputs": {
"chain": "arbitrum",
"address": "0xC3F1a08E47b29D6510fA8c3b71e0D924A6f5821B",
"bytecode_hash": "sha256:84a05f1e9b7c2d3068e1f4a97b50c2d83e60147af9b2e85c310d7f64a209e5cd",
"property": "cork-class/access-control+state-transition",
"evm_semantics": "cancun"
},
"derivation": {
"method": "abstract-interpretation",
"degradations": [
"Loop bound in the afterSwap accounting path exceeded the analyzer's unrolling budget; the path was over-approximated by a sound widening. The PASS holds, but on a coarser abstraction than a conformance proof."
],
"steps": [
{
"id": "decode",
"summary": "Lift bytecode to the typed CFG; recover the hook callback entry points."
},
{
"id": "access-control",
"summary": "Prove every state-mutating callback is PoolManager-guarded (exact)."
},
{
"id": "state-transition",
"summary": "Prove the cork-class settlement invariant holds under a sound over-approximation of the unbounded accounting loop."
}
],
"conclusion": "PASS"
}
}This cert pins bytecode sha256:84a05f1e9b7c2d3068e1f4a97b50c2d83e60147af9b2e85c310d7f64a209e5cd. If the contract is upgraded or redeployed, the pin no longer matches and the cert is pulled on the next pipeline run. A row disappearing is not a published statement about the hook.