Result Dataclasses
Every agentic primitive returns a typed dataclass — no raw tuples, no dicts, no strings. Callers (human or LLM) can rely on named fields. This page catalogs the result types returned by the 21 primitives.
Position Analysis
PositionAnalysis— returned byAnalyzePositionFields:
current_value,hold_value,il_percentage,il_with_fees,fee_income,net_pnl,real_apr,diagnosis
BalancerPositionAnalysis— returned byAnalyzeBalancerPositionFields:
current_value,hold_value,il_percentage,net_pnl,weight_base,weight_opp,real_apr,diagnosis
StableswapPositionAnalysis— returned byAnalyzeStableswapPositionFields:
current_value,hold_value,il_percentage,net_pnl,A,alpha,real_apr,diagnosis
Price Scenarios
PriceMoveScenario— returned bySimulatePriceMoveFields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct
BalancerPriceMoveScenario— returned bySimulateBalancerPriceMoveFields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct,weight_base,weight_opp
StableswapPriceMoveScenario— returned bySimulateStableswapPriceMoveFields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct,A
Pool Health
PoolHealth— returned byCheckPoolHealthFields:
version,token0_name,token1_name,spot_price,reserve0,reserve1,total_liquidity,tvl_in_token0,total_fee0,total_fee1,num_swaps,fee_accrual_rate_recent,num_lps,top_lp_share_pct,has_activity
RugSignalReport— returned byDetectRugSignalsFields:
tvl_suspiciously_low,single_sided_concentration,inactive_with_liquidity,signals_detected,risk_level,details,pool_health
FeeAnomalyResult— returned byDetectFeeAnomalyFields: see source at
defipy.utils.data.FeeAnomalyResult
Risk
TickRangeStatus— returned byCheckTickRangeStatusFields: see source at
defipy.utils.data.TickRangeStatus
DepegRiskAssessment— returned byAssessDepegRiskFields: see source at
defipy.utils.data.DepegRiskAssessment
Optimization
DepositSplitResult— returned byOptimalDepositSplitFields: see source at
defipy.utils.data.DepositSplitResult
RebalanceCostReport— returned byEvaluateRebalanceFields: see source at
defipy.utils.data.RebalanceCostReport
TickRangeEvaluation— returned byEvaluateTickRangesFields: see source at
defipy.utils.data.TickRangeEvaluation
Comparison
FeeTierComparison— returned byCompareFeeTiersFields: see source at
defipy.utils.data.FeeTierComparison
ProtocolComparison— returned byCompareProtocolsFields: see source at
defipy.utils.data.ProtocolComparison
Execution
SlippageAnalysis— returned byCalculateSlippageFields: see source at
defipy.utils.data.SlippageAnalysis
MEVDetectionResult— returned byDetectMEVFields: see source at
defipy.utils.data.MEVDetectionResult
Portfolio
PortfolioAnalysis— returned byAggregatePortfolioFields:
numeraire,total_value,total_hold_value,total_net_pnl,total_fees,pnl_ranking,shared_exposure_warnings,positions
PortfolioPosition— input dataclass forAggregatePortfolioFields:
lp,lp_init_amt,entry_x_amt,entry_y_amt,entry_amounts,holding_period_days,name
PositionSummary— per-position entry insidePortfolioAnalysis.positionsFields:
name,protocol,net_pnl,il_percentage,fee_income,tokens,analysis
Break-Even
BreakEvenAlphas— returned byFindBreakEvenPriceFields: see source at
defipy.utils.data.BreakEvenAlphas
BreakEvenTime— returned byFindBreakEvenTimeFields: see source at
defipy.utils.data.BreakEvenTime
Note
Fields listed as “see source” will be expanded with full field documentation when autodoc is wired in Brief 3. The dataclasses whose fields are listed inline above are the most commonly used and were verified during the category notebook drafting.
For the primitive that returns each dataclass, see Overview.