TERMINATED — LIFECYCLE CLOSED  ·  VERIFIED ×2 UNDER THE PUBLIC VERIFIER 1.3.2  ·  EVIDENCE BUNDLE: PUBLIC status as of 2026-09-05
VLM-001 · Verifiable Liquidity Mandate · Ethereum Mainnet

One mandate. Four transactions. Zero residue. Then it ended.

A capital mandate, executed by a machine within hard limits, closed by the same mandate — and then provably terminated: authority ended, approvals zero, the signing seed retired under a falsifiable attestation. Every claim on this page carries a block number and its verification status.

4
transactions the execution wallet has ever sent — all four listed below; nonce 4 read on two independent RPCs at the terminal block, and watched every six hours since
0 / 0 / 0 / 0
token allowances and balances of the machine wallet — at the mint block, after the reset, after the close, and at the terminal block
10/10 · ×3
verifier criteria passed for OPEN, RESET and CLOSE — by two verifier implementations, under the published verifier 1.3.2; plus the termination record: ACCEPT ×2 *see status
Ethereum mainnet · 2026-08-22 → 2026-09-05 · LP position minted directly to the sponsor's wallet (token #59), closed by the mandate on 2026-08-28 with the proceeds paid straight to the sponsor, mandate terminated and seed retired on 2026-09-05
The instrument

Mandate → Execution → Proof

MANDATEThe capital owner pins hard limits in a frozen file: budget caps, an exact action list, fee ceilings, an expiry date.
EXECUTIONThe engine can act only inside those limits — every live policy is pinned by hash before anything runs.
PROOFEvery action leaves receipts, pinned state reads and a hash-chained journal, replayed by verifiers against the sealed mandate.

The mandate file's sha3-256 fingerprint IS its identity:
vlm-001:25a991ae424a5de974135e0f7e6f7034384418841bb22164bbb9aa1c47669ec1

The core comparison

What the mandate allowed — and what actually happened

Mandate (pinned before execution)Executed (proven after)
Budget: EUR 20 per leg, EUR 40 total — a pinned cap, not a market valueFunded by the sponsor to the exact wei; settled fully into the position
Max WETH: 0.009635489434685834 ETH (pinned in wei)Used: 0.009635489434685834 ETH — equal to the cap, not a wei above it
Max SUPRA: 119,060.897… SUPRA (pinned in wei)Used: 114,556.177… SUPRA — under the cap
Gas: fee cap pinned; reserve ceiling 0.02 ETHRemainder after all three transactions: 0.004941 ETH ≤ reserve
Allowed actions: 1×OPEN · ≤1×COLLECT (day 7+) · 1×CLOSE · APPROVAL-RESET — nothing else has an active policy pinExecuted: OPEN and RESET. COLLECT and CLOSE: unused — still null in the lifecycle ledger
Term: until 2026-09-05Executed 2026-08-22 — inside the term
Position owner: the sponsorLP-NFT #59 minted directly to the sponsor's wallet — the engine never held it

Every row: actual ≤ cap. No row asks for trust in COSMO — each is checkable at a pinned block (full values in the evidence index).

The causal chain

Walk the chain

Eight stations. From the sealing of the mandate onward, every station runs under the same fingerprint — one identity governs everything below it. Each card states what it requires from the station before and what it establishes for the next.

1 · Clean-Room Wallets

ON-CHAIN blocks 25809698 · 25809785

Two brand-new wallets — one for the machine, one for the sponsor — proven empty and unused before anything else happened.

nonce 0 · balance 0 · code 0x — confirmed on 2 independent RPCs, pinned at block hashes
ESTABLISHES → [virgin execution wallet] [virgin sponsor wallet]
+ evidence
execution wallet 0xC4F8b3d7a9737e8e85825F306bf0A8C6AEACb00B, virgin @ block 25809698
sponsor wallet 0x8f38b8451d15fe090A3f3503A0DaFd24432167dF, virgin @ block 25809785
source: activation-record.md §D1 (dual-RPC reads, pinned block hashes)

