For the complete documentation index, see llms.txt. This page is also available as Markdown.

API Documentation

Supported Blockchains

Endpoint: GET /api/v1/chain/list

Description: Retrieve a list of all supported blockchains for contract analysis. Use the chainid value from the response when analyzing contracts.

Endpoint

| | |
|---|---|
| **Method** | `POST` |
| **Path** | `/api/v1/portal/contract/analyze-risk` (Swagger advertises `/v1/portal/contract/analyze-risk`; the live base path is `/api`) |
| **Content-Type** | `application/json` |
| **Auth** | API key in body (`api_key`). No header-based auth. |
| **Idempotency** | Per `(user_id, address, chain_id)`. Re-calls return the cached result without a new charge. |
| **Async** | First call for a fresh contract returns **202 pending**. Client polls the same endpoint until **200 ready**. |

## Request body

```json
{
  "api_key":  "string",
  "address":  "string",
  "chain_id": "string"
}
```

| Field | Type | Required | Notes |
|---|---|---|---|
| `api_key` | string | yes | Risk-API scoped access token issued in the portal. |
| `address` | string | yes | Contract address. EVM addresses must be `0x`-prefixed; non-EVM follows the chain's native format. |
| `chain_id` | string | yes | Decimal string (e.g. `"1"`, `"8453"`, `"56"`). |

Empty or malformed JSON, or any missing field, → **400 `INVALID_REQUEST_PAYLOAD`**.

Successful responses

Error responses

Examples

Polling pseudocode

Behavior notes

  • Pending is free. Polling does not deduct from the user's balance. Only the first 200 response charges.

Last updated