Overview
V3 is a new, versioned vault risk surface that ships alongside v2. v2 (/api/v2/*) is frozen but fully supported through the deprecation window. New integrations should target V3; existing v2 integrations have time to migrate.
This guide is what the v2 Link: rel="deprecation" header will eventually point at. The header itself lands at V3 GA, not in Phase 1 — but the URL needs to resolve before it ships, which is what this page provides.
For the response shape, polarity rules, and upstream floor behavior, start with the V3 overview.
What’s new in V3
V3 introduces a composite letter grade, per-category risk contributors, a dense criteria taxonomy, and an honest coverage disclosure. The underlying v2risk envelope is preserved verbatim on every V3 response, so existing v2 consumers can adopt V3 incrementally — read the new fields when ready, ignore them otherwise. See the framework methodology page for the full picture.
Versioning contract
V3 commits to a stable contract across four surfaces:| Surface | Mechanism |
|---|---|
| URL path | /api/v2/... and /api/v3/... run in parallel |
| Response body | Top-level schema_version field (currently "3.0") |
| Response headers | Webacy-Api-Version, Webacy-Framework-Version, Webacy-Grading-Scheme |
| Deprecation headers | Deprecation, Sunset, and Link per RFC 8594 (land at V3 GA) |
Deprecation: <timestamp>— when v2 was officially deprecatedSunset: <timestamp>— when v2 will stop responding (GA + 9 months)Link: <this URL>; rel="deprecation"— pointer to this migration guide
Pin from day one
V3 lets you pin both the framework version and the grading scheme. Both default, but pinning is the contract — clients that don’t pin will silently re-score when a new framework or scheme version ships.| Parameter | Default | Behavior on unknown value |
|---|---|---|
?framework_version=v1 | v1 | 400 with { error, supported_versions: ['v1'] } |
?grading_scheme=v1 | v1 | 400 with { error, supported_schemes: ['v1'] } |
400 instead of a silent score change — and you can roll your client forward on your own schedule.
The Webacy-Framework-Version and Webacy-Grading-Scheme response headers echo the resolved pins, so you can confirm what was used to score each response.
Endpoint mapping
| v2 endpoint | V3 endpoint | Status |
|---|---|---|
GET /api/v2/vaults/:address | GET /api/v3/vaults/:address | Available now (Phase 1) |
| (new in V3) | GET /api/v3/framework | Available now (Phase 1) |
GET /api/v2/rwa/* | GET /api/v3/rwa/* | Roadmap (Phase 2A) |
x-api-key header as v2 and consumes a single CU per call (@Billable({ baseCu: 1, name: 'v3-vault-detail' })). The chain query parameter is required (eth | arb | base | opt | pol | bsc); responses include the v2 metadata block verbatim.
The framework endpoint is public — no API key, no billing, cacheable for 5 minutes.
What stays unchanged in v2
- All
/api/v2/*endpoints continue to respond normally throughout the deprecation window. - v2 schemas are frozen — no new fields, no behavior changes.
- The
riskenvelope on V3 responses is a verbatim pass-through of the v2 envelope. If you’re already consumingrisk.score,risk.overallRisk,risk.issues, orrisk.tagsfrom v2, the same code reads them from V3 without modification.
composite, categories, and coverage blocks on your own timeline.
⚠️ Score polarity for dashboard builders
The V3 overview has the full worked example (score 64 → C-), including the per-category contributors table with weights.
Also note the upstream floor: composite.score = max(framework_composite, upstream_risk). A vault with clean contributors and a high score is being clamped by risk.overallRisk — the clamped_by_upstream: true flag is the visible signal. Surface it.
Migration checklist
- Update your client to call
/api/v3/...for new code paths. - Add
?framework_version=v1&grading_scheme=v1to every V3 request. - Read
Webacy-Framework-VersionandWebacy-Grading-Schemeon responses to confirm the resolved pins. - Audit dashboards and alerting for score polarity — higher = worse.
- Display
clamped_by_upstreamandcoveragealongside category scores. - Continue consuming
risk.*from V3 responses the same way you did from v2; the envelope is identical. - When
DeprecationandSunsetheaders appear on v2 responses (at V3 GA), plan your full cutover before theSunsetdate.
Related resources
Vault Risk V3 Overview
Polarity, upstream floor, versioning contract, and category list.
Framework Methodology
How composite scores are derived and why the framework is API-driven.
Vault Detail (V3)
Full request/response reference for
GET /api/v3/vaults/{address}.Framework Taxonomy
Public framework endpoint — the canonical category and criteria list.
