Glossary
Canonical definitions for every term used across oculr documentation. Alphabetised.
| Term | Definition |
|---|---|
| Analysis | The process oculr performs on a transaction. Use "analysis", not "interpretation" or "scan". |
chain | Response field carrying the detected chain slug (e.g. "ethereum-mainnet", "base-mainnet"). oculr auto-detects from the tx hash by fanning eth_getTransactionByHash across every supported chain in parallel - you don't pass a chain in the request. Companion field chainName carries the human-readable name ("Ethereum", "Base", …). The chain slugs are listed in FAQ → Chains. |
| Confidence | high / medium / low on every ExplanationResult. Reflects how complete the actor and protocol identification is. Agents should branch on this field - see Core concepts → Confidence levels. |
| ExplanationResult | The JSON returned by POST /explain and GET /result/:jobId (when status is complete). Always present: txHash, chain + chainName + explorerBase, status, analysisModel, summary, steps, risks, protocol (nullable), txType (nullable), confidence, addresses[], contracts[], usdValue (nullable), costs, toolCalls[], prettyTrace[], rawTrace (nullable), txMeta, tokenTransfers[], mermaidDiagram, htmlReport. Optional: balanceChanges[], traceAnnotations, prettyTraceMeta, skillsUsed[], findings[], nonFindings[]. Full schema at POST /explain → Response. |
findings | Optional array on ExplanationResult, populated when txType === 'exploit'. One entry per distinct vulnerability, each with broken_invariant, category, severity, confidence, victim[], attacker[], evidence[], and missing_data_to_confirm[]. |
| Job | An async analysis task started by POST /explain/async. Returns a UUID jobId. Poll GET /result/:jobId to get the result. Jobs expire 1 hour after they're started. |
| Metered pricing | oculr's pricing model: you pay for the actual cost of analysing your transaction, settled in $0.01 increments as the analysis accrues cost - not a flat quote. Implemented as MPP streamed payments. See Pricing. |
| MPP | Machine Payments Protocol. Per-request USDC payments settled via Tempo MPP sessions. oculr uses the mppx implementation. |
mppx | TypeScript library implementing MPP/x402. Client-side: Mppx.create({ methods: [tempo({ account, maxDeposit }) ] }) intercepts 402 challenges and pays them transparently. Also ships a CLI (npm install -g mppx). npm. |
nonFindings | Optional array of one-line strings on ExplanationResult: things the analysis considered and ruled out - real observations that are not the cause of this transaction (a look-alike address planted in the sender's history, a setup leg whose value-loss step is a later transaction, the rationale for a benign verdict). Rendered under "Considered and ruled out"; absent when there is nothing to report. |
| Partial result | A successful (200 OK) response where the upstream stack hit a transient issue mid-analysis. Carries confidence: 'low', a summary that starts with "Partial result" naming the failed phase, and a minimal-but-typed body. Check for it first, before trusting any other field - see Core concepts → Partial results. |
| Pre-flight | Phase 1 of the analysis pipeline. Parallel fetch of trace, labels, source code, and token transfers before any LLM iteration. |
| Protocol | Snake_case slug in ExplanationResult (e.g. uniswap_v3, aave_v3). null when unknown. |
| Session | One of two MPP intents (the other is charge). The customer opens a payment channel with a maxDeposit and signs cumulative vouchers per request - like a bar tab. oculr uses session intents inbound, in the metered variant: vouchers are signed incrementally during an analysis as cost accrues, not once per request. See Metered pricing above. |
SKILL.md | Prose entry point for autonomous agents at https://mpp.oculr.xyz/SKILL.md. The agent fetches it once at startup, learns the API surface, and dispatches with mppx. See Use as an agent → Skill mode. Contrast with tool-spec.json below. |
| SSE | Server-Sent Events. How sync POST /explain streams progress and delivers the final result - and the transport that carries the metered payment (vouchers renew as cost accrues). Sub-agents preferring plain fetch should use the async path. |
| Tempo | The chain on which MPP payments settle. Settlement currency is USDC.e at contract 0x20C000000000000000000000b9537d11c60E8b50. See tempo.xyz. |
tool-spec.json | Typed Anthropic + OpenAI tool-call schemas served at https://mpp.oculr.xyz/tool-spec.json. Sub-agents drop the array straight into their LLM's tool-use API. Eliminates the "model parses markdown" class of integration bugs that pure-prose skill mode can produce. |
| txHash | 32-byte EVM transaction identifier (works on any supported chain - 50+ EVM mainnets; oculr auto-detects). Must match ^0x[0-9a-fA-F]{64}$. |
| txType | Closed enum on ExplanationResult: swap | transfer | exploit | liquidation | bridge | deployment | mev | governance | routine_infra | approval | stake | other. Parent agents should route on this. |
| Voucher | Off-chain signed payment artifact in MPP session intents. Each request increments the cumulative amount on the channel; the payee redeems the highest voucher on-chain. |
| x402 | HTTP extension for machine-to-machine payments via 402 Payment Required challenge/response. oculr implements this through mppx. Spec at paymentauth.org. |
Related
- Core concepts - pipeline, confidence levels, sync vs async
- Endpoints reference - full API schema
- Use as an agent -
SKILL.mdvstool-spec.jsondecision guidance