Skip to main content
The classification object is the headline result of ParaLens analysis. It tells you what the transaction did, how certain the engine is, and who the economic actor was. For most integrations, intent_label and confidence are the only two fields you need to surface to end users — the remaining fields support deeper tooling, layout logic, and audit trails.

Example

Fields

string
required
Machine-readable intent enum that identifies the transaction’s primary intent category. Use this field for conditional logic, layout switching, and icon selection — not for display text.See Intent Kinds for the full list of possible values.
string
required
User-facing label suitable for UI headings, notification copy, and export reports. This string is already formatted for display — use it directly rather than deriving labels from intent_kind.Example values: "Swap (via aggregator)", "Add Liquidity", "ERC-20 Transfer".
string
required
Proof status for the classification. One of:
string
required
Engine confidence in the classification. One of High, Medium, or Low.Pair with status to render trust badges: a Proven + High result warrants no caveat; Suspected + Low should carry a visible disclaimer.
string | null
required
Checksummed Ethereum address of the elected economic actor — the address that is the primary financial beneficiary of the transaction. May be null when the engine cannot determine a single actor (e.g. multi-beneficiary transactions with no clear primary).
boolean
required
true when actor equals tx.signer, meaning the address that signed the transaction is also the economic beneficiary.When false, the transaction was executed on behalf of the actor — for example, a MEV bot submitting an arbitrage on behalf of a wallet, or a relayer submitting a meta-transaction. In these cases, the attribution object provides the full delegation context.
When actor_matches_signer is false, surface a notice in your UI such as “Executed on behalf of [actor]” rather than attributing the economics to the signer.
string | null
required
Slug identifier for the classifier rule that produced this result (e.g. "aggregated_swap_with_transfers"). null when the classification was produced by a fallback heuristic rather than a named rule.Useful for audit logs and debugging classification mismatches.
number | null
required
Integer version of the matched rule. Incremented when the rule logic changes in a backwards-incompatible way. null when matched_rule is null.
boolean
required
true when structural on-chain evidence (e.g. event topology, call-trace patterns) directly supports the classification. false when the result relies on heuristics or metadata alone.Mirrors the status field but as a boolean shorthand — structural_proof: true corresponds to status: "Proven".
array
required
Sub-intents that compose the top-level intent. For simple transactions this array will contain a single entry. For complex multi-step transactions (e.g. a flash loan wrapping a swap) it will list each constituent intent.

Usage Guidance

Building a classification badge

Use the combination of status and confidence to render a trust indicator:

Selecting layouts

Use intent_kind — not intent_label — for conditional rendering. Labels may be localised or updated in minor releases; intent_kind is the stable programmatic identifier.

Handling delegated transactions

Always check actor_matches_signer before displaying economics. When it is false, the economics object describes the actor, not the signer: