Skip to main content
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.

Opening and closing

To open or close a position (client-signed, write-scoped key), see Open a Position and Close a Position.