---
title: "Update EVK vault assessment"
method: PATCH
path: "/v3/evk/vaults/{chainId}/{address}/assessment"
tags: ["Labeling Curation"]
---

# Update EVK vault assessment

`PATCH /v3/evk/vaults/{chainId}/{address}/assessment`

## Path parameters

- `chainId` integer, required
- `address` string, required

## Request body

- VaultAssessmentPatchRequest
  - `configStatus` 'unverified' | 'pending' | 'verified' | 'suspended' | 'revoked' — Setting `pending` without `configCheckAt` schedules an immediate re-check. Setting `revoked` clears any scheduled check.
  - `configReason` string, nullable
  - `configCheckAt` string, date-time, nullable
  - `configLastCheckedAt` string, date-time, nullable
  - `configVerifiedAt` string, date-time, nullable
  - `consistencyStatus` 'not_applicable' | 'pending' | 'verified' | 'suspended' | 'revoked' — Setting `pending` without `consistencyCheckAt` schedules an immediate re-check. Setting `revoked` clears any scheduled check.
  - `consistencyReason` string, nullable
  - `consistencyCheckAt` string, date-time, nullable
  - `consistencyLastCheckedAt` string, date-time, nullable
  - `riskStatus` 'unverified' | 'pending' | 'ok' | 'warning' | 'critical' | 'suspended' | 'revoked'
  - `riskContext` object, nullable
  - `riskAssessedAt` string, date-time, nullable
  - `isDeprecated` boolean
  - `deprecationReason` string, nullable
  - `notExplorable` boolean
  - `notExplorableLend` boolean
  - `notExplorableBorrow` boolean
  - `tags` string[]

## Response `200`

Updated vault assessment.

- object
  - `data` VaultAssessment, required
    - `chainId` integer, required
    - `vaultAddress` string, required
    - `configStatus` 'unverified' | 'pending' | 'verified' | 'suspended' | 'revoked', required — Layer 1 (on-chain configuration safety) lifecycle. `unverified`: never verified, or the first check failed (`configContext.outcome` is `fail`). `verified`: the configuration policy passed. `suspended`: a re-check failed after the vault had been verified. `revoked`: set manually by a platform admin. `pending`: a platform admin requested a re-check through the PATCH endpoint; the automatic loop never writes this value. A due check is signalled by a non-null `configCheckAt`, not by the status, and a passing status is left unchanged while re-checks run.
    - `configReason` string, nullable
    - `configContext` VaultConfigAssessmentContext, nullable, required
      - `policyId` 'euler-evk' | 'euler-securitize' | 'euler-earn', required
      - `policyVersion` integer, required
      - `outcome` 'pass' | 'fail' | 'unknown' | 'not_applicable', required
      - `localOutcome` 'pass' | 'fail' | 'unknown' | 'not_applicable', required — Verdict excluding collateral-recognition findings; used for cycle-safe recognition.
      - `evaluatedAt` string, date-time, required
      - `blockNumber` string, required
      - `blockHash` string, required
      - `findings` object[], required
        - `key` string, required
        - `outcome` 'pass' | 'fail' | 'unknown' | 'not_applicable', required
        - `required` boolean, required
        - `description` string, required
        - `expected` unknown
        - `observed` unknown
        - `exempted` boolean — True when a platform rule exemption downgraded this finding to evidence.
      - `summary` object, required
        - `passed` integer, required
        - `failed` integer, required
        - `unknown` integer, required
        - `notApplicable` integer, required
    - `configCheckAt` string, date-time, nullable — When the next Layer 1 check is due. Non-null means an on-chain change or a manual request is awaiting a check; cleared when the check completes.
    - `configLastCheckedAt` string, date-time, nullable — When Layer 1 last completed a check, whatever the outcome.
    - `configVerifiedAt` string, date-time, nullable — When the vault last passed Layer 1.
    - `consistencyStatus` 'not_applicable' | 'pending' | 'verified' | 'suspended' | 'revoked', required — Layer 2 (label to chain consistency) lifecycle. `not_applicable`: nothing to check (escrow or unclaimed vault). `verified`: the labels agree with the current on-chain governor or owner and with product membership. `suspended`: an inconsistency was detected, such as a governor outside the entity's addresses or a product mixing governed and ungoverned vaults; resolution is a platform-admin action. `revoked`: set manually by a platform admin. `pending`: a re-check was requested manually, or the first check could not read chain state and will retry.
    - `consistencyReason` string, nullable
    - `consistencyCheckAt` string, date-time, nullable — When the next Layer 2 check is due. Set by governance events on chain and by manual requests; label mutations run their check synchronously instead.
    - `consistencyLastCheckedAt` string, date-time, nullable — When Layer 2 last completed a check, whatever the outcome.
    - `riskStatus` 'unverified' | 'pending' | 'ok' | 'warning' | 'critical' | 'suspended' | 'revoked', required — Layer 3 (risk context) lifecycle. Not yet automated: no worker writes this field, so it stays `unverified` unless a platform admin sets it through the PATCH endpoint.
    - `riskContext` object, nullable
    - `riskAssessedAt` string, date-time, nullable
    - `isDeprecated` boolean, required
    - `deprecationReason` string, nullable
    - `notExplorable` boolean, required
    - `notExplorableLend` boolean, required
    - `notExplorableBorrow` boolean, required
    - `tags` string[], required
    - `createdAt` string, date-time, nullable, required
  - `meta` PaginationMeta, required
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Validation error

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc.dev/euler/apis/euler-data-api-v3/revisions/1cbef949e74f?raw)
