List user V2 vault positions
Cursor-paginated discovery list of Morpho Vault V2 positions held by a user across exposed chains. By default, only positions with non-zero shares are returned. Results can be filtered with chain_ids and vault_addresses. Fee wrappers are excluded. Pagination is weakly consistent and not snapshot-isolated: continuation pages re-evaluate realtime state, so changes to shares, assets, active status or membership may omit or repeat rows. last_indexed_block is freshness metadata only, not a pagination snapshot. Rows use the same position item shape as the singular Vault V2 user-position endpoint.
Path Parameters
User address to list positions for. Lowercase input is checksummed. Example: 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd.
addressQuery Parameters
Comma-separated EVM chain identifiers to filter on. Defaults to every exposed chain.
items <= 100Comma-separated vault addresses to filter on.
items <= 100When true, excludes positions with zero shares. Defaults to true.
"true"Value in
- "true"
- "false"
Sort field for cursor pagination.
"vault_address"Value in
- "vault_address"
- "shares"
- "assets"
Sort direction.
"desc"Value in
- "asc"
- "desc"
Maximum number of positions to return.
1 <= value <= 100100Opaque seek cursor (maximum 4096 characters) returned by a previous page. Do not modify it or parse it. It is unsigned and untrusted, not an authorization boundary; the user and filters are reapplied on every page, and changing the collection, sort, user or filters invalidates it.
1 <= length <= 4096Response Body
application/json
curl -X GET "https://example.com/v1/vaults-v2/users/0xabcdefabcdefabcdefabcdefabcdefabcdefabcd/positions"{ "params": { "user_address": "0x821b0F1A2C3d4E5f6789aBcDeF0123456789AbCd" }, "data": [ { "chain_id": 1, "last_indexed_block": "23481902", "vault_address": "0xBEEFcf0BA6b4a04AB8C5B2Dd1E5c5F0E2A5F64CB", "shares": "1250000000000000000000", "assets": "1312500000000000000000" } ], "cursor": null}