List V1 vaults
Cursor-paginated list of listed Morpho Vault V1 instances across every supported chain: identity, deployment facts, the performance-fee setup and the owner / curator roles. Enough to build and rank a vault directory without a follow-up call per row; {chain-id}:{vault_address} on each item addresses the detail routes.
Membership is gated on listing. A V1 vault appears once it is promoted, or once a Vault V2 references it through a MorphoVaultV1Adapter. This is therefore not a complete enumeration of indexed Vault V1 instances, and its contents can change with no on-chain event. Unlisted vaults remain reachable through GET /v0/vaults-v1/{chain-id}:{vault-address}.
Not here. Live state (total_assets, share_price_ray) is on …/state and APY on …/apy; the underlying token's name, symbol and decimals are on GET /v0/tokens/{chain-id}:{address}; guardian, skim_recipient, timelock_seconds and pending governance state are on the single-vault lookup.
Pagination. Pass cursor back verbatim on the next call; a null cursor means the last page. The cursor is bound to both the sort and the filter set that produced it, so changing either is a 400 rather than a silently wrong page.
Freshness. Every field is configuration that changes only on a governance action or a new deployment, so the payload does not move between blocks and carries no last_indexed_block. Use GET /v0/chains for per-chain indexer tips.
Query Parameters
Opaque cursor from a previous page response. Bound to the sort and filter set that produced it.
1 <= length <= 4096Maximum number of vaults to return.
1 <= value <= 1000100Sort key. address sorts on the (chain_id, vault_address) tiebreak. name compares the first 512 characters, with ties broken by chain id and vault address.
"address"Value in
- "address"
- "creation_timestamp"
- "creation_block_number"
- "name"
- "performance_fee_wad"
Sort direction. Defaults to asc for address and name, desc for creation_timestamp, creation_block_number and performance_fee_wad.
Value in
- "asc"
- "desc"
Filter by chain ids. Required when any address filter is provided.
items <= 100Filter by underlying asset address. Combine with chain_ids; lowercase input is checksummed.
items <= 100Filter by deploying factory address. Combine with chain_ids; lowercase input is checksummed.
items <= 100Filter by current owner. Combine with chain_ids; lowercase input is checksummed.
items <= 100Filter by current curator. Combine with chain_ids; lowercase input is checksummed.
items <= 100Filter by factory lineage.
items <= 100Response Body
application/json
curl -X GET "https://example.com/v0/vaults-v1"{ "data": [ { "chain_id": 1, "vault_address": "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB", "version": "1.0", "name": "Steakhouse USDC", "symbol": "steakUSDC", "asset_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "factory_address": "0xA9c3D3a366466Fa809d1Ae982Fb2c46E5fC41101", "creation_block_number": "18928285", "creation_timestamp": 1704500000, "performance_fee_wad": "50000000000000000", "performance_fee_recipient": "0x255c7705e8BB334DfCae438197f7C4297988085a", "owner": "0x0A0e559bc3b0950a7e448F0d4894db195b9cf8DD", "curator": "0x827e86072B06674a077f592A531dcE4590aDeCdB" } ], "cursor": "eyJzIjoiYWRkcmVzcyIsImQiOiJhc2MiLCJ2IjoiMHhCRUVGMDE3MzVjMTMyQWRhNDZBQTlhQTRjNTQ2MjNjQUE5MkE2NENCIiwidk51bGwiOmZhbHNlLCJpIjpbMSwiMHhCRUVGMDE3MzVjMTMyQWRhNDZBQTlhQTRjNTQ2MjNjQUE5MkE2NENCIl0sImYiOiJjMmYwYTEifQ"}