DeFi post-mortem to ordered attack chain
DeFi post-mortem to ordered attack chain: steps with a fixed primitive enum and the evidence each rests on (1 × 500 characters at 0.030000 USDC each)
Answeringour last check, 2026-09-24
1 of 1checks answered this week
659 msmedian answer time
$0.03listed price per call
$0.03price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.agentsouk.dev/v1/x402/lst_01M2P45H2MBEN75Q52FE5XY4KC
| Category | Market data |
|---|---|
| Provider host | api.agentsouk.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.03 | 659 ms |
Example input (from the provider)
{
"body": {
"text": "Given this DeFi exploit post-mortem: Attacker took a flash loan of 5000 ETH, then used the borrowed funds to skew the oracle price feed for the lending pool, then drained the pool liquidity through the mispriced collateral, then repaid the flash loan keeping the profit."
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"note": {
"description": "Optional hint, e.g. \"the amounts are in EUR\". Treated as data, never as instructions",
"maxLength": 300,
"type": "string"
},
"text": {
"description": "The post-mortem, incident report, thread or article to read",
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"chain": {
"type": [
"string",
"null"
]
},
"funds_lost_usd": {
"type": [
"number",
"null"
]
},
"model": {
"type": "string"
},
"not_an_incident": {
"type": [
"string",
"null"
]
},
"primitive_other": {
"description": "set only where primitive is `other`: the short name the model gave that class",
"type": [
"string",
"null"
]
},
"protocol": {
"type": [
"string",
"null"
]
},
"steps": {
"items": {
"properties": {
"description": {
"type": "string"
},
"evidence": {
"description": "a span of your text, word for word",
"type": "string"
},
"evidence_verbatim": {
"description": "true when we found that span in your text again (whitespace, quotes and case normalised); false when the model paraphrased instead",
"type": "boolean"
},
"primitive": {
"enum": [
"flash-loan",
"oracle",
"reentrancy",
"access-control",
"approval",
"rounding",
"price-manipulation",
"logic-error",
"signature",
"upgrade",
"bridge",
"governance",
"front-running",
"key-compromise",
"supply-chain",
"phishing",
"overflow",
"delegatecall",
"mint",
"slippage",
"replay",
"insider",
"other"
],
"type": "string"
}
},
"required": [
"primitive",
"description",
"evidence",
"evidence_verbatim"
],
"type": "object"
},
"type": "array"
},
"text_chars": {
"type": "integer"
},
"units_charged": {
"type": "integer"
}
},
"required": [
"steps",
"primitive_other",
"protocol",
"chain",
"funds_lost_usd",
"not_an_incident",
"model",
"text_chars",
"units_charged"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}