2 · Capital Staged

ON-CHAIN EUR CHECK: DOCUMENTED blocks 25809994 → 25810279

The sponsor is funded and swaps ETH for SUPRA. Total exposure at this point: EUR 44.87 — against a EUR 500 hard cap.

swap 0.0105 ETH → 125,382.54 SUPRA @ block 25810279 · execution-wallet gas 0.005 ETH @ block 25809994
REQUIRES ← [virgin wallets]   ESTABLISHES → [funded sponsor, within cap] [approval-scan pin 25809096]
+ evidence
sponsor first funding 0.023421 ETH @ block 25810096 → approval_scan_from_block pinned at 25809096
documented deviation: the 0.005 ETH gas funding was sent by the project deployer wallet, not the sponsor (recorded, accepted)
EUR sum check 44.87 ≤ 500 from pinned price sources (prose record)

3 · Mandate Sealed

ARTIFACT activation block 25810302

The complete rulebook is frozen into one file. Its fingerprint IS the mandate's identity — change one byte and it is a different mandate.

lm_id = vlm-001:25a991ae…9ec1 · pinned: EUR 20/leg · wei-exact caps · 1×OPEN, ≤1×COLLECT, 1×CLOSE, RESET · term ends 2026-09-05
REQUIRES ← [funded sponsor]   ESTABLISHES → [sealed mandate 25a9…9ec1] [pinned policy hashes]
+ evidence
frozen file mandate-001-ACTIVATED.md; sha3-256 over the file bytes = the lm_id
activation block 25810302, 2026-08-22T11:11:11Z; expiry 2026-09-05T11:11:11Z
live policy pins (snapshot 2, block 25810586): open 0x92c82831…d002 · reset 0xa3551342…88fa
ARTIFACT = reproducible from the frozen file; becomes publicly checkable with the evidence bundle

4 · The Human Brake

0 BROADCASTS: ON-CHAIN ARM ACTS: DOCUMENTED under mandate 25a9…9ec1

The first run was stopped by the human sponsor before a single signature existed — then deliberately re-armed. The machine cannot move capital on its own.

attempt 1: 0 signatures · 0 broadcasts (execution-wallet nonce still 0 at block 25810586) · mandate hash unchanged · re-armed by a typed human act
REQUIRES ← [sealed mandate]   ESTABLISHES → [human ARM]
+ evidence
aborted case journal ends at awaiting_arm — no ARM file, no receipt
process change after the stop: intent TTL 10 → 60 min (a pace change; no guard weakened, caps unchanged)
snapshot 2 pinned additively @ block 25810586 — the lm_id did not change
"A brake you never used is a brake you cannot trust."

5 · The Execution Window

ON-CHAIN JIT FUNDING: DOCUMENTED block 25810671 under mandate 25a9…9ec1

The sponsor sends the exact amounts — to the wei. The machine spends them in two transactions and mints the LP position directly to the sponsor. The machine never owns the position.

