Skip to main content

Ownership: owner_role

owner_role says how the wallet relates to a position:
  • authority: the wallet owns the obligation, perp or position account.
  • withdraw_authority: stake the wallet can withdraw.
  • stake_authority: staker only: the wallet can delegate the stake but not withdraw it. Shown with the staker_only flag and excluded from totals (D-09).
  • token_holder: the receipt or share token (an LST, an LP token) is in the wallet.
  • beneficiary: the wallet is entitled through a farm or custody account.
  • delegate: the wallet acts for the owner under a delegation.
  • unknown: the relationship could not be classified.

Positions, legs and roles

A position (id = solana:<adapter>:<container>, stable across snapshots) has three leg arrays: assets, debts (positive amounts you owe) and rewards. net_value_usd = assets − debts (+ rewards when included). Leg role is one of supplied, collateral, borrowed, liquidity, staked, share, underlying, margin, unrealized_pnl, funding, fee, reward. position_type is one of lending_supply, lending_borrow, liquidity_concentrated, liquidity_bins, liquidity_fungible, vault, native_staking, liquid_staking, perpetual, yield_reward, governance_staking (staked governance tokens such as JUP; category is null), unclassified (a detected position whose kind is not supported; shown, never valued); category groups them. details holds protocol facts (never summed); evidence names the slot, adapter version, method and accounts read.

Leg valuation statuses

  • priced: valued from a qualified source; counts toward total_value_usd.
  • indicative: priced from a thin market; included in known_value_usd, never in total_value_usd (D-07).
  • stale: the latest price is too old; the value is shown but counted in neither total.
  • unsupported: no supported price source for this token; value_usd is null.
  • no_liquidity: no market deep enough to price it; value_usd is null.
  • unlicensed: a price exists but cannot be served; value_usd is null.
  • error: pricing failed during the scan; value_usd is null.
  • not_requested: valuation was not requested (include without valuation).
confidence is qualified or indicative. pricing_source and price_as_of say where and when the price came from. market_price_usd (an LST’s market price, D-08) and protocol_mark_price_usd (the protocol’s own mark, D-10/D-17) are for reference only and are never summed.

Exact vs estimated, claimable, informational

  • amount_basis: "estimated": an accrual not yet booked on chain (for example farm rewards, D-16). Never counted.
  • claimable: whether a reward can be claimed now.
  • informational: true: a reference figure (perp notional, SOL equivalent, NAV after penalty). Never summed.
  • in_totals and exclusion_reason say whether each leg counts, and if not why: indicative, stale, unpriced, estimated, staker_only, rewards_not_included, informational or nested (counted through a parent position).

Flags and warnings

flags are derived for every position: excluded_from_totals, staker_only, unsupported_position_kind, interest_stale, oracle_stale, incomplete_position, carried_forward, has_estimated_legs, has_indicative_legs, has_stale_legs, locked, out_of_range. warnings are adapter messages (code or code:detail). Both are open enums: new values may appear within v1, and clients must ignore values they don’t know.