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 byAnalyzePosition- Fields:
current_value,hold_value,il_percentage,il_with_fees,fee_income,net_pnl,real_apr,diagnosis
- Fields:
-
BalancerPositionAnalysis— returned byAnalyzeBalancerPosition- Fields:
current_value,hold_value,il_percentage,net_pnl,weight_base,weight_opp,real_apr,diagnosis
- Fields:
-
StableswapPositionAnalysis— returned byAnalyzeStableswapPosition- Fields:
current_value,hold_value,il_percentage,net_pnl,A,alpha,real_apr,diagnosis
- Fields:
Price Scenarios
-
PriceMoveScenario— returned bySimulatePriceMove- Fields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct
- Fields:
-
BalancerPriceMoveScenario— returned bySimulateBalancerPriceMove- Fields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct,weight_base,weight_opp
- Fields:
-
StableswapPriceMoveScenario— returned bySimulateStableswapPriceMove- Fields:
projected_value,projected_hold_value,projected_il_percentage,projected_net_pnl,price_change_pct,A
- Fields:
Pool Health
-
PoolHealth— returned byCheckPoolHealth- Fields:
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
- Fields:
-
RugSignalReport— returned byDetectRugSignals- Fields:
tvl_suspiciously_low,single_sided_concentration,inactive_with_liquidity,signals_detected,risk_level,details,pool_health
- Fields:
-
FeeAnomalyResult— returned byDetectFeeAnomaly- Fields: see source at
defipy.utils.data.FeeAnomalyResult
- Fields: see source at
Risk
-
TickRangeStatus— returned byCheckTickRangeStatus- Fields: see source at
defipy.utils.data.TickRangeStatus
- Fields: see source at
-
DepegRiskAssessment— returned byAssessDepegRisk- Fields: see source at
defipy.utils.data.DepegRiskAssessment
- Fields: see source at
Optimization
-
DepositSplitResult— returned byOptimalDepositSplit- Fields: see source at
defipy.utils.data.DepositSplitResult
- Fields: see source at
-
RebalanceCostReport— returned byEvaluateRebalance- Fields: see source at
defipy.utils.data.RebalanceCostReport
- Fields: see source at
-
TickRangeEvaluation— returned byEvaluateTickRanges- Fields: see source at
defipy.utils.data.TickRangeEvaluation
- Fields: see source at
Comparison
-
FeeTierComparison— returned byCompareFeeTiers- Fields: see source at
defipy.utils.data.FeeTierComparison
- Fields: see source at
-
ProtocolComparison— returned byCompareProtocols- Fields: see source at
defipy.utils.data.ProtocolComparison
- Fields: see source at
Execution
-
SlippageAnalysis— returned byCalculateSlippage- Fields: see source at
defipy.utils.data.SlippageAnalysis
- Fields: see source at
-
MEVDetectionResult— returned byDetectMEV- Fields: see source at
defipy.utils.data.MEVDetectionResult
- Fields: see source at
Portfolio
-
PortfolioAnalysis— returned byAggregatePortfolio- Fields:
numeraire,total_value,total_hold_value,total_net_pnl,total_fees,pnl_ranking,shared_exposure_warnings,positions
- Fields:
-
PortfolioPosition— input dataclass forAggregatePortfolio- Fields:
lp,lp_init_amt,entry_x_amt,entry_y_amt,entry_amounts,holding_period_days,name
- Fields:
-
PositionSummary— per-position entry insidePortfolioAnalysis.positions- Fields:
name,protocol,net_pnl,il_percentage,fee_income,tokens,analysis
- Fields:
Break-Even
-
BreakEvenAlphas— returned byFindBreakEvenPrice- Fields: see source at
defipy.utils.data.BreakEvenAlphas
- Fields: see source at
-
BreakEvenTime— returned byFindBreakEvenTime- Fields: see source at
defipy.utils.data.BreakEvenTime
- Fields: see source at
For the primitive that returns each dataclass, see Agentic Primitives.