> For the complete documentation index, see [llms.txt](https://docs.syncrone.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.syncrone.fi/api-reference/syncrone-api/models.md).

# Models

## The Asset object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Asset":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","type","asset_name","asset_symbol","asset_decimals","asset_balance_wei","asset_value_usd","pool_address","market_address","price_usd","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"type":{"type":"string","description":"Asset type (e.g., collateral, debt)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"asset_name":{"type":"string","description":"Token name"},"asset_symbol":{"type":"string","description":"Token symbol"},"asset_decimals":{"type":"integer","description":"Token decimals"},"asset_balance_wei":{"type":"string","description":"Balance in smallest unit (wei)"},"asset_value_usd":{"type":"number","format":"double","description":"USD value of balance"},"receipt_token_address":{"type":"string","nullable":true,"description":"Receipt token address (e.g., aTokens)"},"receipt_token_name":{"type":"string","nullable":true,"description":"Receipt token name"},"receipt_token_symbol":{"type":"string","nullable":true,"description":"Receipt token symbol"},"receipt_token_decimals":{"type":"integer","nullable":true,"description":"Receipt token decimals"},"receipt_token_balance_wei":{"type":"string","nullable":true,"description":"Receipt token balance"},"receipt_token_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of receipt tokens"},"pool_address":{"type":"string","description":"Pool contract address"},"market_address":{"type":"string","description":"Market contract address"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss in wei"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss in wei"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL valued at period-end price)"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time (wei)"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time (wei)"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Recursive unwrapping of wrapped assets to their underlying tokens","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"AssetUnwrapping":{"type":"object","required":["asset_name","asset_symbol","asset_address","asset_decimals","exchange_rate","is_wrapped"],"properties":{"asset_name":{"type":"string","description":"Name of the underlying/wrapped asset"},"asset_symbol":{"type":"string","description":"Symbol of the underlying/wrapped asset"},"asset_address":{"type":"string","description":"Contract address of the underlying/wrapped asset"},"asset_decimals":{"type":"integer","description":"Decimals of the underlying/wrapped asset"},"exchange_rate":{"type":"string","description":"Exchange rate between the asset and its underlying (in wei)"},"is_wrapped":{"type":"boolean","description":"Whether this asset is itself a wrapped token"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Further unwrapping if this asset is also wrapped (recursive)","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}}}}}
```

## The AssetUnwrapping object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"AssetUnwrapping":{"type":"object","required":["asset_name","asset_symbol","asset_address","asset_decimals","exchange_rate","is_wrapped"],"properties":{"asset_name":{"type":"string","description":"Name of the underlying/wrapped asset"},"asset_symbol":{"type":"string","description":"Symbol of the underlying/wrapped asset"},"asset_address":{"type":"string","description":"Contract address of the underlying/wrapped asset"},"asset_decimals":{"type":"integer","description":"Decimals of the underlying/wrapped asset"},"exchange_rate":{"type":"string","description":"Exchange rate between the asset and its underlying (in wei)"},"is_wrapped":{"type":"boolean","description":"Whether this asset is itself a wrapped token"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Further unwrapping if this asset is also wrapped (recursive)","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}}}}}
```

## The Holding object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Holding":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the holding"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"asset_decimals":{"type":"integer","nullable":true,"description":"Token decimals"},"asset_symbol":{"type":"string","nullable":true,"description":"Token symbol"},"asset_name":{"type":"string","nullable":true,"description":"Token name"},"asset_balance_wei":{"type":"string","nullable":true,"description":"Balance in smallest unit"},"asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of balance"},"price_usd":{"type":"number","format":"double","nullable":true,"description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time"}}}}}}
```

## The Position object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Position":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","market_address","wallet_address","via_proxy","start_timestamp","value_net_usd","value_collateral_usd","value_debt_usd","health_factor","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the position"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"market_address":{"type":"string","description":"Protocol market/pool address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"value_net_usd":{"type":"number","format":"double","description":"Net position value (collateral - debt) in USD"},"value_collateral_usd":{"type":"number","format":"double","description":"Total collateral value in USD"},"value_debt_usd":{"type":"number","format":"double","description":"Total debt value in USD"},"health_factor":{"type":"number","format":"double","description":"Position health factor (higher is safer)"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_types":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Types of interactions (for interaction snapshots)"},"interaction_tx_hashs":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Transaction hashes (for interaction snapshots)"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period across all assets (pure quantity effect, excludes price effect). Always calculated even when include_assets=false."},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period across all assets (pure quantity effect, excludes price effect). Always calculated even when include_assets=false."},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes across all assets (total PnL minus balance PnL valued at period-end price). Always calculated even when include_assets=false."},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Total inflow over position lifetime (USD)"},"cumulative_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Total outflow over position lifetime (USD)"},"dtd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date realized profit/loss in USD"},"dtd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date unrealized profit/loss in USD"},"dtd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date capital inflow in USD"},"dtd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date capital outflow in USD"},"mtd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date realized profit/loss in USD"},"mtd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date unrealized profit/loss in USD"},"mtd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date capital inflow in USD"},"mtd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date capital outflow in USD"},"ytd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date realized profit/loss in USD"},"ytd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date unrealized profit/loss in USD"},"ytd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date capital inflow in USD"},"ytd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date capital outflow in USD"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/Asset"},"description":"Individual assets within this position (optional)"}}},"Asset":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","type","asset_name","asset_symbol","asset_decimals","asset_balance_wei","asset_value_usd","pool_address","market_address","price_usd","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"type":{"type":"string","description":"Asset type (e.g., collateral, debt)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"asset_name":{"type":"string","description":"Token name"},"asset_symbol":{"type":"string","description":"Token symbol"},"asset_decimals":{"type":"integer","description":"Token decimals"},"asset_balance_wei":{"type":"string","description":"Balance in smallest unit (wei)"},"asset_value_usd":{"type":"number","format":"double","description":"USD value of balance"},"receipt_token_address":{"type":"string","nullable":true,"description":"Receipt token address (e.g., aTokens)"},"receipt_token_name":{"type":"string","nullable":true,"description":"Receipt token name"},"receipt_token_symbol":{"type":"string","nullable":true,"description":"Receipt token symbol"},"receipt_token_decimals":{"type":"integer","nullable":true,"description":"Receipt token decimals"},"receipt_token_balance_wei":{"type":"string","nullable":true,"description":"Receipt token balance"},"receipt_token_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of receipt tokens"},"pool_address":{"type":"string","description":"Pool contract address"},"market_address":{"type":"string","description":"Market contract address"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss in wei"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss in wei"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL valued at period-end price)"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time (wei)"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time (wei)"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Recursive unwrapping of wrapped assets to their underlying tokens","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"AssetUnwrapping":{"type":"object","required":["asset_name","asset_symbol","asset_address","asset_decimals","exchange_rate","is_wrapped"],"properties":{"asset_name":{"type":"string","description":"Name of the underlying/wrapped asset"},"asset_symbol":{"type":"string","description":"Symbol of the underlying/wrapped asset"},"asset_address":{"type":"string","description":"Contract address of the underlying/wrapped asset"},"asset_decimals":{"type":"integer","description":"Decimals of the underlying/wrapped asset"},"exchange_rate":{"type":"string","description":"Exchange rate between the asset and its underlying (in wei)"},"is_wrapped":{"type":"boolean","description":"Whether this asset is itself a wrapped token"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Further unwrapping if this asset is also wrapped (recursive)","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}}}}}
```

## The PageInfo object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PageInfo":{"type":"object","required":["has_more"],"properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":"string","nullable":true,"description":"Cursor for fetching next page (ISO 8601 timestamp)"}}}}}}
```

## The AssetsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"AssetsResponse":{"type":"object","required":["assets","page_info"],"properties":{"assets":{"type":"array","items":{"$ref":"#/components/schemas/Asset"}},"page_info":{"$ref":"#/components/schemas/PageInfo"}}},"Asset":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","type","asset_name","asset_symbol","asset_decimals","asset_balance_wei","asset_value_usd","pool_address","market_address","price_usd","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"type":{"type":"string","description":"Asset type (e.g., collateral, debt)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"asset_name":{"type":"string","description":"Token name"},"asset_symbol":{"type":"string","description":"Token symbol"},"asset_decimals":{"type":"integer","description":"Token decimals"},"asset_balance_wei":{"type":"string","description":"Balance in smallest unit (wei)"},"asset_value_usd":{"type":"number","format":"double","description":"USD value of balance"},"receipt_token_address":{"type":"string","nullable":true,"description":"Receipt token address (e.g., aTokens)"},"receipt_token_name":{"type":"string","nullable":true,"description":"Receipt token name"},"receipt_token_symbol":{"type":"string","nullable":true,"description":"Receipt token symbol"},"receipt_token_decimals":{"type":"integer","nullable":true,"description":"Receipt token decimals"},"receipt_token_balance_wei":{"type":"string","nullable":true,"description":"Receipt token balance"},"receipt_token_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of receipt tokens"},"pool_address":{"type":"string","description":"Pool contract address"},"market_address":{"type":"string","description":"Market contract address"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss in wei"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss in wei"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL valued at period-end price)"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time (wei)"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time (wei)"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Recursive unwrapping of wrapped assets to their underlying tokens","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"AssetUnwrapping":{"type":"object","required":["asset_name","asset_symbol","asset_address","asset_decimals","exchange_rate","is_wrapped"],"properties":{"asset_name":{"type":"string","description":"Name of the underlying/wrapped asset"},"asset_symbol":{"type":"string","description":"Symbol of the underlying/wrapped asset"},"asset_address":{"type":"string","description":"Contract address of the underlying/wrapped asset"},"asset_decimals":{"type":"integer","description":"Decimals of the underlying/wrapped asset"},"exchange_rate":{"type":"string","description":"Exchange rate between the asset and its underlying (in wei)"},"is_wrapped":{"type":"boolean","description":"Whether this asset is itself a wrapped token"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Further unwrapping if this asset is also wrapped (recursive)","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"PageInfo":{"type":"object","required":["has_more"],"properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":"string","nullable":true,"description":"Cursor for fetching next page (ISO 8601 timestamp)"}}}}}}
```

## The HoldingsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"HoldingsResponse":{"type":"object","required":["holdings","page_info"],"properties":{"holdings":{"type":"array","items":{"$ref":"#/components/schemas/Holding"}},"page_info":{"$ref":"#/components/schemas/PageInfo"}}},"Holding":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the holding"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"asset_decimals":{"type":"integer","nullable":true,"description":"Token decimals"},"asset_symbol":{"type":"string","nullable":true,"description":"Token symbol"},"asset_name":{"type":"string","nullable":true,"description":"Token name"},"asset_balance_wei":{"type":"string","nullable":true,"description":"Balance in smallest unit"},"asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of balance"},"price_usd":{"type":"number","format":"double","nullable":true,"description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time"}}},"PageInfo":{"type":"object","required":["has_more"],"properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":"string","nullable":true,"description":"Cursor for fetching next page (ISO 8601 timestamp)"}}}}}}
```

## The PositionsResponse object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PositionsResponse":{"type":"object","required":["positions","page_info"],"properties":{"positions":{"type":"array","items":{"$ref":"#/components/schemas/Position"}},"page_info":{"$ref":"#/components/schemas/PageInfo"}}},"Position":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","market_address","wallet_address","via_proxy","start_timestamp","value_net_usd","value_collateral_usd","value_debt_usd","health_factor","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the position"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"market_address":{"type":"string","description":"Protocol market/pool address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"value_net_usd":{"type":"number","format":"double","description":"Net position value (collateral - debt) in USD"},"value_collateral_usd":{"type":"number","format":"double","description":"Total collateral value in USD"},"value_debt_usd":{"type":"number","format":"double","description":"Total debt value in USD"},"health_factor":{"type":"number","format":"double","description":"Position health factor (higher is safer)"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_types":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Types of interactions (for interaction snapshots)"},"interaction_tx_hashs":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Transaction hashes (for interaction snapshots)"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period across all assets (pure quantity effect, excludes price effect). Always calculated even when include_assets=false."},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period across all assets (pure quantity effect, excludes price effect). Always calculated even when include_assets=false."},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes across all assets (total PnL minus balance PnL valued at period-end price). Always calculated even when include_assets=false."},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Total inflow over position lifetime (USD)"},"cumulative_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Total outflow over position lifetime (USD)"},"dtd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date realized profit/loss in USD"},"dtd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date unrealized profit/loss in USD"},"dtd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date capital inflow in USD"},"dtd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Day-to-date capital outflow in USD"},"mtd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date realized profit/loss in USD"},"mtd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date unrealized profit/loss in USD"},"mtd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date capital inflow in USD"},"mtd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Month-to-date capital outflow in USD"},"ytd_realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date realized profit/loss in USD"},"ytd_unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date unrealized profit/loss in USD"},"ytd_inflow_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date capital inflow in USD"},"ytd_outflow_usd":{"type":"number","format":"double","nullable":true,"description":"Year-to-date capital outflow in USD"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/Asset"},"description":"Individual assets within this position (optional)"}}},"Asset":{"type":"object","required":["id","chain_id","chain","block_number","block_timestamp","asset_address","wallet_address","via_proxy","type","asset_name","asset_symbol","asset_decimals","asset_balance_wei","asset_value_usd","pool_address","market_address","price_usd","snapshot_mode"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"chain":{"type":"string","description":"Blockchain network name"},"block_number":{"type":"string","description":"Block number at snapshot time"},"block_timestamp":{"type":"string","format":"date-time","description":"Block timestamp (ISO 8601)"},"asset_address":{"type":"string","description":"Token contract address"},"wallet_address":{"type":"string","description":"Owner wallet address"},"via_proxy":{"type":"string","description":"Proxy contract address (0x00 if none)"},"type":{"type":"string","description":"Asset type (e.g., collateral, debt)"},"protocol_name":{"type":"string","nullable":true,"description":"DeFi protocol name"},"protocol_version":{"type":"string","nullable":true,"description":"Protocol version"},"asset_name":{"type":"string","description":"Token name"},"asset_symbol":{"type":"string","description":"Token symbol"},"asset_decimals":{"type":"integer","description":"Token decimals"},"asset_balance_wei":{"type":"string","description":"Balance in smallest unit (wei)"},"asset_value_usd":{"type":"number","format":"double","description":"USD value of balance"},"receipt_token_address":{"type":"string","nullable":true,"description":"Receipt token address (e.g., aTokens)"},"receipt_token_name":{"type":"string","nullable":true,"description":"Receipt token name"},"receipt_token_symbol":{"type":"string","nullable":true,"description":"Receipt token symbol"},"receipt_token_decimals":{"type":"integer","nullable":true,"description":"Receipt token decimals"},"receipt_token_balance_wei":{"type":"string","nullable":true,"description":"Receipt token balance"},"receipt_token_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value of receipt tokens"},"pool_address":{"type":"string","description":"Pool contract address"},"market_address":{"type":"string","description":"Market contract address"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"oracle_price_usd":{"type":"number","format":"double","nullable":true,"description":"Oracle-based price in USD"},"snapshot_mode":{"type":"string","enum":["interaction","daily","hourly","harmonized"],"description":"How the snapshot was captured"},"interaction_type":{"type":"string","nullable":true,"description":"Type of interaction if snapshot_mode is 'interaction'"},"interaction_tx_hash":{"type":"string","nullable":true,"description":"Transaction hash if snapshot_mode is 'interaction'"},"interaction_delta_asset_balance_wei":{"type":"string","nullable":true,"description":"Balance change from interaction"},"interaction_delta_asset_value_usd":{"type":"number","format":"double","nullable":true,"description":"USD value change from interaction"},"value_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on investment (percentage)"},"value_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual percentage rate"},"balance_roi_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based ROI (percentage)"},"balance_apr_pct":{"type":"number","format":"double","nullable":true,"description":"Balance-based APR"},"capital_basis_usd":{"type":"number","format":"double","nullable":true,"description":"Initial capital invested (USD)"},"capital_basis_wei":{"type":"string","nullable":true,"description":"Initial capital invested (wei)"},"realized_pnl_wei":{"type":"string","nullable":true,"description":"Realized profit/loss in wei"},"realized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Realized profit/loss in USD"},"unrealized_pnl_wei":{"type":"string","nullable":true,"description":"Unrealized profit/loss in wei"},"unrealized_pnl_usd":{"type":"number","format":"double","nullable":true,"description":"Unrealized profit/loss in USD"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect)"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL valued at period-end price)"},"cumulative_capital_added_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital added over time (USD)"},"cumulative_capital_removed_usd":{"type":"number","format":"double","nullable":true,"description":"Total capital removed over time (USD)"},"cumulative_capital_added_wei":{"type":"string","nullable":true,"description":"Total capital added over time (wei)"},"cumulative_capital_removed_wei":{"type":"string","nullable":true,"description":"Total capital removed over time (wei)"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Recursive unwrapping of wrapped assets to their underlying tokens","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"AssetUnwrapping":{"type":"object","required":["asset_name","asset_symbol","asset_address","asset_decimals","exchange_rate","is_wrapped"],"properties":{"asset_name":{"type":"string","description":"Name of the underlying/wrapped asset"},"asset_symbol":{"type":"string","description":"Symbol of the underlying/wrapped asset"},"asset_address":{"type":"string","description":"Contract address of the underlying/wrapped asset"},"asset_decimals":{"type":"integer","description":"Decimals of the underlying/wrapped asset"},"exchange_rate":{"type":"string","description":"Exchange rate between the asset and its underlying (in wei)"},"is_wrapped":{"type":"boolean","description":"Whether this asset is itself a wrapped token"},"asset_unwrapping":{"type":"array","nullable":true,"description":"Further unwrapping if this asset is also wrapped (recursive)","items":{"$ref":"#/components/schemas/AssetUnwrapping"}}}},"PageInfo":{"type":"object","required":["has_more"],"properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":"string","nullable":true,"description":"Cursor for fetching next page (ISO 8601 timestamp)"}}}}}}
```

## The PerformanceMetrics object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The PerformanceBreakdown object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceBreakdown":{"type":"object","required":["id","name","realized_pnl_usd","unrealized_pnl_usd","total_pnl_usd","realized_balance_pnl_usd","unrealized_balance_pnl_usd","total_balance_pnl_usd","price_effect_pnl_usd","inflow_usd","outflow_usd","net_flow_usd","start_value_usd","end_value_usd","value_change_usd"],"properties":{"id":{"type":"string","description":"Unique identifier for the entity"},"name":{"type":"string","description":"Display name for the entity"},"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL change"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow"},"start_value_usd":{"type":"number","format":"double","description":"Start value"},"end_value_usd":{"type":"number","format":"double","description":"End value"},"value_change_usd":{"type":"number","format":"double","description":"Value change"}}}}}}
```

## The WalletPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"WalletPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["wallet_address","wallet_name","start_date","end_date","by_protocol","by_asset","by_position","by_holding"],"properties":{"wallet_address":{"type":"string","description":"Wallet address"},"wallet_name":{"type":"string","description":"Wallet name"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"},"by_protocol":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by protocol"},"by_asset":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by asset"},"by_position":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by position"},"by_holding":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by holding"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceBreakdown":{"type":"object","required":["id","name","realized_pnl_usd","unrealized_pnl_usd","total_pnl_usd","realized_balance_pnl_usd","unrealized_balance_pnl_usd","total_balance_pnl_usd","price_effect_pnl_usd","inflow_usd","outflow_usd","net_flow_usd","start_value_usd","end_value_usd","value_change_usd"],"properties":{"id":{"type":"string","description":"Unique identifier for the entity"},"name":{"type":"string","description":"Display name for the entity"},"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL change"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow"},"start_value_usd":{"type":"number","format":"double","description":"Start value"},"end_value_usd":{"type":"number","format":"double","description":"End value"},"value_change_usd":{"type":"number","format":"double","description":"Value change"}}}}}}
```

## The PositionPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PositionPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["position_id","wallet_address","protocol_name","market_address","start_date","end_date","by_asset"],"properties":{"position_id":{"type":"string","description":"Position ID"},"wallet_address":{"type":"string","description":"Wallet address"},"protocol_name":{"type":"string","description":"Protocol name"},"market_address":{"type":"string","description":"Market address"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"},"by_asset":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by asset"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceBreakdown":{"type":"object","required":["id","name","realized_pnl_usd","unrealized_pnl_usd","total_pnl_usd","realized_balance_pnl_usd","unrealized_balance_pnl_usd","total_balance_pnl_usd","price_effect_pnl_usd","inflow_usd","outflow_usd","net_flow_usd","start_value_usd","end_value_usd","value_change_usd"],"properties":{"id":{"type":"string","description":"Unique identifier for the entity"},"name":{"type":"string","description":"Display name for the entity"},"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL change"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow"},"start_value_usd":{"type":"number","format":"double","description":"Start value"},"end_value_usd":{"type":"number","format":"double","description":"End value"},"value_change_usd":{"type":"number","format":"double","description":"Value change"}}}}}}
```

## The AssetPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"AssetPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["asset_id","position_id","wallet_address","asset_address","asset_symbol","asset_name","start_date","end_date"],"properties":{"asset_id":{"type":"string","description":"Asset ID"},"position_id":{"type":"string","description":"Position ID"},"wallet_address":{"type":"string","description":"Wallet address"},"asset_address":{"type":"string","description":"Asset address"},"asset_symbol":{"type":"string","description":"Asset symbol"},"asset_name":{"type":"string","description":"Asset name"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The HoldingPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"HoldingPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["holding_id","wallet_address","asset_address","start_date","end_date"],"properties":{"holding_id":{"type":"string","description":"Holding ID"},"wallet_address":{"type":"string","description":"Wallet address"},"asset_address":{"type":"string","description":"Asset address"},"asset_symbol":{"type":"string","nullable":true,"description":"Asset symbol"},"asset_name":{"type":"string","nullable":true,"description":"Asset name"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The ProtocolPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"ProtocolPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["protocol_name","wallet_address","start_date","end_date","by_position","by_asset"],"properties":{"protocol_name":{"type":"string","description":"Protocol name"},"wallet_address":{"type":"string","description":"Wallet address"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"},"by_position":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by position within this protocol"},"by_asset":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by asset within this protocol"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceBreakdown":{"type":"object","required":["id","name","realized_pnl_usd","unrealized_pnl_usd","total_pnl_usd","realized_balance_pnl_usd","unrealized_balance_pnl_usd","total_balance_pnl_usd","price_effect_pnl_usd","inflow_usd","outflow_usd","net_flow_usd","start_value_usd","end_value_usd","value_change_usd"],"properties":{"id":{"type":"string","description":"Unique identifier for the entity"},"name":{"type":"string","description":"Display name for the entity"},"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL change"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow"},"start_value_usd":{"type":"number","format":"double","description":"Start value"},"end_value_usd":{"type":"number","format":"double","description":"End value"},"value_change_usd":{"type":"number","format":"double","description":"Value change"}}}}}}
```

## The AssetAddressPerformance object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"AssetAddressPerformance":{"allOf":[{"$ref":"#/components/schemas/PerformanceMetrics"},{"type":"object","required":["asset_address","wallet_address","start_date","end_date","by_asset","by_holding"],"properties":{"asset_address":{"type":"string","description":"Asset address"},"asset_symbol":{"type":"string","nullable":true,"description":"Asset symbol"},"asset_name":{"type":"string","nullable":true,"description":"Asset name"},"wallet_address":{"type":"string","description":"Wallet address"},"start_date":{"type":"string","format":"date-time","description":"Start date"},"end_date":{"type":"string","format":"date-time","description":"End date"},"by_asset":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by asset instances in positions"},"by_holding":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceBreakdown"},"description":"Breakdown by holdings at wallet level"}}}]},"PerformanceMetrics":{"type":"object","required":["total_realized_pnl_usd","total_unrealized_pnl_usd","total_pnl_usd","total_realized_balance_pnl_usd","total_unrealized_balance_pnl_usd","total_price_effect_pnl_usd","total_inflow_usd","total_outflow_usd","total_net_flow_usd","start_value_usd","end_value_usd","total_value_change_usd"],"properties":{"total_realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"total_unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL (realized + unrealized change)"},"total_realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"total_unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"total_price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"total_inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"total_outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"total_net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"start_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"end_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"total_value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","nullable":true,"description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","nullable":true,"description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","nullable":true,"description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceBreakdown":{"type":"object","required":["id","name","realized_pnl_usd","unrealized_pnl_usd","total_pnl_usd","realized_balance_pnl_usd","unrealized_balance_pnl_usd","total_balance_pnl_usd","price_effect_pnl_usd","inflow_usd","outflow_usd","net_flow_usd","start_value_usd","end_value_usd","value_change_usd"],"properties":{"id":{"type":"string","description":"Unique identifier for the entity"},"name":{"type":"string","description":"Display name for the entity"},"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL change"},"total_pnl_usd":{"type":"number","format":"double","description":"Total PnL"},"realized_balance_pnl_usd":{"type":"number","format":"double","description":"Realized PnL from balance changes valued at last price (pure quantity effect)"},"unrealized_balance_pnl_usd":{"type":"number","format":"double","description":"Unrealized PnL from balance changes valued at last price (pure quantity effect)"},"total_balance_pnl_usd":{"type":"number","format":"double","description":"Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only"},"price_effect_pnl_usd":{"type":"number","format":"double","description":"PnL from price changes (total PnL minus balance PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow"},"start_value_usd":{"type":"number","format":"double","description":"Start value"},"end_value_usd":{"type":"number","format":"double","description":"End value"},"value_change_usd":{"type":"number","format":"double","description":"Value change"}}}}}}
```

## The PerformanceResponse object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceResponse":{"type":"object","required":["start_date","end_date","organizations"],"properties":{"start_date":{"type":"string","format":"date-time","description":"Start date for the performance calculation period"},"end_date":{"type":"string","format":"date-time","description":"End date for the performance calculation period"},"organizations":{"type":"array","items":{"$ref":"#/components/schemas/Organization"},"description":"List of organizations with their wallets and performance metrics"}}},"Organization":{"type":"object","required":["org_name","org_id","number_of_wallets","metrics","wallets"],"properties":{"org_name":{"type":"string","description":"Organization name"},"org_id":{"type":"string","description":"Organization ID"},"number_of_wallets":{"type":"integer","description":"Number of wallets in the organization"},"metrics":{"$ref":"#/components/schemas/Metrics"},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceWallet"}}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceWallet":{"type":"object","required":["wallet_address","metrics","protocols","holdings"],"properties":{"wallet_address":{"type":"string","description":"Wallet address"},"wallet_name":{"type":"string","nullable":true,"description":"Wallet name"},"metrics":{"$ref":"#/components/schemas/Metrics"},"protocols":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceProtocol"},"description":"List of protocols with positions"},"holdings":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceHolding"},"description":"List of holdings (non-DeFi token balances)"}}},"PerformanceProtocol":{"type":"object","required":["protocol_name","metrics","positions"],"properties":{"protocol_name":{"type":"string","description":"Protocol name (e.g., \"Aave\", \"Compound\", \"Merkl\")"},"metrics":{"$ref":"#/components/schemas/Metrics"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/PerformancePosition"},"description":"List of positions within this protocol"}}},"PerformancePosition":{"type":"object","required":["id","position_type","chain_id","start_timestamp","metrics","assets"],"properties":{"id":{"type":"string","description":"Unique position identifier"},"position_type":{"type":"string","description":"Position type (e.g., \"defi\")"},"position_name":{"type":"string","nullable":true,"description":"Position name (e.g., protocol names for Merkl rewards)"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"metrics":{"$ref":"#/components/schemas/Metrics"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"List of assets within this position"}}},"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}},"PerformanceHolding":{"type":"object","required":["id","chain_id","token","initial","final","flows","metrics"],"properties":{"id":{"type":"string","description":"Unique holding identifier"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"name":{"type":"string","nullable":true,"description":"Holding name"},"token":{"$ref":"#/components/schemas/Token"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"metrics":{"$ref":"#/components/schemas/Metrics"}}}}}}
```

## The Organization object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Organization":{"type":"object","required":["org_name","org_id","number_of_wallets","metrics","wallets"],"properties":{"org_name":{"type":"string","description":"Organization name"},"org_id":{"type":"string","description":"Organization ID"},"number_of_wallets":{"type":"integer","description":"Number of wallets in the organization"},"metrics":{"$ref":"#/components/schemas/Metrics"},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceWallet"}}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceWallet":{"type":"object","required":["wallet_address","metrics","protocols","holdings"],"properties":{"wallet_address":{"type":"string","description":"Wallet address"},"wallet_name":{"type":"string","nullable":true,"description":"Wallet name"},"metrics":{"$ref":"#/components/schemas/Metrics"},"protocols":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceProtocol"},"description":"List of protocols with positions"},"holdings":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceHolding"},"description":"List of holdings (non-DeFi token balances)"}}},"PerformanceProtocol":{"type":"object","required":["protocol_name","metrics","positions"],"properties":{"protocol_name":{"type":"string","description":"Protocol name (e.g., \"Aave\", \"Compound\", \"Merkl\")"},"metrics":{"$ref":"#/components/schemas/Metrics"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/PerformancePosition"},"description":"List of positions within this protocol"}}},"PerformancePosition":{"type":"object","required":["id","position_type","chain_id","start_timestamp","metrics","assets"],"properties":{"id":{"type":"string","description":"Unique position identifier"},"position_type":{"type":"string","description":"Position type (e.g., \"defi\")"},"position_name":{"type":"string","nullable":true,"description":"Position name (e.g., protocol names for Merkl rewards)"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"metrics":{"$ref":"#/components/schemas/Metrics"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"List of assets within this position"}}},"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}},"PerformanceHolding":{"type":"object","required":["id","chain_id","token","initial","final","flows","metrics"],"properties":{"id":{"type":"string","description":"Unique holding identifier"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"name":{"type":"string","nullable":true,"description":"Holding name"},"token":{"$ref":"#/components/schemas/Token"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"metrics":{"$ref":"#/components/schemas/Metrics"}}}}}}
```

## The PerformanceWallet object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceWallet":{"type":"object","required":["wallet_address","metrics","protocols","holdings"],"properties":{"wallet_address":{"type":"string","description":"Wallet address"},"wallet_name":{"type":"string","nullable":true,"description":"Wallet name"},"metrics":{"$ref":"#/components/schemas/Metrics"},"protocols":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceProtocol"},"description":"List of protocols with positions"},"holdings":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceHolding"},"description":"List of holdings (non-DeFi token balances)"}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceProtocol":{"type":"object","required":["protocol_name","metrics","positions"],"properties":{"protocol_name":{"type":"string","description":"Protocol name (e.g., \"Aave\", \"Compound\", \"Merkl\")"},"metrics":{"$ref":"#/components/schemas/Metrics"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/PerformancePosition"},"description":"List of positions within this protocol"}}},"PerformancePosition":{"type":"object","required":["id","position_type","chain_id","start_timestamp","metrics","assets"],"properties":{"id":{"type":"string","description":"Unique position identifier"},"position_type":{"type":"string","description":"Position type (e.g., \"defi\")"},"position_name":{"type":"string","nullable":true,"description":"Position name (e.g., protocol names for Merkl rewards)"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"metrics":{"$ref":"#/components/schemas/Metrics"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"List of assets within this position"}}},"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}},"PerformanceHolding":{"type":"object","required":["id","chain_id","token","initial","final","flows","metrics"],"properties":{"id":{"type":"string","description":"Unique holding identifier"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"name":{"type":"string","nullable":true,"description":"Holding name"},"token":{"$ref":"#/components/schemas/Token"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"metrics":{"$ref":"#/components/schemas/Metrics"}}}}}}
```

## The PerformanceProtocol object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceProtocol":{"type":"object","required":["protocol_name","metrics","positions"],"properties":{"protocol_name":{"type":"string","description":"Protocol name (e.g., \"Aave\", \"Compound\", \"Merkl\")"},"metrics":{"$ref":"#/components/schemas/Metrics"},"positions":{"type":"array","items":{"$ref":"#/components/schemas/PerformancePosition"},"description":"List of positions within this protocol"}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformancePosition":{"type":"object","required":["id","position_type","chain_id","start_timestamp","metrics","assets"],"properties":{"id":{"type":"string","description":"Unique position identifier"},"position_type":{"type":"string","description":"Position type (e.g., \"defi\")"},"position_name":{"type":"string","nullable":true,"description":"Position name (e.g., protocol names for Merkl rewards)"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"metrics":{"$ref":"#/components/schemas/Metrics"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"List of assets within this position"}}},"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}}}}}
```

## The PerformancePosition object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformancePosition":{"type":"object","required":["id","position_type","chain_id","start_timestamp","metrics","assets"],"properties":{"id":{"type":"string","description":"Unique position identifier"},"position_type":{"type":"string","description":"Position type (e.g., \"defi\")"},"position_name":{"type":"string","nullable":true,"description":"Position name (e.g., protocol names for Merkl rewards)"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"start_timestamp":{"type":"string","format":"date-time","description":"Position opening timestamp"},"end_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Position closing timestamp (null if still open)"},"metrics":{"$ref":"#/components/schemas/Metrics"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"List of assets within this position"}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}}}}}
```

## The PerformanceAsset object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceAsset":{"type":"object","required":["id","token","metrics","initial","final","flows","children"],"properties":{"id":{"type":"string","description":"Unique asset identifier"},"name":{"type":"string","nullable":true,"description":"Asset name"},"token":{"$ref":"#/components/schemas/Token"},"metrics":{"$ref":"#/components/schemas/AssetMetrics"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"children":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/PerformanceAsset"},"description":"Recursive children assets (for unwrapped assets)"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}}}}}
```

## The PerformanceHolding object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"PerformanceHolding":{"type":"object","required":["id","chain_id","token","initial","final","flows","metrics"],"properties":{"id":{"type":"string","description":"Unique holding identifier"},"chain_id":{"type":"integer","description":"Blockchain network ID"},"name":{"type":"string","nullable":true,"description":"Holding name"},"token":{"$ref":"#/components/schemas/Token"},"initial":{"$ref":"#/components/schemas/TokenValues"},"final":{"$ref":"#/components/schemas/TokenValues"},"flows":{"$ref":"#/components/schemas/TokenFlows"},"metrics":{"$ref":"#/components/schemas/Metrics"}}},"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}},"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}},"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The Metrics object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The AssetMetrics object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"AssetMetrics":{"allOf":[{"$ref":"#/components/schemas/Metrics"},{"type":"object","required":["unrealized_balance_pnl","realized_balance_pnl"],"properties":{"unrealized_balance_pnl":{"type":"number","format":"double","description":"Unrealized balance PnL (quantity effect)"},"realized_balance_pnl":{"type":"number","format":"double","description":"Realized balance PnL (quantity effect)"}}}]},"Metrics":{"type":"object","required":["realized_pnl_usd","unrealized_pnl_usd","strategy_pnl","market_pnl","inflow_usd","outflow_usd","net_flow_usd","initial_value_usd","final_value_usd","value_change_usd","roi_pct","time_weighted_return_pct","apr_pct","apy_pct"],"properties":{"realized_pnl_usd":{"type":"number","format":"double","description":"Realized PnL during the period"},"unrealized_pnl_usd":{"type":"number","format":"double","description":"Change in unrealized PnL during the period"},"strategy_pnl":{"type":"number","format":"double","description":"Strategy PnL (balance change × price)"},"market_pnl":{"type":"number","format":"double","description":"Market PnL (total PnL - strategy PnL)"},"inflow_usd":{"type":"number","format":"double","description":"Capital inflows during the period"},"outflow_usd":{"type":"number","format":"double","description":"Capital outflows during the period"},"net_flow_usd":{"type":"number","format":"double","description":"Net flow (inflows - outflows)"},"initial_value_usd":{"type":"number","format":"double","description":"Portfolio value at start date"},"final_value_usd":{"type":"number","format":"double","description":"Portfolio value at end date"},"value_change_usd":{"type":"number","format":"double","description":"Change in value (end - start)"},"roi_pct":{"type":"number","format":"double","description":"Return on Investment percentage"},"time_weighted_return_pct":{"type":"number","format":"double","description":"Time-weighted return percentage"},"apr_pct":{"type":"number","format":"double","description":"Annual Percentage Rate (simple interest annualization)"},"apy_pct":{"type":"number","format":"double","description":"Annual Percentage Yield (compound interest annualization)"}}}}}}
```

## The Token object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Token":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"}}}}}}
```

## The TokenValues object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"TokenValues":{"type":"object","required":["balance","price_usd","balance_usd"],"properties":{"balance":{"type":"number","format":"double","description":"Token balance in token units"},"price_usd":{"type":"number","format":"double","description":"Token price in USD"},"balance_usd":{"type":"number","format":"double","description":"Balance value in USD"}}}}}}
```

## The TokenFlows object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"TokenFlows":{"type":"object","required":["in","out"],"properties":{"in":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Inflow in token units"},"usd":{"type":"number","format":"double","description":"Inflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for inflows"}}},"out":{"type":"object","required":["token_units","usd","tx_hashes"],"properties":{"token_units":{"type":"number","format":"double","description":"Outflow in token units"},"usd":{"type":"number","format":"double","description":"Outflow in USD"},"tx_hashes":{"type":"array","items":{"type":"string"},"description":"Transaction hashes for outflows"}}}}}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Syncrone API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Error type"},"message":{"type":"string","description":"Human-readable error message"},"statusCode":{"type":"integer","description":"HTTP status code"}}}}}}
```
