List curation vault labels
Changed onPublicly reads the latest published vault-label snapshot by default. Explicit current or draft reads expose the mutable working copy. Platform operators can read every entity; entity-member sessions list their own entity's rows only (the single-vault read below also answers a row nobody holds). Vault labels live under /v3/labels.
Request
- Base URLhttps://v3.euler.finance
- URLhttps://v3.euler.finance/v3/labels/vaults
- Authnone required
Query parameters
visibility attaches each row's verdict. For a request the route has authenticated as a platform session (a current or draft read with the session cookie) it is the verdict as evaluated, the VaultVisibility record that /visibility/platform answers per vault; for every other request it is the public VaultVisibilitySummary the quantitative vault lists carry inline. Labels are the only enumeration that reaches a chain without an indexer, so this is how a consumer gets the displayable set there; it stays opt-in so reads that do not need it do not pay for the join. A row the evaluator has no verdict for answers null rather than being dropped.
Label set identifier. Defaults to public.
Version selector. Omission, latest, and production select the latest published snapshot. Explicit current and draft select the mutable working copy and require an authorized session as documented by the endpoint. Other published keys and aliases retain their stored casing.
Requested page size. Values above the endpoint cap are clamped; the default shared cap is 100.
Page offset, capped at 10000 to bound query cost.
Keeps rows on this chain. Any positive integer is accepted, including chains the deployment does not serve: an archived chain keeps its stored labels and an unknown one answers an empty page, never 404 CHAIN_NOT_SUPPORTED. A value that is not a positive integer answers 422.
Repeat once per vault (?address=0x…&address=0x…, at most 100, any case): keeps only the listed addresses. Combines with chainId and every other filter, and with version= for a pinned read. An address that is not listed is simply absent from the page; a malformed one answers 422.
true keeps only vaults a curator holds (an entity is set), false only vaults nobody holds; unset lists both.
Case-insensitive substring of the label name or of the address; whitespace around the value is trimmed. Matches nothing but the labels: not the on-chain symbol.
Read view. curation (default) returns raw label fields with the resolved block nested, mirroring the write schema so read-modify-write round-trips stay safe. resolved returns the display cascade flattened to the top level with raw fields omitted, for read-only consumers. Unknown values are rejected with 400.
Comma-separated vault-type filter (evk,earn,securitize, any case). Defaults to all vault types; any other value, escrow included, answers 400 BAD_REQUEST with details { "param": "vaultType", "unknown": [...], "allowed": ["evk", "earn", "securitize"] }. Escrow vaults are evk: filter on isEscrow=true.
true lists only escrow vaults, false only vaults that are not escrow; unset lists every vault. Combines with the other filters.
Repeat once per tag (?tags=base&tags=keyring); each value is one tag, matched exactly as stored, so a tag containing a comma or spaces is queryable. A vault matches when its exposed tag set (label-row tags plus platform assessment tags, the live assessment also for published reads) carries every listed tag; a product matches when at least one of its member vaults does. tags=base selects the Base app subset.
Response
Vault-label page. Item shape follows the view parameter.
Changes
- info
added the optional property
/to the response with the status
- info
- warning
removed the optional property
/from the response with the status
- warning