tx1 approve 0x34b171ee…aad3 · tx2 mint 0x732e52f9…c57a @ block 25810671 (3 conf.) · LP-NFT #59 → sponsor, directly · full range
REQUIRES ← [human ARM] [pinned wei caps]   ESTABLISHES → [2 capital transactions] [NFT #59 at the sponsor]
+ evidence
settled: 9635489434685834 wei WETH (= cap exactly) + 114556177151889602287506 wei SUPRA (under cap); liquidity 33223558428094832901
honest gap: the JIT funding transaction hashes were not archived — the wei-exact match (delta 0) is proven by balance reads on 2 RPCs, not by tx receipts
recipient in the mint calldata = the sponsor address (decoded in artifact-verify.json)

6 · Zero Residue — Proven Twice

ON-CHAIN blocks 25810671 · 25810738 under mandate 25a9…9ec1

Two separate proofs, two different kinds. Proof one is a state read pinned at the mint block itself (25810671, part of the OPEN case evidence): allowances zero, balances zero. Proof two is a dedicated on-chain transaction — the RESET case (block 25810738) — that re-establishes the same all-zero state under its own pinned policy and receipt.

@ 25810671 (read): allowances 0/0 · balances 0/0 · ETH 0.004944 ≤ reserve   |   @ 25810738 (tx 0xdf67bc78…b33b): allowances 0/0 · balances 0/0 · ETH 0.004941
REQUIRES ← [2 capital transactions]   ESTABLISHES → [zero residue, twice] [lifetime tx count 3]
+ evidence
proof 1: lp-post-state.json pinned at block 25810671, hash 0x6bb8bbbd…52b6, canonical recheck identical — same block as the mint, not a later snapshot
proof 2: separate case receipt (approval_reset policy 0xa3551342…88fa), tx 0xdf67bc78…b33b, block 25810738, gas 33,955
these are distinct artifacts: an evidence read inside the OPEN case vs. a stand-alone RESET case with its own journal and receipt

7 · The Verdict

ACCEPT ×2 — PUBLIC VERIFIER 1.3.2 under mandate 25a9…9ec1

Two verifier implementations replayed the archived evidence against the sealed mandate: ACCEPT, 10 of 10 criteria — for the OPEN, the RESET and (below) the CLOSE. The standalone verifier that returns these verdicts is the one published at heros.cloud/verifier/, byte-identical to the repository build.

internal verifier: ACCEPT 10/10 ×3 · standalone verifier 1.3.2 with its embedded public trust profile: ACCEPT 10/10 ×3 — 15 verdict files persisted with sha3-256 pins
REQUIRES ← [zero residue] [sealed mandate — the end is measured against the beginning]   ESTABLISHES → [ACCEPT ×2, publicly re-runnable]
+ evidence
persisted verdict files with sha3-256 hashes: evidence bundle verdicts/ (README lists every hash)
fail-closed demonstration, kept deliberately: the verifier 1.3.1 published on 2026-08-22 predated the activation pins — run against these cases it returned REJECT, failing only "P policy pinned". The 1.3.2 republish on 2026-08-28 (four ADDITIVE live pins, profile id unchanged) turns those runs into ACCEPTs without touching the cases; both the REJECT and the ACCEPT files are in the bundle.
re-run it yourself: download the bundle, then node cosmo-verify.mjs <case-dir> — no npm, no network

8 · Closed by the Mandate

ON-CHAIN block 25852377 under mandate 25a9…9ec1

Six days later the sponsor asked the mandate to close the position. Same ceremony, same gates: the sponsor granted a single-token approval, a human typed ARM and BROADCAST, the engine removed the full liquidity in one transaction — and paid the proceeds directly to the sponsor. The machine wallet never held them. The sponsor then revoked the approval; a fresh authority proof read zero standing approvals.

@ 25852377 (tx 0x770980c9…d549b, 0.125 gwei under the 0.370 gwei cap, gas 216,233): liquidity → 0 · to sponsor: 0.009533 WETH + 116,717.35 SUPRA (both ≥ the pinned minimums, byte-equal to the receipt's settlement_ref) · machine wallet after: allowances 0/0 · balances 0/0 · ETH 0.004914 ≤ reserve
between 2026-08-22 and 2026-08-28, six armed attempts stopped themselves before signing anything: fee cap exceeded (0.557 gwei), RPC 429/400, a pre-approve read gate. Each left a journal ending in execution_failed — and no signature. They are in the bundle as fail-closed demonstrations.
REQUIRES ← [sponsor approval, single token] [typed ARM + BROADCAST]   ESTABLISHES → [position dissolved] [proceeds with the sponsor] [lifetime tx count 4] [ACCEPT ×2 for CLOSE under 1.3.2]
+ evidence
case receipt (close policy 0x0fe35f41…3a13), settlement_ref block 25852377 / 0x6297e33c…57ff; Transfer events to the sponsor on two RPCs; sponsor revoke verified (getApproved(59) = 0x0 on two RPCs); fresh nft-auth proof CLEAN at block 25852403
honest gap: the dedicated sweep-proof verb returns not_proven BY SHAPE (the close is a position-manager multicall, not a direct transfer); receipt of funds is proven from the settlement evidence plus the transfer logs instead

9 · Terminated & Retired

TERMINATION PROOF: ON-CHAIN READS SEED RETIREMENT: ATTESTED, FALSIFIABLE after expiry 2026-09-05 11:11:11Z

The mandate had an expiry written into its frozen text. After it passed, a read-only termination proof was taken at a pinned terminal block on two independent RPCs, and five separate predicates were derived: capital exposure zero, approvals zero, authority ended, ownership with the sponsor, and every nonce the wallet ever used mapped to an archived receipt. Then the operator typed the retirement phrase, the signing seed was shredded, and the one claim that cannot be proven — "no copy remains" — was recorded as an attestation with a standing falsification rule: any nonce above 4 on this wallet, ever, breaks it.

terminal block 25912914 / 0x2c7303bb…41f39 (timestamp 1788632783 ≥ expiry 1788606671) · sources rpc:mevblocker + rpc:tenderly, 0 disagreements · nonce 4 · start boundary 25809698 (nonce 0, no code, balance 0) · P1–P5 PROVEN · verdict TERMINATED · weakest evidence class: attested_falsifiable · 0 RPC writes
watch: the 6-hour watcher now also reads the wallet nonce at each pinned block against the attested baseline — first tick 4 / 4 clean. Declared reaction to a valid falsification: this page changes to "Terminated, contested"; nothing is deleted.
REQUIRES ← [all slots executed or expired — close never expires, it was executed] [ACCEPT ×2 on the record BEFORE the seed was destroyed]   ESTABLISHES → [authority ended] [seed retired, attested] [standing falsification watch]
+ evidence
termination record L4 (before retirement, class derived) sha3-256 0x445e7dfb…6bccb9 · termination record L5 (attested, class attested_falsifiable) sha3-256 0xa42dd476…01656a — both ACCEPT by the internal verifier and by the public 1.3.2 verifier (node cosmo-verify.mjs --termination <record.json>)
what the record does NOT claim, in its own words: seed deletion is unprovable (disk remanence, RAM) — hence attestation plus falsifiability, not proof; the absence of pre-signed transactions is a process statement, "named, not claimed"
the ETH gas remainder (0.004914 ETH) was COSMO-financed and is reported, not swept — capital exposure is scoped to sponsor capital in mandate assets
Two facts worth staring at

The custody window

The machine's wallet held capital only between just-in-time funding and the mint — and the chain proves the empty states on both sides. The width of this plateau is deliberately not drawn to scale: the funding timestamps were not archived. What the chain proves is the entry and exit states, not the duration. The close on 2026-08-28 added no second plateau: the proceeds went from the position manager straight to the sponsor.

machine wallet token holdings (SUPRA + WETH)
─────────────────────────────────────────────────────────────────────
                        ┌─────────────┐
                        │   funded0 ─────────────────────┘             └───────────────0──────────0──
 proven empty            wei-exact,      proven empty   proven AGAIN
 @ 25810586              spent in         @ 25810671     @ 25810738
 (nonce still 0)         2 txs            allowances 0/0 RESET case tx
                                          balances  0/0  allowances 0/0
─────────────────────────────────────────────────────────────────────
   "Capital entered, did its one job, and left. Nothing stayed behind."
    

Lifetime transaction count

The complete on-chain history of the execution wallet, from its first transaction to its last. Not "few" transactions — a countable, closed list, and now a closed life.

4
tx 1 · approve  0x34b171ee28c2367c5be4c878013c98150031769aba20461fda776fd108e9aad3
tx 2 · mint     0x732e52f9e549c46685e85a9cca5c3203c3b7403fb49c1d2df5051c366c23c57a
tx 3 · reset-proof  0xdf67bc7842ba02da1729e25b6f9ab17e355e5adc12ca2c1b7a72248055c9b33b
tx 4 · close    0x770980c9eb4c61d900ab69b2b1f231f9a064d2df71a82f768289899a804d549b

Check the address yourself — 0xC4F8b3d7a9737e8e85825F306bf0A8C6AEACb00B — any fifth transaction breaks this claim AND falsifies the seed-retirement attestation. Nonce read on two independent RPCs at the terminal block on 2026-09-05: 4. A watcher re-reads it every six hours.

Context

Why this is not a bot with your keys

The left column describes a common automation pattern — not any specific provider.

A common automation patternThis mandate
Standing token approvals that remain open after the tradeAllowances back to zero — read at the mint block itself, re-proven by a dedicated transaction
Capital parked in the bot's wallet, waitingCapital arrives just-in-time, wei-exact, and is spent in the same ceremony
The bot holds the position; you trust it to hand it overPosition minted directly to the sponsor — never held by the engine
The bot can send any number of transactions, any timeThis wallet sent exactly 4 transactions in its lifetime — all four listed above, provable via nonce — and its seed is retired under a falsifiable attestation
The bot keeps its keys — and its access — after the jobThe mandate had an expiry; after it, a termination proof derived five predicates on-chain, the seed was shredded, and a standing watch will contradict the attestation the moment the wallet moves again
"Trust me" after the factBlock numbers before, during and after — and a frozen mandate the outcome is measured against

The question is never whether software can trade. The question is what it could have done — and here the answer is on-chain: nothing beyond the mandate.

Verification status

Where this proof stands — precisely

Stage 1 — Verified internally REACHED 2026-08-22

10/10 criteria passed by the internal verifier AND by independent standalone verifier code, for OPEN and RESET; CLOSE followed on 2026-08-28. The verdicts are persisted as machine-readable files with sha3-256 pins.

Stage 2 — Evidence bundle public REACHED 2026-09-05

The evidence bundle — the three case directories, the two termination records, the authority proofs and all 15 verdict files — is downloadable from the evidence index below.

Stage 3 — Publicly re-runnable REACHED · VERIFIER 1.3.2 SINCE 2026-08-28

The public verifier at heros.cloud/verifier/ carries the live policy pins (an additive update, profile id unchanged). Anyone can re-run the 10/10 check on each case and the termination check on each record. The 1.3.1 REJECT runs from before the republish are archived in the bundle alongside the ACCEPTs, deliberately.

Terminated 2026-09-05 · WATCHED

Five termination predicates proven at a pinned terminal block on two RPCs; the seed-retirement attestation is the weakest evidence in the record and is labelled so. Should the standing nonce watch ever be falsified with block-pinned, two-source evidence, this line becomes "Terminated, contested".

Every block, transaction and nonce on this page is public — and so is the verdict: download the bundle and the verifier, run both offline, and compare. We ask you to check us, not to trust us.

For auditors

Evidence index

execution wallet0xC4F8b3d7a9737e8e85825F306bf0A8C6AEACb00B
sponsor wallet0x8f38b8451d15fe090A3f3503A0DaFd24432167dF
lm_id (sha3-256)vlm-001:25a991ae424a5de974135e0f7e6f7034384418841bb22164bbb9aa1c47669ec1
approve tx (1)0x34b171ee28c2367c5be4c878013c98150031769aba20461fda776fd108e9aad3
mint tx (2)0x732e52f9e549c46685e85a9cca5c3203c3b7403fb49c1d2df5051c366c23c57a · block 25810671 · 0x6bb8bbbd…52b6
reset tx (3)0xdf67bc7842ba02da1729e25b6f9ab17e355e5adc12ca2c1b7a72248055c9b33b · block 25810738 · 0x198047a3…ca4d
close tx (4)0x770980c9eb4c61d900ab69b2b1f231f9a064d2df71a82f768289899a804d549b · block 25852377 · 0x6297e33c…57ff · proceeds to sponsor 9533343998137384 wei WETH + 116717354704721540595770 wei SUPRA
LP-NFTtoken #59 · position manager 0x212A1aa26fBA5E73D217Bb2c4829de29cB99F036 · pool 0xe33294a2863199541d6ea584f1cc4e3f36b8ea39
caps (wei)max_weth 9635489434685834 · max_supra 119060897297596899987446 · fee cap 370004076
settled (wei)amount0 9635489434685834 · amount1 114556177151889602287506 · liquidity 33223558428094832901 (full range)
policy pins (live)open 0x92c82831…d002 · reset 0xa3551342…88fa (snapshot 2, block 25810586) · collect 0x095910fb…441c · close 0x0fe35f41…3a13 — all additive
mandate expiry1788606671 (2026-09-05T11:11:11Z), hash-bound to the frozen mandate text
termination record L4terminal block 25912857 · nonce 4 · TERMINATED · class derived · sha3-256 0x445e7dfb67cd7de1fb7bb78b03c0be53cdee97639a8bace3fc7d429a566bccb9
termination record L5terminal block 25912914 · 0x2c7303bb…41f39 · nonce 4 · TERMINATED · class attested_falsifiable · sha3-256 0xa42dd47633164afdbccfa4872e31431754e25e6e7f7f62fc213e92bf9101656a
authority proofsnft-auth-proof CLEAN @ 25811203 · @ 25852403 · @ 25912835 (ApprovalForAll scan from 25809096: 0 logs each)
verdict files15 files (OPEN/RESET/CLOSE ×3–4 each, termination L4/L5 ×2) — sha3-256 per file in verdicts/README.md
verifier provenancestandalone 1.3.2 · cosmo-trust-v4 · profile hash 0x0a9bb043…56bf · distributable sha3 0xfc513588768a28db0b828432c1d1274d0fe623582cbf0e5d8158357ee29fe2b5 (served file == repository build)
evidence bundle/evidence/vlm-001/ — index.txt lists every file; verifier at /verifier/

Honesty section — what this page cannot show you (yet), and why

  • The JIT funding transaction hashes were not archived; the wei-exact match is proven by balance reads on two RPCs, not by tx receipts.
  • The custody window's duration in seconds is unknown — only the empty states on both sides are proven.
  • "EUR 40" is the sum of the pinned budget legs — a cap, not a computed market value of the position.
  • Seed destruction cannot be proven, only attested: disk remanence and RAM copies are unprovable. The record says so verbatim and is graded attested_falsifiable — the weakest class it will ever carry. The falsification rule (any nonce above 4) is public and watched.
  • That no transaction was pre-signed before the seed was shredded is a process statement (the engine signs only on the ceremony path; the journals show no other sign events) — named, not claimed. Session keys or account abstraction would make this provable; that is a later mandate design, not this one.
  • The ETH gas remainder in the machine wallet (0.004914 ETH) was COSMO-financed; it is reported, not swept, and lies outside the "capital exposure" claim, which is scoped to sponsor capital in mandate assets.
  • The dedicated sweep-proof verb could not prove the close proceeds by shape (multicall via the position manager); receipt is shown from the settlement evidence and the transfer logs on two RPCs instead.
  • Public RPC quality shaped the day: one free endpoint answered 40 % of requests with a routing error, another refuses historical state, a third rate-limits bursts. The reads went through read-only retry proxies (one port = one upstream identity, broadcast methods refused) so that the two sources named in the record are truthfully two.
  • The verifier 1.3.1 published on 2026-08-22 did not carry the live pins; the 1.3.2 republish (2026-08-28) fixed that additively. The embedded-profile REJECT runs are archived alongside the ACCEPTs, deliberately.