Skip to main content
POST
Synchronous endpoint Analyze an EIP-712 typed-data signing request before the user signs it. The response is a risk assessment with an actionable recommendation. Typical findings: unlimited permits, a login message that actually approves transfers, a blacklisted spender, or a suspicious marketplace order.
The HashDit wrapper uses chain_id and eip712_message. The embedded EIP-712 payload keeps protocol and application casing such as primaryType, verifyingContract, chainId, and application-defined message field names.

Quick Start

Request Fields

string
required
Your HashDit API key. Missing or invalid keys return HTTP 401. Keep the key on a trusted server.
string
required
Address of the account being asked to sign.
integer
required
EVM chain identifier. See Supported Chains.
string
Originating dApp URL. Without it, URL threat-intelligence checks cannot run.
object
required
Typed-data payload exactly as the dApp sent it. Preserve primaryType, domain, types, message, and application-defined field names.

Response Fields

string
required
API result code. "0" indicates success; non-zero values indicate an error.
string
required
Request status. A successful completed response returns "ok".
Signing-flow decision: ALLOW, WARN, or BLOCK.
string
Classified meaning of the typed-data request.
integer
Maximum triggered checkpoint score from 0 to 5.
string
Human-readable risk label corresponding to overall_score.
object[]
Triggered findings with stable names, evidence, severity, and descriptions.
object
Risk enrichment for extracted addresses, URL, and verifying contract.
Use this field as the decision. Do not compute your own cutoff from overall_score — that mapping can change. A single severe finding is enough to reach BLOCK. Do not treat risk_details as a tally.

intent

What the user is actually signing. A missing entities.url means either no url was supplied, or enrichment was unavailable. Threat-intelligence timeouts do not turn the call into a 500 — the response is still served from structural analysis.

How to Use the Response

  • Use recommended_action as the signing-flow decision.
  • Use intent to describe what the user is authorizing.
  • Render every risk_details item; use name for application logic and description for copy.
  • Use entities for contextual address, URL, and verifying-contract risk—not as a replacement for the overall recommendation.

Risk Level Reference

Used for overall_risk_level and nested risk_level fields. overall_score is the maximum triggered score.

Errors and Retry Guidance