
DeFi Cover Claim Adjudicator
Predicts whether a DeFi cover claim (Nexus Mutual or any provider's wording) will be approved and for how much. Reads the wording, postmortems and the claimant's transactions, quantifies net token loss with Chainlink prices at the loss block, maps facts to covered events, exclusions and conditions with verbatim verified clauses, cites similar past claims, and returns verdict.action (FILE / FILE_WITH_MORE_EVIDENCE / DO_NOT_FILE) with calibrated P(approved), expected payout and filing value in the cover asset, an assessor vote (APPROVE/DENY/ABSTAIN) and the missing evidence that would change the verdict. A failed hard gate (cover period, filing window) is decided in code with no model call; if a model stage fails you still get the verified gates, timing and loss valuation as a partial result. Not financial or legal advice.
What you get
A denied Nexus claim forfeits its 0.05 ETH deposit and a wrong assessor vote is penalized; this prices the claim and names the clause that decides it before anyone files or votes.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/cover-claim. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/cover-claim \
-H 'content-type: application/json' \
-d '{"wording":{"productName":"Pocket Universe"},"incident":{"description":"A transaction of about 2.08 ETH made on the Lido frontend on 2024-10-04 at 11:31:28 UTC was replaced with a plain transfer to a scam address by malware on the user'\''s machine, and Pocket Universe did not flag it as malicious. The claimant cites covered event 3b, malicious sending of funds.","postmortemUrls":["https://forum.nexusmutual.io/t/1538"],"occurredAt":"2024-10-04T11:31:28Z"},"transactions":[{"chain":"ethereum","hash":"0x1b84e51a0b3f682ce7636170f9a18fcb3cc532661c1ce65f9733e2b5ce74a29f"}],"claimant":"0x760513ef6f45da1964128848f8962c02fb4770c9","cover":{"amount":250000.23,"asset":"USDC","start":"2024-09-25T00:00:00Z","end":"2024-10-25T00:00:00Z"},"claimedLoss":{"amount":5027.91},"claimDate":"2024-10-11T00:00:00Z"}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
wording | object | yes | The cover wording: a Nexus Mutual product (id or name), a URL (HTML or PDF), or pasted text. At least one. |
incident | object | no | |
transactions | array<object>; max 12 items | no | Transactions in which the claimant lost (or deposited, or recovered) funds. |
claimant | string | yes | Address that suffered the loss (the Impacted Account). |
cover | object | yes | |
deductible | object | no | Overrides any deductible found in the wording. Amount in cover-asset units; percentages 0-100. |
claimedLoss | object | no | Loss the claimant asserts, in cover-asset units. Used for the payout only when no on-chain loss can be established; always reported as unverified. |
claimDate | string; length 10..40 | no | ISO 8601 date the claim is (to be) filed; default now. |
Example request body
{
"wording": {
"productName": "Pocket Universe"
},
"incident": {
"description": "A transaction of about 2.08 ETH made on the Lido frontend on 2024-10-04 at 11:31:28 UTC was replaced with a plain transfer to a scam address by malware on the user's machine, and Pocket Universe did not flag it as malicious. The claimant cites covered event 3b, malicious sending of funds.",
"postmortemUrls": [
"https://forum.nexusmutual.io/t/1538"
],
"occurredAt": "2024-10-04T11:31:28Z"
},
"transactions": [
{
"chain": "ethereum",
"hash": "0x1b84e51a0b3f682ce7636170f9a18fcb3cc532661c1ce65f9733e2b5ce74a29f"
}
],
"claimant": "0x760513ef6f45da1964128848f8962c02fb4770c9",
"cover": {
"amount": 250000.23,
"asset": "USDC",
"start": "2024-09-25T00:00:00Z",
"end": "2024-10-25T00:00:00Z"
},
"claimedLoss": {
"amount": 5027.91
},
"claimDate": "2024-10-11T00:00:00Z"
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
verdict | object | no | Machine-readable call, computed in code. Leads the answer; detail follows in the other fields. |
disclaimer | string | no | Not financial advice. |
partial | boolean | no | True when the clause-map stage failed: clauses were not extracted, confidence is capped at 0.5 and missing names the stage. A failed probability ensemble is a 502 so the payment is released. |
missing | array<string> | no | Stages that did not complete: clause_map. |
recommendation_assessor | string; one of "APPROVE", "DENY", "ABSTAIN" | no | Vote advice for a claim assessor. |
recommendation_claimant | string; one of "FILE", "FILE_WITH_MORE_EVIDENCE", "DO_NOT_FILE" | no | |
refile_after | one of | no | ISO time when the wording's cool-down ends, when filing is premature; otherwise null. |
decided_by | string; one of "deterministic_hard_gate", "model_ensemble" | no | deterministic_hard_gate: a failed hard gate (filing deadline, cover period) decided the verdict in code with no model call. |
llm_calls | integer | no | Number of model calls this answer used. |
clause_map_source | string; one of "none", "code_parsed", "model" | no | Whether clauses and terms were read from the wording by code or by a model. |
p_approved | number | no | Calibrated probability the claim is approved (0-1). |
p_interval | array<number> | no | |
confidence | number | no | 0-1; falls with ensemble disagreement, dropped quotes and decisive evidence gaps. |
payout | object | no | Cover-asset amounts: measured_loss, deductible, claim_amount_if_approved, expected_payout, claim_deposit, expected_value_of_filing. |
deciding_clauses | array<object> | no | Covered-event, exclusion and condition clauses, each verified verbatim against the wording. |
cleared_exclusions | array<object> | no | |
gates | array<object> | no | Deterministic checks: event within cover period, filing window, cool-down, materiality. |
timing | object | no | |
losses | array<object> | no | Per-token net flows of the claimant with Chainlink pricing at the loss block, or the reason a token is unpriced. |
transactions | array<object> | no | |
precedents | array<object> | no | Most similar past Nexus Mutual claims with outcomes and verified excerpts. |
missing_evidence | array<object> | no | Evidence that would change the verdict. |
ensemble | object | no | |
red_team | one of | no | Adversarial assessor pass arguing for denial; null when no model ran or the pass failed. |
decisive_clause_quotes | array<string> | no | |
reasoning | array<string> | no | |
incident | object | no | |
unverified_quotes_dropped | integer | no | |
warnings | array<string> | no | |
sources | array<object> | no |
Pay and connect
Available through: x402 (USDC on Base), MCP, RapidAPI.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent