Models
Every object the Syncrone API returns.
Amounts in wei are decimal strings. USD amounts and rates are numbers. Timestamps are ISO-8601. Nested objects link to their own section. Endpoint pages are under the API overview.
Portfolio objects#
The rows returned by assets, holdings, and positions. An asset is a token inside a position. A holding is a wallet balance. A position is the protocol exposure those assets belong to.
Asset
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique identifier for the asset |
| chain_idrequired | integer | Blockchain network ID |
| chainrequired | string | Blockchain network name |
| block_numberrequired | string | Block number at snapshot time |
| block_timestamprequired | date-time | Block timestamp (ISO 8601) |
| asset_addressrequired | string | Token contract address |
| wallet_addressrequired | string | Owner wallet address |
| via_proxyrequired | string | Proxy contract address (0x00 if none) |
| typerequired | string | Asset type (e.g., collateral, debt) |
| protocol_namenullable | string | DeFi protocol name |
| protocol_versionnullable | string | Protocol version |
| asset_namerequired | string | Token name |
| asset_symbolrequired | string | Token symbol |
| asset_decimalsrequired | integer | Token decimals |
| asset_balance_weirequired | string | Balance in smallest unit (wei) |
| asset_value_usdrequired | number | USD value of balance |
| receipt_token_addressnullable | string | Receipt token address (e.g., aTokens) |
| receipt_token_namenullable | string | Receipt token name |
| receipt_token_symbolnullable | string | Receipt token symbol |
| receipt_token_decimalsnullable | integer | Receipt token decimals |
| receipt_token_balance_weinullable | string | Receipt token balance |
| receipt_token_value_usdnullable | number | USD value of receipt tokens |
| pool_addressrequired | string | Pool contract address |
| market_addressrequired | string | Market contract address |
| price_usdrequired | number | Token price in USD |
| oracle_price_usdnullable | number | Oracle-based price in USD |
| snapshot_moderequired | stringinteraction | daily | hourly | harmonized | How the snapshot was captured |
| interaction_typenullable | string | Type of interaction if snapshot_mode is 'interaction' |
| interaction_tx_hashnullable | string | Transaction hash if snapshot_mode is 'interaction' |
| interaction_delta_asset_balance_weinullable | string | Balance change from interaction |
| interaction_delta_asset_value_usdnullable | number | USD value change from interaction |
| value_roi_pctnullable | number | Return on investment (percentage) |
| value_apr_pctnullable | number | Annual percentage rate |
| balance_roi_pctnullable | number | Balance-based ROI (percentage) |
| balance_apr_pctnullable | number | Balance-based APR |
| capital_basis_usdnullable | number | Initial capital invested (USD) |
| capital_basis_weinullable | string | Initial capital invested (wei) |
| realized_pnl_weinullable | string | Realized profit/loss in wei |
| realized_pnl_usdnullable | number | Realized profit/loss in USD |
| unrealized_pnl_weinullable | string | Unrealized profit/loss in wei |
| unrealized_pnl_usdnullable | number | Unrealized profit/loss in USD |
| realized_balance_pnl_usd | number | Realized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect) |
| unrealized_balance_pnl_usd | number | Unrealized PnL from balance changes valued at last price of the query period (pure quantity effect, excludes price effect) |
| price_effect_pnl_usd | number | PnL from price changes (total PnL minus balance PnL valued at period-end price) |
| cumulative_capital_added_usdnullable | number | Total capital added over time (USD) |
| cumulative_capital_removed_usdnullable | number | Total capital removed over time (USD) |
| cumulative_capital_added_weinullable | string | Total capital added over time (wei) |
| cumulative_capital_removed_weinullable | string | Total capital removed over time (wei) |
| asset_unwrappingnullable | AssetUnwrapping[] | Recursive unwrapping of wrapped assets to their underlying tokens |
AssetUnwrapping
| Field | Type | Description |
|---|---|---|
| asset_namerequired | string | Name of the underlying/wrapped asset |
| asset_symbolrequired | string | Symbol of the underlying/wrapped asset |
| asset_addressrequired | string | Contract address of the underlying/wrapped asset |
| asset_decimalsrequired | integer | Decimals of the underlying/wrapped asset |
| exchange_raterequired | string | Exchange rate between the asset and its underlying (in wei) |
| is_wrappedrequired | boolean | Whether this asset is itself a wrapped token |
| asset_unwrappingnullable | AssetUnwrapping[] | Further unwrapping if this asset is also wrapped (recursive) |
Holding
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique identifier for the holding |
| chain_idrequired | integer | Blockchain network ID |
| chainrequired | string | Blockchain network name |
| block_numberrequired | string | Block number at snapshot time |
| block_timestamprequired | date-time | Block timestamp (ISO 8601) |
| asset_addressrequired | string | Token contract address |
| wallet_addressrequired | string | Owner wallet address |
| via_proxyrequired | string | Proxy contract address (0x00 if none) |
| asset_decimalsnullable | integer | Token decimals |
| asset_symbolnullable | string | Token symbol |
| asset_namenullable | string | Token name |
| asset_balance_weinullable | string | Balance in smallest unit |
| asset_value_usdnullable | number | USD value of balance |
| price_usdnullable | number | Token price in USD |
| oracle_price_usdnullable | number | Oracle-based price in USD |
| snapshot_moderequired | stringinteraction | daily | hourly | harmonized | How the snapshot was captured |
| interaction_typenullable | string | Type of interaction if snapshot_mode is 'interaction' |
| interaction_tx_hashnullable | string | Transaction hash if snapshot_mode is 'interaction' |
| interaction_delta_asset_balance_weinullable | string | Balance change from interaction |
| interaction_delta_asset_value_usdnullable | number | USD value change from interaction |
| value_roi_pctnullable | number | Return on investment (percentage) |
| value_apr_pctnullable | number | Annual percentage rate |
| balance_roi_pctnullable | number | Balance-based ROI (percentage) |
| balance_apr_pctnullable | number | Balance-based APR |
| capital_basis_usdnullable | number | Initial capital invested (USD) |
| capital_basis_weinullable | string | Initial capital invested (wei) |
| realized_pnl_weinullable | string | Realized profit/loss |
| realized_pnl_usdnullable | number | Realized profit/loss in USD |
| unrealized_pnl_weinullable | string | Unrealized profit/loss |
| unrealized_pnl_usdnullable | number | Unrealized profit/loss in USD |
| cumulative_capital_added_usdnullable | number | Total capital added over time (USD) |
| cumulative_capital_removed_usdnullable | number | Total capital removed over time (USD) |
| cumulative_capital_added_weinullable | string | Total capital added over time |
| cumulative_capital_removed_weinullable | string | Total capital removed over time |
Position
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique identifier for the position |
| chain_idrequired | integer | Blockchain network ID |
| chainrequired | string | Blockchain network name |
| block_numberrequired | string | Block number at snapshot time |
| block_timestamprequired | date-time | Block timestamp (ISO 8601) |
| market_addressrequired | string | Protocol market/pool address |
| wallet_addressrequired | string | Owner wallet address |
| via_proxyrequired | string | Proxy contract address (0x00 if none) |
| protocol_namenullable | string | DeFi protocol name |
| protocol_versionnullable | string | Protocol version |
| start_timestamprequired | date-time | Position opening timestamp |
| end_timestampnullable | date-time | Position closing timestamp (null if still open) |
| value_net_usdrequired | number | Net position value (collateral - debt) in USD |
| value_collateral_usdrequired | number | Total collateral value in USD |
| value_debt_usdrequired | number | Total debt value in USD |
| health_factorrequired | number | Position health factor (higher is safer) |
| snapshot_moderequired | stringinteraction | daily | hourly | harmonized | How the snapshot was captured |
| interaction_typesnullable | string[] | Types of interactions (for interaction snapshots) |
| interaction_tx_hashsnullable | string[] | Transaction hashes (for interaction snapshots) |
| value_roi_pctnullable | number | Return on investment (percentage) |
| value_apr_pctnullable | number | Annual percentage rate |
| capital_basis_usdnullable | number | Initial capital invested (USD) |
| realized_pnl_usdnullable | number | Realized profit/loss in USD |
| unrealized_pnl_usdnullable | number | Unrealized profit/loss in USD |
| realized_balance_pnl_usd | number | 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 | number | 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 | number | 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_usdnullable | number | Total capital added over time (USD) |
| cumulative_capital_removed_usdnullable | number | Total capital removed over time (USD) |
| cumulative_inflow_usdnullable | number | Total inflow over position lifetime (USD) |
| cumulative_outflow_usdnullable | number | Total outflow over position lifetime (USD) |
| dtd_realized_pnl_usdnullable | number | Day-to-date realized profit/loss in USD |
| dtd_unrealized_pnl_usdnullable | number | Day-to-date unrealized profit/loss in USD |
| dtd_inflow_usdnullable | number | Day-to-date capital inflow in USD |
| dtd_outflow_usdnullable | number | Day-to-date capital outflow in USD |
| mtd_realized_pnl_usdnullable | number | Month-to-date realized profit/loss in USD |
| mtd_unrealized_pnl_usdnullable | number | Month-to-date unrealized profit/loss in USD |
| mtd_inflow_usdnullable | number | Month-to-date capital inflow in USD |
| mtd_outflow_usdnullable | number | Month-to-date capital outflow in USD |
| ytd_realized_pnl_usdnullable | number | Year-to-date realized profit/loss in USD |
| ytd_unrealized_pnl_usdnullable | number | Year-to-date unrealized profit/loss in USD |
| ytd_inflow_usdnullable | number | Year-to-date capital inflow in USD |
| ytd_outflow_usdnullable | number | Year-to-date capital outflow in USD |
| assets | Asset[] | Individual assets within this position (optional) |
PageInfo
| Field | Type | Description |
|---|---|---|
| has_morerequired | boolean | Whether more results are available |
| next_cursornullable | string | Cursor for fetching next page (ISO 8601 timestamp) |
Token
| Field | Type | Description |
|---|---|---|
| addressrequired | string | Token contract address |
| symbolrequired | string | Token symbol |
| decimalsrequired | integer | Token decimals |
TokenValues
| Field | Type | Description |
|---|---|---|
| balancerequired | number | Token balance in token units |
| price_usdrequired | number | Token price in USD |
| balance_usdrequired | number | Balance value in USD |
TokenFlows
| Field | Type | Description |
|---|---|---|
| inrequired | object | — |
| outrequired | object | — |
Response envelopes#
List endpoints wrap rows in an array plus page_info. Performance wraps an organization tree. Errors share one object.
AssetsResponse
HoldingsResponse
PositionsResponse
| Field | Type | Description |
|---|---|---|
| positionsrequired | Position[] | — |
| page_inforequired | PageInfo | — |
PerformanceResponse
| Field | Type | Description |
|---|---|---|
| start_daterequired | date-time | Start date for the performance calculation period |
| end_daterequired | date-time | End date for the performance calculation period |
| organizationsrequired | Organization[] | List of organizations with their wallets and performance metrics |
Error
| Field | Type | Description |
|---|---|---|
| errorrequired | string | Error type |
| messagerequired | string | Human-readable error message |
| statusCode | integer | HTTP status code |
Performance rollups#
Window metrics shared by every rollup. Wallet, position, asset, and protocol objects add their own identity fields on top of PerformanceMetrics.
PerformanceMetrics
| Field | Type | Description |
|---|---|---|
| total_realized_pnl_usdrequired | number | Realized PnL during the period |
| total_unrealized_pnl_usdrequired | number | Change in unrealized PnL during the period |
| total_pnl_usdrequired | number | Total PnL (realized + unrealized change) |
| total_realized_balance_pnl_usdrequired | number | Realized PnL from balance changes valued at last price (pure quantity effect) |
| total_unrealized_balance_pnl_usdrequired | number | Unrealized PnL from balance changes valued at last price (pure quantity effect) |
| total_balance_pnl_usd | number | Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only |
| total_price_effect_pnl_usdrequired | number | PnL from price changes (total PnL minus balance PnL) |
| total_inflow_usdrequired | number | Capital inflows during the period |
| total_outflow_usdrequired | number | Capital outflows during the period |
| total_net_flow_usdrequired | number | Net flow (inflows - outflows) |
| start_value_usdrequired | number | Portfolio value at start date |
| end_value_usdrequired | number | Portfolio value at end date |
| total_value_change_usdrequired | number | Change in value (end - start) |
| roi_pctnullable | number | Return on Investment percentage |
| time_weighted_return_pctnullable | number | Time-weighted return percentage |
| apr_pctnullable | number | Annual Percentage Rate (simple interest annualization) |
| apy_pctnullable | number | Annual Percentage Yield (compound interest annualization) |
PerformanceBreakdown
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique identifier for the entity |
| namerequired | string | Display name for the entity |
| realized_pnl_usdrequired | number | Realized PnL |
| unrealized_pnl_usdrequired | number | Unrealized PnL change |
| total_pnl_usdrequired | number | Total PnL |
| realized_balance_pnl_usdrequired | number | Realized PnL from balance changes valued at last price (pure quantity effect) |
| unrealized_balance_pnl_usdrequired | number | Unrealized PnL from balance changes valued at last price (pure quantity effect) |
| total_balance_pnl_usdrequired | number | Total balance PnL (realized_balance + unrealized_balance) - represents PnL from quantity changes only |
| price_effect_pnl_usdrequired | number | PnL from price changes (total PnL minus balance PnL) |
| inflow_usdrequired | number | Capital inflows |
| outflow_usdrequired | number | Capital outflows |
| net_flow_usdrequired | number | Net flow |
| start_value_usdrequired | number | Start value |
| end_value_usdrequired | number | End value |
| value_change_usdrequired | number | Value change |
WalletPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| wallet_addressrequired | string | Wallet address |
| wallet_namerequired | string | Wallet name |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
| by_protocolrequired | PerformanceBreakdown[] | Breakdown by protocol |
| by_assetrequired | PerformanceBreakdown[] | Breakdown by asset |
| by_positionrequired | PerformanceBreakdown[] | Breakdown by position |
| by_holdingrequired | PerformanceBreakdown[] | Breakdown by holding |
PositionPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| position_idrequired | string | Position ID |
| wallet_addressrequired | string | Wallet address |
| protocol_namerequired | string | Protocol name |
| market_addressrequired | string | Market address |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
| by_assetrequired | PerformanceBreakdown[] | Breakdown by asset |
AssetPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| asset_idrequired | string | Asset ID |
| position_idrequired | string | Position ID |
| wallet_addressrequired | string | Wallet address |
| asset_addressrequired | string | Asset address |
| asset_symbolrequired | string | Asset symbol |
| asset_namerequired | string | Asset name |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
HoldingPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| holding_idrequired | string | Holding ID |
| wallet_addressrequired | string | Wallet address |
| asset_addressrequired | string | Asset address |
| asset_symbolnullable | string | Asset symbol |
| asset_namenullable | string | Asset name |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
ProtocolPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| protocol_namerequired | string | Protocol name |
| wallet_addressrequired | string | Wallet address |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
| by_positionrequired | PerformanceBreakdown[] | Breakdown by position within this protocol |
| by_assetrequired | PerformanceBreakdown[] | Breakdown by asset within this protocol |
AssetAddressPerformance
Includes every field from PerformanceMetrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| asset_addressrequired | string | Asset address |
| asset_symbolnullable | string | Asset symbol |
| asset_namenullable | string | Asset name |
| wallet_addressrequired | string | Wallet address |
| start_daterequired | date-time | Start date |
| end_daterequired | date-time | End date |
| by_assetrequired | PerformanceBreakdown[] | Breakdown by asset instances in positions |
| by_holdingrequired | PerformanceBreakdown[] | Breakdown by holdings at wallet level |
Performance tree#
GET /performance returns organizations, then wallets, protocols, positions, and assets or holdings. Metrics is the numeric block repeated at each level.
Organization
| Field | Type | Description |
|---|---|---|
| org_namerequired | string | Organization name |
| org_idrequired | string | Organization ID |
| number_of_walletsrequired | integer | Number of wallets in the organization |
| metricsrequired | Metrics | — |
| walletsrequired | PerformanceWallet[] | — |
PerformanceWallet
| Field | Type | Description |
|---|---|---|
| wallet_addressrequired | string | Wallet address |
| wallet_namenullable | string | Wallet name |
| metricsrequired | Metrics | — |
| protocolsrequired | PerformanceProtocol[] | List of protocols with positions |
| holdingsrequired | PerformanceHolding[] | List of holdings (non-DeFi token balances) |
PerformanceProtocol
| Field | Type | Description |
|---|---|---|
| protocol_namerequired | string | Protocol name (e.g., "Aave", "Compound", "Merkl") |
| metricsrequired | Metrics | — |
| positionsrequired | PerformancePosition[] | List of positions within this protocol |
PerformancePosition
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique position identifier |
| position_typerequired | string | Position type (e.g., "defi") |
| position_namenullable | string | Position name (e.g., protocol names for Merkl rewards) |
| chain_idrequired | integer | Blockchain network ID |
| start_timestamprequired | date-time | Position opening timestamp |
| end_timestampnullable | date-time | Position closing timestamp (null if still open) |
| metricsrequired | Metrics | — |
| assetsrequired | PerformanceAsset[] | List of assets within this position |
PerformanceAsset
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique asset identifier |
| namenullable | string | Asset name |
| tokenrequired | Token | — |
| metricsrequired | AssetMetrics | — |
| initialrequired | TokenValues | — |
| finalrequired | TokenValues | — |
| flowsrequired | TokenFlows | — |
| childrenrequirednullable | PerformanceAsset[] | Recursive children assets (for unwrapped assets) |
PerformanceHolding
| Field | Type | Description |
|---|---|---|
| idrequired | string | Unique holding identifier |
| chain_idrequired | integer | Blockchain network ID |
| namenullable | string | Holding name |
| tokenrequired | Token | — |
| initialrequired | TokenValues | — |
| finalrequired | TokenValues | — |
| flowsrequired | TokenFlows | — |
| metricsrequired | Metrics | — |
Metrics
| Field | Type | Description |
|---|---|---|
| realized_pnl_usdrequired | number | Realized PnL during the period |
| unrealized_pnl_usdrequired | number | Change in unrealized PnL during the period |
| strategy_pnlrequired | number | Strategy PnL (balance change × price) |
| market_pnlrequired | number | Market PnL (total PnL - strategy PnL) |
| inflow_usdrequired | number | Capital inflows during the period |
| outflow_usdrequired | number | Capital outflows during the period |
| net_flow_usdrequired | number | Net flow (inflows - outflows) |
| initial_value_usdrequired | number | Portfolio value at start date |
| final_value_usdrequired | number | Portfolio value at end date |
| value_change_usdrequired | number | Change in value (end - start) |
| roi_pctrequired | number | Return on Investment percentage |
| time_weighted_return_pctrequired | number | Time-weighted return percentage |
| apr_pctrequired | number | Annual Percentage Rate (simple interest annualization) |
| apy_pctrequired | number | Annual Percentage Yield (compound interest annualization) |
AssetMetrics
Includes every field from Metrics, plus the fields below.
| Field | Type | Description |
|---|---|---|
| unrealized_balance_pnlrequired | number | Unrealized balance PnL (quantity effect) |
| realized_balance_pnlrequired | number | Realized balance PnL (quantity effect) |