Overview
GET /v1/streams/wallets/{address} returns all streams a given wallet address has snapshot data in, together with the wallet’s snapshot history for each stream. This is a public endpoint — no API key is required.
By default the endpoint returns only the latest snapshot per stream, which is efficient for summary views. Pass withSnapshots=true to include the full historical timeline for every stream.
Use
withSnapshots=false (the default) for portfolio overviews and summary widgets. Use withSnapshots=true when you need the full reward history across all streams for a wallet, such as for charts or reconciliation workflows.Endpoint
Parameters
Path ParametersEVM wallet address to look up, such as
0x1111111111111111111111111111111111111111. The backend resolves the address against stored wallet snapshot records across all streams.Controls how much snapshot history is returned per stream.
false(default) — each stream entry contains a single-elementsnapshotsarray with the most recent snapshot only. Use this for summary tables and portfolio cards.true— each stream entry contains the fullsnapshotsarray with every recorded snapshot. Use this for historical charts, cumulative reward plots, and reconciliation.
Response Example
Response Semantics
snapshots contains one item by default
snapshots contains one item by default
When
withSnapshots=false, each stream entry’s snapshots array always contains exactly one element — the most recent snapshot recorded for that wallet in that stream. This is equivalent to the lastSnapshot field returned by Get Stream Wallets, but embedded in an array for a consistent shape regardless of the flag.withSnapshots=true returns the full timeline
withSnapshots=true returns the full timeline
When
withSnapshots=true, the snapshots array contains every recorded snapshot for the wallet in that stream, ordered by timestamp descending. The first element is always the most recent. This is the same data returned by Get Wallet Data but across all streams in a single response.An empty array is a valid response
An empty array is a valid response
If the wallet address has no snapshot data in any stream, the endpoint returns
streams: [] rather than failing. This means the wallet has not participated in any confirmed stream yet.Only confirmed, non-deleted streams are included
Only confirmed, non-deleted streams are included
The response only includes streams whose on-chain creation has been confirmed. Streams in a pending creation state are not returned even if internal records already exist.Additionally, soft-deleted streams are always excluded — even if the wallet accumulated snapshot data in them before deletion. This means a wallet’s historical snapshots for a deleted stream will never appear in this response.
Response Fields
List of streams the wallet has participated in, one entry per stream.
WalletData
Identifier of the stream. This duplicates the
stream.id field for convenience.The wallet address whose data is being returned. Mirrors the
address path parameter.Snapshot history for this wallet in the stream. Contains one element when
withSnapshots=false (the latest only), or the full timeline when withSnapshots=true. Ordered by timestamp descending. For the canonical WalletSnapshot field definitions, see the WalletSnapshot section on the Get Stream Wallets page.Full stream object. Uses the same
Stream schema returned by Get Streams, including id, chainId, contractAddress, customArgs, lastSnapshot, committedSnapshot, point, and rewardToken.WalletSnapshot
APR-related fields are only populated for token-based streams. For point-based streams, baseApr and apr are omitted.
Effective timestamp of the snapshot — the time bucket the metrics correspond to, not the database write time.
Total rewards accumulated by the wallet at this snapshot, in base units (wei for token streams, point precision for point streams). Reflects post-adapter values.
Accumulated rewards before adapter adjustments are applied.
Timestamp when this snapshot row was first created in Turtle’s backend.
Timestamp of the latest update applied to this snapshot row.
Time-weighted-average (TWA) USD TVL for the wallet after adapters.
TWA USD TVL for the wallet before adapters.
TWA USD TVL of the wallet’s net position relative to the stream’s
startTimestamp.TWA USD TVL restricted to Turtle users, windowed to each user’s sign-up timestamp.
Turtle-equivalent of
netTvl, using the user’s token balance at sign-up as the reference.Base APR before adapter adjustments. Only populated for token-based streams.
Effective APR after adapter adjustments. Only populated for token-based streams.
Strategy-specific metrics for the snapshot. Treat as extensible JSON.
Stream
The stream field uses the same Stream schema returned by Get Streams. See that page for the complete field reference, including lastSnapshot, committedSnapshot, rewardToken, point, and customArgs.
Integration Notes
Choose withSnapshots based on your use case
Choose withSnapshots based on your use case
Use
withSnapshots=false (the default) for any view that only needs the current state: portfolio cards, leaderboards, summary widgets. Use withSnapshots=true only when you need to chart or reconcile the full reward history — it returns significantly more data per stream.Amounts are returned as strings on purpose
Amounts are returned as strings on purpose
Reward amounts are serialized as strings to avoid precision loss in JavaScript environments. Keep them as strings in transit and use a big-number library only when arithmetic or unit conversion is needed.
Use single-stream endpoints for stream-scoped queries
Use single-stream endpoints for stream-scoped queries
If you need snapshot data for one wallet within a specific stream, use Get Wallet Data. If you need a paginated list of all wallets for one stream, use Get Stream Wallets.
Error Handling
Unexpected internal error
Unexpected internal error
Status Code: 500 Internal Server ErrorSolution: Retry the request and contact Turtle if the issue persists.

