Install
openclaw skills install @teodorofodocrispin-cmyk/sentinel-publicPre-execution transaction safety check for autonomous AI agents from the SENTINEL trust oracle (sentinel-agent.dev). Before signing an on-chain transaction on Base, an agent gets a SAFE / UNSAFE / UNKNOWN verdict, a SENTINEL Score (0-100, AAA-D), and an ed25519-signed receipt. Pay-per-call via x402.
openclaw skills install @teodorofodocrispin-cmyk/sentinel-public⚠️ Data Handling Notice: SENTINEL sends the unsigned transaction payload (chain, sender, tx data) to a remote API (
sentinel-agent.dev) for evaluation. The payload is processed to produce a verdict and is not required to be a signed or broadcastable transaction. Review the transparency notice below before sending any transaction containing sensitive calldata.
ℹ️ Name notice: This is
sentinel-agent.dev(on-chain oracle0x6841496c3e7eDF9eEB02bE64ab98CF5D5c5aF813), distinct from unrelated projects sharing the SENTINEL name.
A pre-execution safety oracle for autonomous AI agents. Before an agent signs a blockchain transaction, it calls SENTINEL and gets back a SAFE / UNSAFE / UNKNOWN verdict, a SENTINEL Score (0-100, grade AAA-D), and an ed25519-signed receipt — all before a single unit of value moves. Pure M2M, pay-per-call via x402, no accounts.
Running on FastAPI + Supabase + Render — the same production stack as the rest of this M2M model family (VeraData, Intelica, TrustBoost).
SENTINEL answers "is it safe to proceed?" in two dimensions. This skill documents the first; the second is available on the same service.
POST /v1/guard. Is this specific on-chain transaction safe to sign? A contract-level risk check before execution, returning SAFE / UNSAFE / UNKNOWN with a 0-100 score.GET /v1/attestation. Is this payment counterparty trustworthy? A behavioral 0-100 score of x402 buyers and sellers on Base, backed by an append-only Default Registry of verified incidents, with ES256-signed attestations verifiable offline. Free cached tier; paid fresh tier (/v1/attestation/deep, $0.03 USDC). See https://sentinel-agent.dev/llms.txt for the full capability map.Both capabilities are part of the same SENTINEL oracle (sentinel-agent.dev). This skill focuses on /v1/guard so an agent can consume it directly; if you need counterparty scoring instead, use /v1/attestation.
The transaction payload you send (chain, from, tx) is transmitted to Render infrastructure for processing via FastAPI.
What SENTINEL evaluates: contract security (GoPlus token security — honeypot, owner abuse, taxes, mintable, proxy) and execution simulation (Alchemy eth_call — reverts), aggregated by rule-based checks plus an LLM council server-side, to produce a SAFE / UNSAFE / UNKNOWN verdict with a 0-100 score.
What SENTINEL stores: verdict, payer address, chain, and price paid, logged to Supabase for usage tracking. It does not require or store your wallet's private key at any point.
For strict no-transmission requirements (air-gapped systems, or transactions containing sensitive calldata that must never leave the local machine): this service is not suitable.
SENTINEL uses x402 with local EIP-3009 verification — the payment is verified either through a facilitator (CDP/PayAI, which also indexes the service on the agentic.market Bazaar) or, as a fallback, by recovering the EIP-3009 signature locally with no facilitator dependency. No human confirmation needed.
Pricing is tiered by transaction value. The price for a /v1/guard call scales with the value of the transaction being checked: from $0.005 USDC for small transactions, stepping up for higher-value ones. The exact price for a given request is always returned in the 402 challenge (maxAmountRequired), so an agent never has to guess — it reads the required amount from the response and pays exactly that.
How autonomous payment works safely:
POST /v1/guard without payment → receives HTTP 402 with the PAYMENT-REQUIRED header and a body listing accepts / paymentRequirements (network base, the tier-appropriate USDC amount, payTo).TransferWithAuthorization for the exact amount, using its own wallet's private key — that signature never leaves the agent's own environment.X-PAYMENT header.Why this is safe for autonomous agents:
No trial mode. Unlike the counterparty-trust capability (which has a free cached tier), /v1/guard has no free preview endpoint. Every call requires a valid payment.
Every /v1/guard verdict is returned with an ed25519 signature. The signer's public key is published at https://sentinel-agent.dev/health (field signer), so an agent can verify a receipt's authenticity offline, without trusting the transport. (Note: the counterparty-trust capability uses ES256/JWS with its key at /.well-known/jwks.json — two schemes for two capabilities, by design.)
Every call is logged to Supabase with: verdict, payer address, chain, and price. Aggregate, unfiltered statistics are public at /stats — any agent can inspect SENTINEL's track record (verdict distribution, unique contracts seen, outcomes reported back) before depending on it.
0x6841496c3e7eDF9eEB02bE64ab98CF5D5c5aF813Activate this skill when:
/v1/guard./v1/guard./v1/attestation instead.POSTs {chain, from, tx} to sentinel-agent.dev/v1/guard.eth_call).SAFE / UNSAFE / UNKNOWN), a 0-100 score with AAA-D grade, the contributing risk signals, a transaction digest (sha256:...), and an ed25519-signed receipt.The txDigest in every response links the verdict to the exact transaction evaluated. An agent can later report what actually happened via the free POST /v1/outcome endpoint (referencing that digest), which feeds SENTINEL's public track record at /stats.
curl https://sentinel-agent.dev/health
curl https://sentinel-agent.dev/pricing
These two endpoints are free and require no payment. POST /v1/guard itself always requires payment — there is no free equivalent. (/health also returns the ed25519 signer public key you can use to verify receipts.)
Endpoint: POST https://sentinel-agent.dev/v1/guard
Headers: Content-Type: application/json, X-PAYMENT: <x402 signed authorization>
{
"chain": "base",
"from": "0xYourAgentWallet",
"tx": { "to": "0xTargetContract", "data": "0x...", "value": "0x0" },
"value_usd": 25.0
}
value_usd is optional. If provided, SENTINEL uses it to pick the price tier (covering ERC-20 transfers where the ETH value is 0); otherwise it derives the tier from the transaction's ETH value.
The maxAmountRequired reflects the tier for this specific transaction.
{
"x402Version": 2,
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"maxAmountRequired": "5000",
"payTo": "0xCf1d31020A7915421f6d66B9835Dcb6f422337E7",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
}
]
}
{
"verdict": "SAFE",
"sentinelScore": 94,
"grade": "AAA",
"risks": [],
"reasons": [],
"txDigest": "sha256:...",
"signature": "..."
}
| Grade | Score range | Meaning |
|---|---|---|
| AAA | 90-100 | No material risk signals detected |
| AA/A | 70-89 | Minor advisory signals, no hard risks |
| BBB/BB/B | 40-69 | Moderate risk signals present |
| CCC/CC/C | 15-39 | Significant risk signals |
| D | 0-14 | Hard risk detected (honeypot, owner abuse, simulation failure) |
/v1/guard. Every call requires payment. (The separate counterparty-trust capability does have a free cached tier at /v1/attestation.)