Returns the authenticated tenant’s user portfolios with cursor-based pagination.
GET /v2/portfolios/{portfolioId}/positions; keep them separate so
list polling stays cheap.
x-api-key header (required)portfolios:readeip155:0:<address>
(per CAIP-10 §Abstract Account Addresses — the same EOA works on every
EIP-155 chain). Vaults are chain-bound CAIP-10s (eip155:<chainId>:<address>)
because each Kernel smart account only exists at that (chain, address)
tuple. Raw addresses and numeric chain IDs never appear on the wire.
eip155 externally-owned account — the enrollment
route only accepts EVM addresses. The userAccountId field is always
emitted in the eip155:0:<address> form. When enrollment opens to
non-EVM chains or smart-contract accounts this assumption has to be
revisited: the owner namespace will need to be derived from the
address itself, and the wire field may need to become chain-bound for
account kinds that lack a chain-agnostic form (Solana, ERC-4337
entries, etc.).createdAt descending order (tiebreak by
portfolioId). Pass the nextCursor value from the previous response as the
cursor query parameter to fetch the next page. nextCursor is null when
there are no more results. Archived portfolios are excluded.
eip155:0:0x<address>. Mixed-case input is accepted; the address part is
normalized to lowercase server-side.POST /v2/strategies).active, paused. When set,
portfolios without a schedule row are excluded.400 when a filter value is malformed (invalid CAIP-10, unknown status enum, bad cursor) or limit is out of range401 when x-api-key header is missing or the key is invalid403 when the API key lacks the portfolios:read scope500 on unexpected server errors