cesto.positions has two reads: positions.list for a user’s Cesto-account positions,
and getHoldings for the live, on-chain position in one basket — the position view for
SDK-opened positions.
Get all positions
cesto.positions.list returns a user’s open and closing positions, resolved from
their external Solana wallet address, with no end-user login required.
string
required
External Solana wallet address to look up.
Position[]
Live open / partially-open positions.
Position[]
Positions with a close currently in progress.
A wallet with no Cesto account returns an empty result
(
{ positions: [], pendingClosePositions: [] }) and is not an error. The wallet
argument is required; an empty value throws before any request is made.This endpoint reads Cesto account positions (opened in the Cesto app). Positions
opened via the SDK are self-custody and do not appear here — use getHoldings below.Position by product (SDK positions)
cesto.positions.getHoldings returns the wallet’s live position in one basket, read
from on-chain balances of the basket’s constituent tokens — exactly what a
close would sell. Works with a read-only key.
string
required
Solana address to read.
string
required
Basket to read — product id or slug.
Holding[]
The wallet’s live balances of the basket’s constituent tokens, with USD prices and values.
number
Total USD value of the holdings.
boolean
True when the wallet holds any of the basket’s tokens (i.e. a close would sell something).
object | null
The most recent SDK open/close execution for this wallet + product, scoped to your API
key — one partner never sees another partner’s activity for the same wallet.