Sentinel · Base mainnet, read-only

A live watch over the wallets AI agents run on

Audits are periodic; losses are not. Sentinel follows new blocks as they are produced, picks out the transactions that touch the watched wallets, and runs deterministic detectors on them. Every alert carries the evidence transactions, the numbers behind the call and the measured delay from block to alert. High-severity alerts open an entry in the Incident Registry; a recall always stays a human decision.

Sentinel only reads public chain data through free public nodes and sends no transaction. An alert is a signal for a human to check, not a verdict: open scam lists have false positives and moving funds to a new wallet looks like a drain. The spot-check results below say how often that happened. Methodology and limits · stats API · alert feed · Incident Registry

Right now

4,022 wallets watched

Ethereum: 11 certified, 0 claimed, 1000 top-active Census · Base: 11 certified, 0 claimed, 3000 top-active Census

Ethereum: block 26,213,192, 0 behind head

0.083 blocks/s over the last hour (299 blocks, 73,831 txs scanned, 18 touched a watched wallet). Median block → evaluated 2,446 ms, p95 4,150 ms; Sentinel's own part 632 ms. Gaps since start: 0.

Base: block 52,730,907, 0 behind head

0.5 blocks/s over the last hour (1,798 blocks, 297,606 txs scanned, 510 touched a watched wallet). Median block → evaluated 253 ms, p95 507 ms; Sentinel's own part 163 ms. Gaps since start: 464.

7 alerts in 24 h (7 total)

7 medium. Median block → alert 543 ms, p95 3,390 ms; 0 incidents opened, 0 fund-loss flags.

Spot checks: 0 alerts reviewed by hand

0 confirmed, 0 false positives, 0 benign or expected, 0 inconclusive.

Alert stream

Live: refreshes every 6 sJSON feed

  • mediumbehaviour.shiftBase · tier census · 3 h ago · block→alert 1.0 s
    0x73b4…e736 broke its own pattern: new destination, new call type and 1 more signal
  • mediumbehaviour.shiftBase · tier census · 4 h ago · block→alert 0.5 s
    0xb269…b1a6 broke its own pattern: new destination, new call type and 1 more signal
  • mediumkey.delegationEthereum · tier census · 16 h ago · block→alert 3.7 s
    0x2da4…4340 delegated its account to 0x6900…e139 (EIP-7702)
  • mediumkey.delegationEthereum · tier census · 17 h ago · block→alert 2.7 s
    0x2da4…4340 delegated its account to 0x7702…176c (EIP-7702)
  • mediumbehaviour.shiftBase · tier census · 19 h ago · block→alert 0.5 s
    0x7a3e…e334 broke its own pattern: new destination, new call type and 1 more signal
  • mediumbehaviour.shiftBase · tier census · 20 h ago · block→alert 0.5 s
    0x7a3e…e334 broke its own pattern: new destination, new call type and 1 more signal
  • mediumbehaviour.shiftBase · tier census · 21 h ago · block→alert 0.4 s
    0x1030…13c7 broke its own pattern: new destination, new call type and 1 more signal

What the detectors look for

Drain

Most of the native balance or a token balance leaves in one transaction to a never-used address or an address on an open scam list; a pull the wallet did not sign; three or more assets to one new address.

Approvals

Unlimited allowance, NFT operator approval or relayed permit to an unverified contract or an account; any allowance to a listed address.

Scam lists

A call or payment to an address on the MyEtherWallet darklist, ScamSniffer or Karatum's own confirmed-incident wallets.

Behaviour shift

A new destination and a new call type together with a changed gas strategy, odd hour, outsized value or a long dormancy, against the wallet's own baseline.

Sandwiches

A Uniswap V3 swap bracketed by the same sender in the same pool, with the shortfall re-simulated against the best route at block start.

Failed-tx storms

Eight reverts in ten minutes, or five identical reverts in a row.

Key-compromise shapes

An EIP-7702 delegation to a contract the wallet never used, value sprayed to several new addresses, a nonce-velocity burst to new destinations.

How it works, and what it cannot see

  • Heads arrive over free public websockets (first to announce wins), the full block is fetched hedged across free public RPCs, and one log query per block finds token transfers and approvals by watched owners, including ones the wallet did not sign.
  • The watch set is the wallets bound to Karatum builds and the Guard, Census agents at the VERIFIED stage, and the most active Census agent wallets (a bounded, configurable number). Baselines come from the Backtest transaction cache; a wallet without one is in learning mode and the behaviour detector stays silent for it until it has 15 transactions.
  • Smart-contract wallets send no transactions of their own, so only their token flows are visible. Contracts verified only on Basescan read as unverified here (Sourcify is the keyless source). Blocks are read at the chain head; a reorganisation after that is not re-checked.
  • Alerts can go to your own HMAC-signed webhook (POST /v1/sentinel/webhooks). Sentinel cannot revoke a certificate, a Guard registration or an attestation.