Skip to main content
POST
/
v3
/
vaults
/
batch
/
grades
Batch v3 vault composite grades
curl --request POST \
  --url https://api.webacy.com/v3/vaults/batch/grades \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "tokens": [
    {
      "address": "0xD50DA5F859811A91fD1876C9461fD39c23C747Ad",
      "chain": "eth"
    },
    {
      "address": "0x0deFfd509197aAD5207d2A55862835b467E8128F",
      "chain": "eth"
    }
  ]
}
'
{
  "schema_version": "3.0",
  "results": [
    {
      "address": "0xD50DA5F859811A91fD1876C9461fD39c23C747Ad",
      "chain": "eth",
      "ok": true,
      "composite": {
        "grading_scheme": "v2",
        "grade": "F",
        "stars": 1,
        "score": 98.5,
        "contributors": {
          "smart_contract": {
            "score": 0,
            "weight": 0.2
          },
          "operational_governance": {
            "score": 0,
            "weight": 0.2
          },
          "asset_collateral": {
            "score": 10,
            "weight": 0.15
          },
          "market_liquidity": {
            "score": 35,
            "weight": 0.2
          },
          "counterparty": {
            "score": 0,
            "weight": 0.1
          },
          "hack_exploit_history": {
            "score": 0,
            "weight": 0.15
          },
          "chain_infrastructure": {
            "score": 0,
            "weight": 0
          }
        },
        "upstream_risk": 98.5,
        "clamped_by_upstream": true
      }
    },
    {
      "address": "0x0000000000000000000000000000000000000000",
      "chain": "eth",
      "ok": false,
      "error_code": "NOT_FOUND"
    }
  ]
}
Returns the V3 composite grade (letter + 0–100 risk score + per-category contributors) for up to 100 vaults in a single request. The vault addresses travel in the request body because the list is variable-length and can include non-EVM addresses; the endpoint is read-only.
The batch never fails as a whole. Each result row carries its own outcome — either ok: true with a composite, or ok: false with an error_code (NOT_FOUND, INVALID_ADDRESS, UNSUPPORTED_CHAIN, or UPSTREAM_ERROR) — so one bad vault can’t sink the request.

Authorizations

x-api-key
string
header
required

Query Parameters

grading_scheme
enum<string>
default:v2

Grading scheme to pin — selects the letter-grade band table. Default v2 (the standard 11-band scale: no E, adds C+). v1 is frozen and deprecated. Independent of the API version (v3) and of framework_version. Unknown values return 400 with the supported list.

Available options:
v1,
v2

Body

application/json
tokens
object[]
required

Up to 100 { address, chain } tuples — the vaults to grade.

Required array length: 1 - 100 elements

Response

Per-vault composite grade results. The batch never fails as a whole; each row is ok: true with a composite, or ok: false with an error_code.

schema_version
string
required
Example:

"3.0"

results
object[]
required