Mantle · Track 02 · HDC Anomaly Detection

Euler Finance lost $197M
in valid function calls.
Sentinel saw it coming.

Every call passed validation. No reentrancy, no overflow, no revert. Sentinel reads the statistical shape of on-chain behavior and flags the drift — before the funds leave.

4.3×Anomaly separation
0False positives
≤2Windows to alert
0GPU · training data
Sentinel — on-chain anomaly detection mascot // watching window 96,624,968
sentinel --watch USDC.e --chain mantle
The blind spot

The exploit was a perfectly valid transaction.

Signature-based and rule-based tools look for known-bad patterns. The Euler attack didn't break a single rule — it just behaved nothing like normal. That's a different question, and it needs a different sensor.

What happenedMar 13, 2023

A donation + self-liquidation sequence drained Euler. Every call was type-valid and authorized.

Rule engines: no signature matched
Static audits: code was “safe”
Alert fired after $197M was gone
loss = $197,000,000
What Sentinel sawdrift timeline

The behavioral hypervector drifted off the safe manifold three windows early — long before settlement.

N−120.06
N−80.11
N−40.34
N−20.72
N0.91
Why Sentinel

Not another rule engine. Not an LLM watching a feed.

Sentinel encodes each transaction window into a 10,000-dimensional hypervector and measures how far it drifts from learned-safe behavior. Three things make it different.

Detection model
Rule-based Forta / static signatures

Catch only what someone already wrote a rule for. Novel exploits — like Euler — pass clean.

Sentinel Behavioral drift

No rule list. Measures statistical distance from safe behavior, so unseen attack shapes still light up.

Cost & latency
LLM monitors GPT / agent watchers

Per-tx inference cost, GPU dependency, non-deterministic output. Hard to anchor on-chain or reproduce.

Sentinel Hyperdimensional compute

Bind/bundle/permute over bit-vectors. Deterministic, seeded, CPU-only — runs in the time between blocks.

Output
Most tools “ALERT”

A red flag with no story. An on-call engineer still has to reverse-engineer what actually happened.

Sentinel Attribution + Z.ai

Names the drifting feature, anchors the alert on Mantle, and writes a human brief via Z.ai GLM.

For Z.ai judges

HDC works with zero training data and zero GPU. Sentinel fits its safe manifold from a short warm-up window of real on-chain history — no labeled dataset, no model training, no accelerator. The drift math is the model.

The pipeline

From raw transaction to anchored alert — in six steps.

Scroll the journey. Each stage runs deterministically on CPU, seeded with MASTER_SEED=1337.

T0 · Ingest

Pull the window

Stream confirmed transactions for a watched contract from Mantle via Etherscan V2. Bundle them into a sliding window of recent calls.

window W=50 · contract USDC.e
tx 0x…  tx 0x…  tx 0x… → bundle
T1 · Encode

Lift into hyperspace

Each call's selector, value, gas and entropy features are bound and bundled into one 10,000-dim hypervector — the window's behavioral fingerprint.

encode(window) → H ∈ {±1}^10000
bind · bundle · permute
T2 · Drift

Measure the distance

Compare the new hypervector to the safe-manifold prototype. Hamming distance, robust-scaled with MAD, becomes a single drift score in [0,1].

drift = scale(d_H, MAD)
0.91  (safe p99 = 0.21)
T3 · Detect

Confirm the change

A hysteresis gate plus run-length collapse (BOCPD) confirm a sustained shift — not a one-block blip — keeping false positives at zero.

drift > θ for ≤2 windows
changepoint → CONFIRMED
T4 · Attribute

Explain it

Sentinel names the feature driving the drift and asks Z.ai GLM to write a one-paragraph human brief — what shifted and why it matters.

driver = entropy_anomaly
z.ai → “value distribution collapsed to a single high-entropy call…”
T5 · Anchor

Write it on-chain

The alert — window id, drift score, type — is logged to the Sentinel registry contract on Mantle mainnet. Tamper-proof, queryable, real.

logAlert(window, drift, type)
→ tx 0x4aca92d7…09a78 anchored
Live demo

Watch the drift spike in real time.

A replay of a self-attack run on Mantle: warm-up calls stay flat, then an injected high-entropy call drives drift past threshold and fires an anchored alert.

Drift score · per windowreplaying
Transaction feedUSDC.e
Proof

Benchmarked on real Mantle data. Anchored on real Mantle blocks.

Numbers from the frozen, seeded benchmark suite — reproducible byte-for-byte via the golden-file CI test.

MetricResultWhat it means
Anomaly separation4.3×Attack drift vs. clean p99
False positives0Across the full benchmark
Test suite84Passing, deterministic
Time to alert≤2Windows after onset
Anchor block96,624,965Mantle mainnet
On-chain anchor
Alert transaction
Network
Mantle mainnet · chainid 5000
Status
getAlertCount() = 1 · anchored
Mantle Turing Test Hackathon 2026

See the drift for yourself.

The full pipeline, benchmark, and on-chain registry are open source under MIT. Run the self-attack replay in under a minute.