{"schemes":["https"],"swagger":"2.0","info":{"description":"Public REST API for Flare and Songbird indexed data: entities, validators, reward epochs, FTSO providers, governance, FAssets, and FIRE revenue.\n\n## Rate limits\n| Limit | Value |\n| --- | --- |\n| Requests per minute | 250 per client IP |\n| CSV exports per minute | 8 per client IP |\n| Maximum `limit` query value | 10,000 |\n\nExceeding the published limit may return HTTP 429. GET responses may be cached for up to 3 minutes.\n\n## Terms of use\nUse of this API is subject to the [Flare Metrics Terms](https://flaremetrics.io/terms), including attribution when you republish data or ship a product that depends on it.","title":"Flare Metrics API","termsOfService":"https://flaremetrics.io/terms","contact":{"name":"Flare Metrics","url":"https://flaremetrics.io"},"license":{"name":"Free use with attribution","url":"https://flaremetrics.io/terms"},"version":"3.0"},"host":"api.flaremetrics.io","basePath":"/v3","paths":{"/distributions":{"get":{"description":"Returns paginated reward distributions filterable by rewardEpochId, entityId, and claimType","produces":["application/json"],"tags":["distributions"],"summary":"List reward distributions","parameters":[{"type":"integer","description":"Filter by reward epoch ID (defaults to latest)","name":"rewardEpochId","in":"query"},{"type":"string","description":"Filter by entity ID (via voter registration)","name":"entityId","in":"query"},{"type":"string","description":"Filter by claim type (DIRECT, FEE, WNAT, MIRROR)","name":"claimType","in":"query"},{"type":"string","default":"rewardEpochId","description":"Sort field (claimType, rewardEpochId)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities":{"get":{"description":"Returns a paginated list of entities","produces":["application/json"],"tags":["entities"],"summary":"List entities","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"createdAt","description":"Sort field (createdAt, address)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/search":{"get":{"description":"Finds an entity by searching across Entity.address and VoterRegistration address fields (submitAddress, signingPolicyAddress, submitSignaturesAddress, delegationAddress)","produces":["application/json"],"tags":["entities"],"summary":"Search entity by address","parameters":[{"type":"string","description":"Address to search for (0x...)","name":"address","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/{id}":{"get":{"description":"Returns a single entity with profile and validators","produces":["application/json"],"tags":["entities"],"summary":"Get entity by ID","parameters":[{"type":"string","description":"Entity ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/{id}/node-registrations":{"get":{"description":"Returns paginated node registrations associated with an entity","produces":["application/json"],"tags":["entities"],"summary":"Get node registrations for an entity","parameters":[{"type":"string","description":"Entity ID","name":"id","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/{id}/registered-addresses":{"get":{"description":"Returns paginated registered addresses associated with an entity","produces":["application/json"],"tags":["entities"],"summary":"Get registered addresses for an entity","parameters":[{"type":"string","description":"Entity ID","name":"id","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/{id}/stake-schedule":{"get":{"description":"Reconstructs outstanding self-bond, delegated stake, remaining capacity, and delegator count over time for an entity's validators. Includes a combined series plus one series per node, and upcoming unlocks. Built from stored stake and delegator windows, so ended periods the indexer never saw are missing.","produces":["application/json"],"tags":["entities"],"summary":"Entity validator stake schedule","parameters":[{"type":"string","description":"Entity address or ID","name":"id","in":"path","required":true},{"type":"integer","default":90,"description":"Days of history before now (max 365)","name":"lookbackDays","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.StakeScheduleResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/entities/{id}/voter-registrations":{"get":{"description":"Returns paginated voter registrations associated with an entity","produces":["application/json"],"tags":["entities"],"summary":"Get voter registrations for an entity","parameters":[{"type":"string","description":"Entity ID","name":"id","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/fassets/account/{address}":{"get":{"description":"Returns minting and redemption activity for a specific address","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets account activity","parameters":[{"type":"string","description":"EVM address","name":"address","in":"path","required":true},{"type":"integer","default":20,"description":"Page size","name":"first","in":"query"},{"type":"integer","default":0,"description":"Offset","name":"offset","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/account/{address}/stats":{"get":{"description":"Returns minting and redemption statistics for a specific address","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets account stats","parameters":[{"type":"string","description":"EVM address","name":"address","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/ecosystem-info":{"get":{"description":"Proxies ecosystem-level statistics (TVL, supply, collateral, etc.) from the FAssets API","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets ecosystem info","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/stats":{"get":{"description":"Returns 24h minting, redemption, and success rate statistics","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets 24h statistics","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/stats/daily-report":{"get":{"description":"Trailing-24h (default) or UTC calendar-day mint/redemption totals with avg/max/txs, USD, net flow, and total FXRP supply.","produces":["application/json"],"tags":["FAssets"],"summary":"Get FXRP daily report stats","parameters":[{"type":"string","description":"UTC calendar date YYYY-MM-DD. When omitted, uses trailing 24 hours ending now.","name":"date","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/stats/time-series":{"get":{"description":"Returns time-series minting and redemption volumes. Interval can be \"hour\" (last 24h), \"day\" (last 7 days), or \"week\" (all time).","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets time-series data","parameters":[{"type":"string","default":"week","description":"Time interval: hour, day, or week","name":"interval","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/stats/top-agents":{"get":{"description":"Returns top agents by minting volume in the last 24 hours","produces":["application/json"],"tags":["FAssets"],"summary":"Get top FAssets agents","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/stats/top-minters":{"get":{"description":"Returns top minters by minting volume in the last 24 hours","produces":["application/json"],"tags":["FAssets"],"summary":"Get top FAssets minters","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/status":{"get":{"description":"Returns metadata about the FAssets SubQuery indexer including health and sync status","produces":["application/json"],"tags":["FAssets"],"summary":"Get FAssets indexer status","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/transactions/recent":{"get":{"description":"Returns recent minting and redemption transactions with pagination","produces":["application/json"],"tags":["FAssets"],"summary":"Get recent FAssets transactions","parameters":[{"type":"integer","default":5,"description":"Number of results","name":"limit","in":"query"},{"type":"string","description":"Filter by type: minting, redemption, corevaulttransfer","name":"type","in":"query"},{"type":"string","description":"Cursor for pagination","name":"after","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fassets/transactions/search":{"get":{"description":"Search by collateral reservation ID, transaction hash, external tx hash, or redemption request ID","produces":["application/json"],"tags":["FAssets"],"summary":"Search FAssets transactions","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":true}}}}},"/fire/days":{"get":{"description":"UTC-day accruals by stream. FDC claimed is always 0 (claims have no day split). Do not sum FLR and FXRP.","produces":["application/json"],"tags":["fire"],"summary":"List FIRE daily totals","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page","name":"limit","in":"query"},{"type":"string","description":"Filter by stream (FDC, DIRECT_MINT, TAG)","name":"stream","in":"query"},{"type":"string","description":"Inclusive start day (YYYY-MM-DD)","name":"from","in":"query"},{"type":"string","description":"Inclusive end day (YYYY-MM-DD)","name":"to","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/fire/epochs":{"get":{"description":"Per reward epoch FDC estimate, claimed amount, and delta (estimated - claimed). Mismatch is expected.","produces":["application/json"],"tags":["fire"],"summary":"List FIRE epoch comparisons","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page","name":"limit","in":"query"},{"type":"string","default":"rewardEpochId","description":"Sort field (rewardEpochId)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/fire/epochs/{id}":{"get":{"description":"FDC estimate vs RewardClaimed for one reward epoch, plus EPOCH-period totals for every stream.","produces":["application/json"],"tags":["fire"],"summary":"Get FIRE epoch comparison","parameters":[{"type":"integer","description":"Reward epoch number","name":"id","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.FireEpochDetailResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/fire/summary":{"get":{"description":"All-time totals by stream. FDC accrued is a live request-fee estimate; claimed is RewardClaimed. Do not sum FLR and FXRP.","produces":["application/json"],"tags":["fire"],"summary":"Get FIRE revenue summary","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.FireSummaryResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/beneficiary-chilled":{"get":{"description":"Returns a paginated list of chilled beneficiaries","produces":["application/json"],"tags":["ftso"],"summary":"List chilled beneficiaries","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/fee-changes":{"get":{"description":"Returns a paginated list of fee percentage changes with optional voterId filter","produces":["application/json"],"tags":["ftso"],"summary":"List fee percentage changes","parameters":[{"type":"string","description":"Filter by voter ID","name":"voterId","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/providers":{"get":{"description":"Returns providers (VoterRegistrations enriched with Entity/Profile) for a reward epoch","produces":["application/json"],"tags":["ftso"],"summary":"List FTSO providers","parameters":[{"type":"integer","description":"Reward epoch number (defaults to latest)","name":"rewardEpochId","in":"query"},{"type":"string","default":"votePower","description":"Sort field (votePower, fee, rewardRate, rewardRateCV, fspRewardRateAvg, fspApr, reliabilityScore, wNatWeight, wNatCappedWeight, name)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"string","description":"Search by entity name or address","name":"search","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include providers that have a profile","name":"hasProfile","in":"query"},{"type":"number","description":"Minimum vote power in human FLR units (wNatWeight is stored in wei)","name":"minVotePower","in":"query"},{"type":"number","description":"Minimum delegation fee as a fraction (e.g. 0.10 for 10%)","name":"minFee","in":"query"},{"type":"number","description":"Maximum delegation fee as a fraction (e.g. 0.10 for 10%)","name":"maxFee","in":"query"},{"type":"number","description":"Minimum FSP APR","name":"minApr","in":"query"},{"type":"integer","description":"Minimum passes held in the latest minimum conditions epoch","name":"minPasses","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions per provider","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.FTSOProviderResponse"}}}}]}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/providers/{entityId}":{"get":{"description":"Returns a single provider with full reward distribution breakdown","produces":["application/json"],"tags":["ftso"],"summary":"Get FTSO provider by entity ID","parameters":[{"type":"string","description":"Entity address (recommended) or UUID","name":"entityId","in":"path","required":true},{"type":"integer","description":"Reward epoch number (defaults to latest)","name":"rewardEpochId","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.FTSOProviderDetailResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/providers/{entityId}/minimum-conditions":{"get":{"description":"Returns paginated minimum conditions for the given entity (voter), ordered by reward epoch (default DESC).","produces":["application/json"],"tags":["ftso"],"summary":"List minimum conditions for an entity","parameters":[{"type":"string","description":"Entity address (recommended) or UUID","name":"entityId","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"DESC","description":"Sort order by reward epoch (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditions"}}}}]}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/summary":{"get":{"description":"Returns the aggregated FTSO/voter registration summary (singleton)","produces":["application/json"],"tags":["ftso"],"summary":"Get FTSO summary","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.FtsoSummary"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/ftso/voter-registrations":{"get":{"description":"Returns a paginated list of voter registrations with Entity and RewardEpoch details. Defaults to the latest reward epoch if no rewardEpochId is specified.","produces":["application/json"],"tags":["ftso"],"summary":"List voter registrations","parameters":[{"type":"integer","description":"Filter by reward epoch ID (defaults to latest)","name":"rewardEpochId","in":"query"},{"type":"string","description":"Filter by voter ID","name":"voterId","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/health":{"get":{"description":"Returns service health status, database connectivity, and network name","produces":["application/json"],"tags":["health"],"summary":"Health check","responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":{"type":"string"}}},"503":{"description":"Service Unavailable","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/management-group-changes":{"get":{"description":"Returns a paginated list of management group membership changes","produces":["application/json"],"tags":["governance"],"summary":"List management group changes","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/network-stats":{"get":{"description":"Returns validator summary data plus network-level aggregates (total entities, providers, latest epoch). Does not include indexer status.","produces":["application/json"],"tags":["network"],"summary":"Get network stats overview","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.NetworkStatsResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/node-registrations":{"get":{"description":"Returns a paginated list of node registrations with optional entityId filter","produces":["application/json"],"tags":["validators"],"summary":"List node registrations","parameters":[{"type":"string","description":"Filter by entity ID","name":"entityId","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/proposals":{"get":{"description":"Returns a paginated list of management proposals with optional state filter","produces":["application/json"],"tags":["governance"],"summary":"List management proposals","parameters":[{"type":"string","description":"Filter by proposal state (Canceled, Pending, Active, Defeated, Succeeded)","name":"state","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"timestamp","description":"Sort field (timestamp, voteStartTime, voteEndTime)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/proposals/{id}":{"get":{"description":"Returns a single management proposal with all its votes","produces":["application/json"],"tags":["governance"],"summary":"Get proposal by ID","parameters":[{"type":"string","description":"Proposal ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementProposal"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/reward-epochs":{"get":{"description":"Returns a paginated list of reward epochs","produces":["application/json"],"tags":["reward-epochs"],"summary":"List reward epochs","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"timestamp","description":"Sort field (timestamp, rewardEpochId)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/reward-epochs/{id}":{"get":{"description":"Returns a single reward epoch","produces":["application/json"],"tags":["reward-epochs"],"summary":"Get reward epoch by ID","parameters":[{"type":"string","description":"Reward Epoch ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpoch"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/reward-epochs/{id}/distributions":{"get":{"description":"Returns paginated reward distributions for a specific reward epoch","produces":["application/json"],"tags":["reward-epochs"],"summary":"Get distributions for a reward epoch","parameters":[{"type":"string","description":"Reward Epoch ID","name":"id","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/reward-epochs/{id}/voter-registrations":{"get":{"description":"Returns paginated voter registrations for a specific reward epoch","produces":["application/json"],"tags":["reward-epochs"],"summary":"Get voter registrations for a reward epoch","parameters":[{"type":"string","description":"Reward Epoch ID","name":"id","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/staking-rewards/{address}":{"get":{"description":"Looks up Flare Metrics stake history for the reward owner, overlaps those windows with reward epochs, and fetches reward-scripts nodes-data for calculated staking amounts, MIRROR estimates from the node rate used in staking APR, plus uptime and minimum-condition issues.","produces":["application/json"],"tags":["staking-rewards"],"summary":"Diagnose staking rewards for an address","parameters":[{"type":"string","description":"EVM or flare1 reward-owner address","name":"address","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page","name":"limit","in":"query"},{"type":"string","default":"DESC","description":"Sort order by reward epoch (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"integer","description":"Minimum reward epoch (inclusive)","name":"minEpoch","in":"query"},{"type":"integer","description":"Maximum reward epoch (inclusive)","name":"maxEpoch","in":"query"},{"type":"string","description":"Include epochs starting on or after this date (YYYY-MM-DD, UTC)","name":"minDate","in":"query"},{"type":"string","description":"Include epochs starting on or before this date (YYYY-MM-DD, UTC)","name":"maxDate","in":"query"},{"type":"string","description":"Filter by node ID (substring, optional NodeID- prefix)","name":"nodeId","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.StakingRewardLookupResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/staking-rewards/{address}/csv":{"get":{"description":"Same lookup as GET /staking-rewards/{address}, returned as a downloadable CSV. Choose columns and optionally limit to an epoch or date range.","produces":["text/csv"],"tags":["staking-rewards"],"summary":"Export staking rewards as CSV","parameters":[{"type":"string","description":"EVM or flare1 reward-owner address","name":"address","in":"path","required":true},{"type":"string","description":"Comma-separated columns, or all. Default includes reward_owner_c. Also cChain, pChain, staker","name":"columns","in":"query"},{"type":"string","default":"DESC","description":"Sort order by reward epoch (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"integer","description":"Minimum reward epoch (inclusive)","name":"minEpoch","in":"query"},{"type":"integer","description":"Maximum reward epoch (inclusive)","name":"maxEpoch","in":"query"},{"type":"string","description":"Include epochs starting on or after this date (YYYY-MM-DD, UTC)","name":"minDate","in":"query"},{"type":"string","description":"Include epochs starting on or before this date (YYYY-MM-DD, UTC)","name":"maxDate","in":"query"},{"type":"string","description":"Filter by node ID (substring, optional NodeID- prefix)","name":"nodeId","in":"query"}],"responses":{"200":{"description":"CSV file","schema":{"type":"string"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators":{"get":{"description":"Returns a paginated list of validators with stakes and entity info","produces":["application/json"],"tags":["validators"],"summary":"List validators","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"createdAt","description":"Sort field (createdAt, nodeId, connected, stakingApr)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"boolean","description":"Filter by connection status","name":"connected","in":"query"},{"type":"string","description":"Search by entity name, address, or node ID","name":"search","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions per entity","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/asn-distribution":{"get":{"description":"Returns stake count, total stake, and delegator count grouped by ASN organization, with percentages, for active stakes only","produces":["application/json"],"tags":["validators"],"summary":"Validator ASN distribution","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.AsnDistributionResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/entities":{"get":{"description":"Returns entities with aggregated active-stake stats, sortable by total stake / delegators / validator count etc., with each entity's validators and their active stakes included","produces":["application/json"],"tags":["validators"],"summary":"List validator entities (grouped)","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"totalStake","description":"Sort field (totalStake, totalSelfBond, totalDelegated, totalDelegators, validatorCount, averageUptime, averageFee, stakingApr, reliabilityScore)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"string","description":"Search by entity name or address","name":"search","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include active stakes per validator; if false, include all stakes","name":"activeStakesOnly","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include entities that have a profile","name":"hasProfile","in":"query"},{"type":"integer","description":"Minimum total delegators across the entity's active stakes","name":"minDelegators","in":"query"},{"type":"number","description":"Minimum stake total; entity matches if any active stake meets it","name":"minTotalStake","in":"query"},{"type":"number","description":"Minimum free delegation space; entity matches if any active stake meets it","name":"minFreeSpace","in":"query"},{"type":"number","description":"Minimum staking APR; entity matches if any active stake meets it","name":"minApr","in":"query"},{"type":"number","description":"Minimum delegation fee as a fraction (e.g. 0.10 for 10%); entity matches if any active stake meets the fee range","name":"minFee","in":"query"},{"type":"number","description":"Maximum delegation fee as a fraction (e.g. 0.10 for 10%); entity matches if any active stake meets the fee range","name":"maxFee","in":"query"},{"type":"integer","description":"Minimum passes held in the latest minimum conditions epoch","name":"minPasses","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions per entity","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityValidatorGroupResponse"}}}}]}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/geo-distribution":{"get":{"description":"Returns stake count, total stake, and delegator count grouped by continent and country, with percentages, for active stakes only","produces":["application/json"],"tags":["validators"],"summary":"Validator geographic distribution","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.GeoDistributionResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/reward-rate-history":{"get":{"description":"Returns staking reward rates per reward epoch for top entities/nodes by stake (or APR) or an explicit selection. Entity mode uses the best node rate per epoch.","produces":["application/json"],"tags":["validators"],"summary":"Validator staking reward rate history","parameters":[{"type":"integer","default":10,"description":"Number of recent reward epochs (max 50)","name":"epochs","in":"query"},{"enum":["entity","node"],"type":"string","default":"entity","description":"Series grouping: entity or node","name":"groupBy","in":"query"},{"type":"integer","default":10,"description":"Max series when no selection (max 25)","name":"limit","in":"query"},{"type":"string","description":"Comma-separated entity addresses or UUIDs","name":"entityIds","in":"query"},{"type":"string","description":"Comma-separated validator NodeIDs","name":"nodeIds","in":"query"},{"enum":["stake","latest","avg"],"type":"string","default":"stake","description":"How to rank top series when no selection: stake (active stake), latest APR, or average APR","name":"rankBy","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorRewardRateHistoryResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/stakes":{"get":{"description":"Returns a paginated list of validator stakes with the parent validator and entity. Nested delegators are omitted by default; pass includeDelegators=true to include them. Use delegatorCount for list UIs.","produces":["application/json"],"tags":["validators"],"summary":"List validator stakes","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"stakeTotal","description":"Sort field (stakeAmount, stakeTotal, delegatorCount, uptime, startTime, endTime, freeSpace, stakingApr)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"},{"type":"boolean","description":"Include expired stakes (default false)","name":"showExpired","in":"query"},{"type":"string","description":"Filter by validator ID","name":"validatorId","in":"query"},{"type":"string","description":"Search by entity name, address, or node ID","name":"search","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include stakes whose entity has a profile","name":"hasProfile","in":"query"},{"type":"integer","description":"Minimum delegator count","name":"minDelegators","in":"query"},{"type":"number","description":"Minimum stake total","name":"minTotalStake","in":"query"},{"type":"number","description":"Minimum free delegation space","name":"minFreeSpace","in":"query"},{"type":"number","description":"Minimum staking APR","name":"minApr","in":"query"},{"type":"number","description":"Minimum delegation fee as a fraction (e.g. 0.10 for 10%)","name":"minFee","in":"query"},{"type":"number","description":"Maximum delegation fee as a fraction (e.g. 0.10 for 10%)","name":"maxFee","in":"query"},{"type":"integer","description":"Minimum passes held in the latest minimum conditions epoch","name":"minPasses","in":"query"},{"type":"boolean","description":"If true, include nested delegator rows on each stake (large payload; prefer delegatorCount for lists)","name":"includeDelegators","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions per entity on each stake's validator","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/summary":{"get":{"description":"Returns the aggregated validator network summary (singleton)","produces":["application/json"],"tags":["validators"],"summary":"Get validator network summary","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorSummary"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/top":{"get":{"description":"Returns entities ranked by the sum of stakeTotal across all their active (non-expired) validator stakes","produces":["application/json"],"tags":["validators"],"summary":"Top validators by total stake","parameters":[{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","description":"Search by entity name or address","name":"search","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include entities that have a profile","name":"hasProfile","in":"query"},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions per entity","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.TopValidatorResponse"}}}}]}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/uptime":{"get":{"description":"Returns FM-observed connected time for the current reward epoch. Unobserved time (indexer downtime) is excluded from both connected and staking seconds. This is not the P-chain lifetime uptime field and not official uptimeEligible.","produces":["application/json"],"tags":["validators"],"summary":"Observed validator uptime (current epoch)","parameters":[{"type":"string","description":"Comma-separated validator NodeIDs","name":"nodeIds","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeListResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/uptime/status":{"get":{"description":"Returns the last successful FM uptime poll. hasGap is true when no complete poll has landed within three poll intervals (default 3 minutes).","produces":["application/json"],"tags":["validators"],"summary":"Observed uptime poller status","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeStatusResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/version-distribution":{"get":{"description":"Returns validators grouped by their software version, with node ID and entity info per validator. Only includes validators with at least one active (non-expired) stake. Each group includes a status relative to the latest non-RC go-flare GitHub release (stable / latest / outdated / prerelease / unknown).","produces":["application/json"],"tags":["validators"],"summary":"Validator version distribution","parameters":[{"type":"boolean","default":true,"description":"If false, omit the per-version validator lists and return counts only","name":"includeValidators","in":"query"},{"type":"boolean","default":true,"description":"If true (default), only include validators whose entity has a profile","name":"hasProfile","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.VersionDistributionResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/{id}":{"get":{"description":"Returns a single validator with stakes, delegators, and entity info","produces":["application/json"],"tags":["validators"],"summary":"Get validator by ID","parameters":[{"type":"string","description":"Validator ID","name":"id","in":"path","required":true},{"type":"boolean","description":"If true, attach latest reward epoch minimum conditions","name":"includeMinimumConditions","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.Validator"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/validators/{id}/uptime":{"get":{"description":"Returns hourly observed uptime buckets. Defaults to the current reward epoch. :id accepts the validator UUID or NodeID.","produces":["application/json"],"tags":["validators"],"summary":"Observed uptime for one validator","parameters":[{"type":"string","description":"Validator UUID or NodeID","name":"id","in":"path","required":true},{"type":"string","description":"RFC3339 start (defaults to current epoch start)","name":"from","in":"query"},{"type":"string","description":"RFC3339 end (defaults to now)","name":"to","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeDetailResponse"}},"400":{"description":"Bad Request","schema":{"type":"object","additionalProperties":{"type":"string"}}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/votes":{"get":{"description":"Returns a paginated list of management group votes with optional filters","produces":["application/json"],"tags":["governance"],"summary":"List management votes","parameters":[{"type":"string","description":"Filter by entity ID","name":"entityId","in":"query"},{"type":"string","description":"Filter by proposal ID","name":"proposalId","in":"query"},{"type":"string","description":"Filter by support value (AGAINST, FOR)","name":"support","in":"query"},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"timestamp","description":"Sort field (timestamp)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.PaginatedResponse"}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}},"/votes/entity/{entityId}":{"get":{"description":"Returns voting stats (proposals voted, approval rate) and paginated vote history for a management group entity","produces":["application/json"],"tags":["governance"],"summary":"Get entity voting summary","parameters":[{"type":"string","description":"Entity address (recommended) or UUID","name":"entityId","in":"path","required":true},{"type":"integer","default":1,"description":"Page number","name":"page","in":"query"},{"type":"integer","default":25,"description":"Items per page (max 100)","name":"limit","in":"query"},{"type":"string","default":"timestamp","description":"Sort field (timestamp)","name":"sortBy","in":"query"},{"type":"string","default":"DESC","description":"Sort order (ASC, DESC)","name":"sortOrder","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityVotingSummaryResponse"}},"404":{"description":"Not Found","schema":{"type":"object","additionalProperties":{"type":"string"}}},"500":{"description":"Internal Server Error","schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"definitions":{"phoebe-v3_internal_models.AsnDistribution":{"type":"object","properties":{"asnOrg":{"type":"string"},"delegatorCount":{"type":"integer"},"stakeCount":{"type":"integer"},"stakePercentage":{"type":"number"},"totalStake":{"type":"number"}}},"phoebe-v3_internal_models.AsnDistributionResponse":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.AsnDistribution"}},"totalActiveStake":{"type":"number"},"totalActiveStakes":{"type":"integer"},"totalDelegators":{"type":"integer"}}},"phoebe-v3_internal_models.BeneficiaryChilled":{"type":"object","properties":{"beneficiary":{"type":"string"},"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"entityId":{"type":"string"},"id":{"type":"string"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"untilRewardEpochId":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.ClaimType":{"type":"string","enum":["DIRECT","FEE","WNAT","MIRROR"],"x-enum-varnames":["ClaimTypeDirect","ClaimTypeFee","ClaimTypeWNat","ClaimTypeMirror"]},"phoebe-v3_internal_models.ContinentDistribution":{"type":"object","properties":{"continent":{"type":"string"},"delegatorCount":{"type":"integer"},"stakeCount":{"type":"integer"},"stakePercentage":{"type":"number"},"totalStake":{"type":"number"}}},"phoebe-v3_internal_models.CountryDistribution":{"type":"object","properties":{"continent":{"type":"string"},"country":{"type":"string"},"countryCode":{"type":"string"},"delegatorCount":{"type":"integer"},"stakeCount":{"type":"integer"},"stakePercentage":{"type":"number"},"totalStake":{"type":"number"}}},"phoebe-v3_internal_models.Entity":{"type":"object","properties":{"address":{"type":"string"},"beneficiaryChilleds":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.BeneficiaryChilled"}},"createdAt":{"type":"string"},"currentVotePower":{"type":"string"},"fspApr":{"type":"number"},"fspRewardRate":{"description":"FSP reward rate from distribution data (WNAT claims)","type":"number"},"fspRewardRateAvg":{"type":"number"},"fspRewardRateCV":{"type":"number"},"id":{"type":"string"},"nodeRegistrations":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.NodeRegistration"}},"profile":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityProfile"},"profileId":{"type":"string"},"registeredAddresses":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRegisteredAddress"}},"reliabilityScore":{"type":"integer"},"reliabilityScoreEpochsUsed":{"type":"integer"},"updatedAt":{"type":"string"},"validators":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.Validator"}},"voterRegistrations":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.VoterRegistration"}}}},"phoebe-v3_internal_models.EntityProfile":{"type":"object","properties":{"createdAt":{"type":"string"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"id":{"type":"string"},"logo":{"type":"string"},"name":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.EntityProfileRef":{"type":"object","properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"logo":{"type":"string"},"name":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.EntityRef":{"type":"object","properties":{"address":{"type":"string"},"currentVotePower":{"type":"string"},"id":{"description":"Entity address (use for API paths)","type":"string"},"profile":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityProfileRef"},"reliabilityScore":{"type":"integer"},"reliabilityScoreEpochsUsed":{"type":"integer"}}},"phoebe-v3_internal_models.EntityRegisteredAddress":{"type":"object","properties":{"action":{"type":"string"},"addressId":{"type":"string"},"addressType":{"type":"string"},"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"entityId":{"type":"string"},"id":{"type":"string"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.EntityValidatorGroupResponse":{"type":"object","properties":{"averageFee":{"type":"number"},"averageUptime":{"type":"number"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"minimumConditions":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"},"totalDelegated":{"type":"number"},"totalDelegators":{"type":"integer"},"totalSelfBond":{"type":"number"},"totalStake":{"type":"number"},"validatorCount":{"type":"integer"},"validators":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.Validator"}}}},"phoebe-v3_internal_models.EntityVotingSummaryResponse":{"type":"object","properties":{"approvalRate":{"type":"number"},"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementVote"}},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"pagination":{"$ref":"#/definitions/phoebe-v3_internal_models.Pagination"},"totalProposalsVoted":{"type":"integer"},"votesAgainst":{"type":"integer"},"votesFor":{"type":"integer"}}},"phoebe-v3_internal_models.FTSOProviderDetailResponse":{"type":"object","properties":{"delegationAddress":{"description":"Delegation info","type":"string"},"delegationFeeBIPS":{"type":"integer"},"delegationFeePercentage":{"type":"number"},"entity":{"description":"Nested entity with profile","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"}]},"fspApr":{"type":"number"},"fspRewardRate":{"description":"FSP reward info (from Entity, WNAT claims)","type":"number"},"fspRewardRateAvg":{"type":"number"},"fspRewardRateCV":{"type":"number"},"minimumConditions":{"description":"Latest reward epoch minimum conditions (only when includeMinimumConditions=true)","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"}]},"nodeIds":{"description":"Node info","type":"array","items":{"type":"string"}},"nodeWeights":{"type":"array","items":{"type":"string"}},"registrationWeight":{"description":"Vote power (stored as strings since they're big numbers)","type":"string"},"rewardDistributions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardDistribution"}},"rewardEpochId":{"type":"string"},"timestamp":{"type":"string"},"voterId":{"type":"string"},"voterRegistrationId":{"description":"Voter registration info","type":"string"},"wNatCappedWeight":{"type":"string"},"wNatWeight":{"type":"string"}}},"phoebe-v3_internal_models.FTSOProviderResponse":{"type":"object","properties":{"delegationAddress":{"description":"Delegation info","type":"string"},"delegationFeeBIPS":{"type":"integer"},"delegationFeePercentage":{"type":"number"},"entity":{"description":"Nested entity with profile","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"}]},"fspApr":{"type":"number"},"fspRewardRate":{"description":"FSP reward info (from Entity, WNAT claims)","type":"number"},"fspRewardRateAvg":{"type":"number"},"fspRewardRateCV":{"type":"number"},"minimumConditions":{"description":"Latest reward epoch minimum conditions (only when includeMinimumConditions=true)","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"}]},"nodeIds":{"description":"Node info","type":"array","items":{"type":"string"}},"nodeWeights":{"type":"array","items":{"type":"string"}},"registrationWeight":{"description":"Vote power (stored as strings since they're big numbers)","type":"string"},"rewardEpochId":{"type":"string"},"timestamp":{"type":"string"},"voterId":{"type":"string"},"voterRegistrationId":{"description":"Voter registration info","type":"string"},"wNatCappedWeight":{"type":"string"},"wNatWeight":{"type":"string"}}},"phoebe-v3_internal_models.FireEpochComparison":{"type":"object","properties":{"claimedWei":{"type":"string"},"deltaWei":{"type":"string"},"estimatedWei":{"type":"string"},"rewardEpochId":{"type":"integer"}}},"phoebe-v3_internal_models.FireEpochDetailResponse":{"type":"object","properties":{"claimedWei":{"type":"string"},"deltaWei":{"type":"string"},"estimatedWei":{"type":"string"},"rewardEpochId":{"type":"integer"},"streams":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.FireStreamTotal"}}}},"phoebe-v3_internal_models.FireStreamTotal":{"type":"object","properties":{"accrued":{"type":"string"},"claimed":{"type":"string"},"recipient":{"type":"string"},"stream":{"type":"string"},"token":{"type":"string"},"tokenAddress":{"type":"string"}}},"phoebe-v3_internal_models.FireSummaryResponse":{"type":"object","properties":{"latestEpoch":{"$ref":"#/definitions/phoebe-v3_internal_models.FireEpochComparison"},"totals":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.FireStreamTotal"}}}},"phoebe-v3_internal_models.FtsoSummary":{"type":"object","properties":{"contractRegisteredVoters":{"description":"From latest RewardEpoch (contract-reported, for cross-check)","type":"integer"},"contractTotalWeight":{"type":"string"},"id":{"type":"string"},"latestRewardEpochId":{"description":"Latest epoch context","type":"integer"},"latestVotePowerBlock":{"type":"string"},"totalRegistrationWeight":{"type":"string"},"totalRegistrations":{"description":"Aggregates from VoterRegistration for latest epoch","type":"integer"},"totalWnatCappedWeight":{"type":"string"},"totalWnatWeight":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.GeoDistributionResponse":{"type":"object","properties":{"continents":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ContinentDistribution"}},"countries":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.CountryDistribution"}},"totalActiveStake":{"type":"number"},"totalActiveStakes":{"type":"integer"},"totalDelegators":{"type":"integer"}}},"phoebe-v3_internal_models.ManagementProposal":{"type":"object","properties":{"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"eligibleMembers":{"type":"integer"},"id":{"type":"string"},"majorityBIPS":{"type":"integer"},"majorityPercentage":{"type":"number"},"proposalId":{"type":"integer"},"proposerId":{"type":"string"},"state":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementProposalState"},"thresholdBIPS":{"type":"integer"},"thresholdPercentage":{"type":"number"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"},"voteEndTime":{"type":"string"},"voteStartTime":{"type":"string"},"votes":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementVote"}},"votesAgainst":{"type":"integer"},"votesFor":{"type":"integer"}}},"phoebe-v3_internal_models.ManagementProposalState":{"type":"string","enum":["Canceled","Pending","Active","Defeated","Succeeded"],"x-enum-varnames":["ProposalStateCanceled","ProposalStatePending","ProposalStateActive","ProposalStateDefeated","ProposalStateSucceeded"]},"phoebe-v3_internal_models.ManagementVote":{"type":"object","properties":{"againstVotePower":{"type":"string"},"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"entityId":{"type":"string"},"forVotePower":{"type":"string"},"id":{"type":"string"},"managementProposalId":{"type":"string"},"proposal":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementProposal"},"proposalId":{"type":"integer"},"support":{"$ref":"#/definitions/phoebe-v3_internal_models.ManagementVoteSupport"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"},"voterId":{"type":"string"}}},"phoebe-v3_internal_models.ManagementVoteSupport":{"type":"string","enum":["AGAINST","FOR"],"x-enum-varnames":["VoteSupportAgainst","VoteSupportFor"]},"phoebe-v3_internal_models.MinimumConditions":{"type":"object","properties":{"createdAt":{"type":"string"},"dataProviderName":{"type":"string"},"delegationAddress":{"type":"string"},"eligibleForReward":{"type":"boolean"},"fastUpdatesConditionMet":{"type":"boolean"},"fastUpdatesExpectedUpdates":{"type":"string"},"fastUpdatesExpectedUpdatesPPM":{"type":"string"},"fastUpdatesTooLowWeight":{"type":"boolean"},"fastUpdatesTotalUpdatesByAll":{"type":"integer"},"fastUpdatesUpdates":{"type":"integer"},"fdcConditionMet":{"type":"boolean"},"fdcRewardedVotingRounds":{"type":"integer"},"fdcTotalRewardedVotingRounds":{"type":"integer"},"ftsoScalingAllPossibleHits":{"type":"integer"},"ftsoScalingConditionMet":{"type":"boolean"},"ftsoScalingTotalHits":{"type":"integer"},"id":{"type":"string"},"newNumberOfPasses":{"type":"integer"},"passEarned":{"type":"boolean"},"passesHeld":{"type":"integer"},"rewardEpoch":{"description":"RewardEpochId is FK to RewardEpoch.id (UUID), not RewardEpoch.rewardEpochId (int)","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpoch"}]},"rewardEpochId":{"type":"string"},"rewardEpochNumber":{"description":"RewardEpochNumber is the epoch number for API (set when RewardEpoch is loaded); not stored in DB","type":"string"},"stakingConditionMet":{"type":"boolean"},"stakingStake":{"type":"string"},"stakingStakeWithUptime":{"type":"string"},"stakingTotalSelfBond":{"type":"string"},"strikes":{"type":"integer"},"updatedAt":{"type":"string"},"voterAddress":{"type":"string"},"voterIndex":{"type":"integer"},"voterRegistration":{"$ref":"#/definitions/phoebe-v3_internal_models.VoterRegistration"},"voterRegistrationId":{"type":"string"}}},"phoebe-v3_internal_models.MinimumConditionsSummary":{"type":"object","properties":{"eligibleForReward":{"type":"boolean"},"fastUpdatesConditionMet":{"type":"boolean"},"fastUpdatesTooLowWeight":{"type":"boolean"},"fdcConditionMet":{"type":"boolean"},"ftsoScalingConditionMet":{"type":"boolean"},"newNumberOfPasses":{"type":"integer"},"passEarned":{"type":"boolean"},"passesHeld":{"type":"integer"},"rewardEpochId":{"type":"string"},"stakingConditionMet":{"type":"boolean"},"strikes":{"type":"integer"}}},"phoebe-v3_internal_models.NetworkStatsResponse":{"type":"object","properties":{"averageFee":{"type":"number"},"averageUptime":{"type":"number"},"latestRewardEpoch":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpochSummary"},"rewardCap":{"type":"number"},"tokenPriceUsd":{"type":"number"},"totalDelegated":{"type":"number"},"totalDelegators":{"type":"integer"},"totalEntities":{"description":"Network aggregates","type":"integer"},"totalFreeSpace":{"type":"number"},"totalProviders":{"type":"integer"},"totalSelfBond":{"type":"number"},"totalStake":{"description":"Validator summary data","type":"number"},"totalStakeUsd":{"type":"number"},"validatorCount":{"type":"integer"}}},"phoebe-v3_internal_models.NodeAction":{"type":"string","enum":["REGISTERED","UNREGISTERED"],"x-enum-varnames":["NodeActionRegistered","NodeActionUnregistered"]},"phoebe-v3_internal_models.NodeRegistration":{"type":"object","properties":{"action":{"$ref":"#/definitions/phoebe-v3_internal_models.NodeAction"},"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"entityId":{"type":"string"},"id":{"type":"string"},"nodeIdHumanReadable":{"type":"string"},"nodeIdentifier":{"type":"string"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"}}},"phoebe-v3_internal_models.PaginatedResponse":{"type":"object","properties":{"data":{},"pagination":{"$ref":"#/definitions/phoebe-v3_internal_models.Pagination"}}},"phoebe-v3_internal_models.Pagination":{"type":"object","properties":{"hasMore":{"type":"boolean"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"}}},"phoebe-v3_internal_models.RewardDistribution":{"type":"object","properties":{"beneficiary":{"type":"string"},"claimAmount":{"type":"string"},"claimAmountFloat":{"type":"number"},"claimType":{"$ref":"#/definitions/phoebe-v3_internal_models.ClaimType"},"createdAt":{"type":"string"},"fspRewardRate":{"type":"number"},"id":{"type":"string"},"rewardEpoch":{"description":"Same GORM naming collision as VoterRegistration — see note above.","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpoch"}]},"rewardEpochId":{"type":"string"},"stakingRewardRate":{"type":"number"},"updatedAt":{"type":"string"},"voterRegistration":{"$ref":"#/definitions/phoebe-v3_internal_models.VoterRegistration"},"voterRegistrationId":{"type":"string"}}},"phoebe-v3_internal_models.RewardEpoch":{"type":"object","properties":{"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"hasDistributionData":{"type":"boolean"},"hasMinimalConditionsData":{"type":"boolean"},"hasValidatorRewardData":{"type":"boolean"},"id":{"type":"string"},"minimumConditions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditions"}},"registeredVoters":{"type":"integer"},"rewardDistributions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardDistribution"}},"rewardEpochId":{"type":"string"},"seed":{"type":"string"},"startTimestamp":{"type":"string"},"startVotingRoundId":{"type":"string"},"threshold":{"type":"string"},"timestamp":{"type":"string"},"totalInflationRewards":{"type":"string"},"totalRewards":{"type":"string"},"totalWeight":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"},"validatorRewardEpochs":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorRewardEpoch"}},"votePowerBlock":{"type":"string"},"voterRegistrations":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.VoterRegistration"}}}},"phoebe-v3_internal_models.RewardEpochSummary":{"type":"object","properties":{"hasDistributionData":{"type":"boolean"},"id":{"type":"string"},"registeredVoters":{"type":"integer"},"rewardEpochId":{"type":"string"},"startTimestamp":{"type":"string"},"timestamp":{"type":"string"}}},"phoebe-v3_internal_models.RewardRateHistoryEpoch":{"type":"object","properties":{"id":{"type":"string"},"rewardEpochId":{"type":"string"},"startTimestamp":{"type":"string"},"timestamp":{"type":"string"}}},"phoebe-v3_internal_models.RewardRateHistoryPoint":{"type":"object","properties":{"rewardEpochId":{"type":"string"},"stakingRewardRate":{"type":"number"}}},"phoebe-v3_internal_models.RewardRateHistorySeries":{"type":"object","properties":{"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"groupBy":{"type":"string"},"key":{"type":"string"},"nodeId":{"type":"string"},"points":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardRateHistoryPoint"}},"validatorId":{"type":"string"}}},"phoebe-v3_internal_models.StakeSchedulePoint":{"type":"object","properties":{"available":{"type":"number"},"capacity":{"type":"number"},"delegated":{"type":"number"},"delegatorCount":{"type":"integer"},"filledPct":{"type":"number"},"selfBond":{"type":"number"},"timestamp":{"type":"string"},"total":{"type":"number"}}},"phoebe-v3_internal_models.StakeScheduleResponse":{"type":"object","properties":{"combined":{"$ref":"#/definitions/phoebe-v3_internal_models.StakeScheduleSeries"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"from":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.StakeScheduleSeries"}},"now":{"type":"string"},"to":{"type":"string"},"unlocks":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.StakeScheduleUnlock"}}}},"phoebe-v3_internal_models.StakeScheduleSeries":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"nodeId":{"type":"string"},"points":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.StakeSchedulePoint"}}}},"phoebe-v3_internal_models.StakeScheduleUnlock":{"type":"object","properties":{"amount":{"type":"number"},"kind":{"type":"string"},"nodeId":{"type":"string"},"timestamp":{"type":"string"}}},"phoebe-v3_internal_models.StakingRewardLookupResponse":{"type":"object","properties":{"address":{"type":"string"},"bech32Address":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.StakingRewardRow"}},"pagination":{"$ref":"#/definitions/phoebe-v3_internal_models.Pagination"},"summary":{"$ref":"#/definitions/phoebe-v3_internal_models.StakingRewardLookupSummary"}}},"phoebe-v3_internal_models.StakingRewardLookupSummary":{"type":"object","properties":{"epochCount":{"type":"integer"},"issueCount":{"type":"integer"},"nodeCount":{"type":"integer"},"rowCount":{"type":"integer"},"totalMirrorFlr":{"type":"number"},"totalRewardFlr":{"type":"number"},"totalStakingFlr":{"type":"number"}}},"phoebe-v3_internal_models.StakingRewardRow":{"type":"object","properties":{"earnedApr":{"type":"number"},"eligible":{"type":"boolean"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"fee":{"type":"integer"},"issues":{"type":"array","items":{"type":"string"}},"minimumConditions":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"},"mirrorAmountFlr":{"type":"number"},"mirrorRate":{"type":"number"},"nodeId":{"type":"string"},"providerName":{"type":"string"},"rewardAmount":{"type":"string"},"rewardAmountFlr":{"type":"number"},"rewardEpochId":{"type":"integer"},"rewardOwnerC":{"type":"string"},"rewardOwnerP":{"type":"string"},"role":{"type":"string"},"stakeAddress":{"type":"string"},"stakeAmount":{"type":"number"},"stakeEnd":{"type":"string"},"stakeStart":{"type":"string"},"startTimestamp":{"type":"string"},"totalAmountFlr":{"type":"number"},"uptimeEligible":{"type":"boolean"}}},"phoebe-v3_internal_models.TopValidatorResponse":{"type":"object","properties":{"averageUptime":{"type":"number"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"minimumConditions":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"},"totalDelegated":{"type":"number"},"totalDelegators":{"type":"integer"},"totalSelfBond":{"type":"number"},"totalStake":{"type":"number"},"validatorCount":{"type":"integer"}}},"phoebe-v3_internal_models.Validator":{"type":"object","properties":{"connected":{"type":"boolean"},"createdAt":{"type":"string"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"entityId":{"type":"string"},"id":{"type":"string"},"minimumConditions":{"description":"Latest reward epoch minimum conditions when includeMinimumConditions=true (not stored in DB)","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditionsSummary"}]},"nodeId":{"type":"string"},"updatedAt":{"type":"string"},"validatorRewardEpochs":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorRewardEpoch"}},"validatorStakes":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorStake"}},"version":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorRewardEpoch":{"type":"object","properties":{"createdAt":{"type":"string"},"eligible":{"type":"boolean"},"fee":{"type":"integer"},"id":{"type":"string"},"nodeRewardAmount":{"type":"string"},"normalDelegations":{"type":"string"},"rewardEpoch":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpoch"},"rewardEpochId":{"type":"string"},"stakingRewardRate":{"type":"number"},"totalStakeAmount":{"type":"string"},"updatedAt":{"type":"string"},"uptimeEligible":{"type":"boolean"},"validator":{"$ref":"#/definitions/phoebe-v3_internal_models.Validator"},"validatorId":{"type":"string"},"validatorRewardAmount":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorRewardRateHistoryResponse":{"type":"object","properties":{"epochs":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardRateHistoryEpoch"}},"series":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardRateHistorySeries"}}}},"phoebe-v3_internal_models.ValidatorStake":{"type":"object","properties":{"connected":{"type":"boolean"},"createdAt":{"type":"string"},"delegatedAmount":{"type":"number"},"delegationFeePct":{"type":"number"},"delegatorCount":{"type":"integer"},"delegators":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorStakeDelegator"}},"endTime":{"type":"string"},"freeSpace":{"type":"number"},"geoAsnOrg":{"type":"string"},"geoCity":{"type":"string"},"geoContinent":{"type":"string"},"geoCountry":{"type":"string"},"geoCountryCode":{"type":"string"},"geoLatitude":{"type":"number"},"geoLongitude":{"type":"number"},"id":{"type":"string"},"potentialReward":{"type":"number"},"publicIP":{"type":"string"},"rewardOwnerAddress":{"type":"string"},"stakeAmount":{"type":"number"},"stakeTotal":{"type":"number"},"stakingApr":{"type":"number"},"stakingRewardRate":{"description":"Staking reward rate from MIRROR claim distribution data","type":"number"},"stakingRewardRateAvg":{"type":"number"},"startTime":{"type":"string"},"txId":{"type":"string"},"updatedAt":{"type":"string"},"uptime":{"type":"number"},"validator":{"$ref":"#/definitions/phoebe-v3_internal_models.Validator"},"validatorId":{"type":"string"},"version":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorStakeDelegator":{"type":"object","properties":{"createdAt":{"type":"string"},"endTime":{"type":"string"},"id":{"type":"string"},"potentialReward":{"type":"number"},"rewardOwnerAddress":{"type":"string"},"stakeAmount":{"type":"number"},"startTime":{"type":"string"},"txId":{"type":"string"},"updatedAt":{"type":"string"},"validatorStake":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorStake"},"validatorStakeId":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorSummary":{"type":"object","properties":{"averageFee":{"type":"number"},"averageUptime":{"type":"number"},"id":{"type":"string"},"rewardCap":{"type":"number"},"tokenPriceUsd":{"type":"number"},"totalDelegated":{"type":"number"},"totalDelegators":{"type":"integer"},"totalFreeSpace":{"type":"number"},"totalSelfBond":{"type":"number"},"totalStake":{"type":"number"},"totalStakeUsd":{"type":"number"},"updatedAt":{"type":"string"},"validatorCount":{"type":"integer"}}},"phoebe-v3_internal_models.ValidatorUptimeDetailResponse":{"type":"object","properties":{"epochStartedAt":{"type":"string"},"from":{"type":"string"},"hours":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeHourBucket"}},"nodeId":{"type":"string"},"rewardEpochId":{"type":"integer"},"to":{"type":"string"},"totals":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeTotals"},"validatorId":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorUptimeHourBucket":{"type":"object","properties":{"connectedSeconds":{"type":"integer"},"hourStart":{"type":"string"},"samples":{"type":"integer"},"stakingSeconds":{"type":"integer"},"uptime":{"type":"number"}}},"phoebe-v3_internal_models.ValidatorUptimeListResponse":{"type":"object","properties":{"epochStartedAt":{"type":"string"},"from":{"type":"string"},"rewardEpochId":{"type":"integer"},"to":{"type":"string"},"validators":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorUptimeRow"}}}},"phoebe-v3_internal_models.ValidatorUptimeRow":{"type":"object","properties":{"connectedSeconds":{"type":"integer"},"nodeId":{"type":"string"},"observedCoverage":{"type":"number"},"stakingSeconds":{"type":"integer"},"uptime":{"type":"number"},"validatorId":{"type":"string"}}},"phoebe-v3_internal_models.ValidatorUptimeStatusResponse":{"type":"object","properties":{"gapThresholdSeconds":{"type":"integer"},"hasGap":{"type":"boolean"},"lastObservedAt":{"type":"string"},"validatorCount":{"type":"integer"}}},"phoebe-v3_internal_models.ValidatorUptimeTotals":{"type":"object","properties":{"connectedSeconds":{"type":"integer"},"observedCoverage":{"type":"number"},"stakingSeconds":{"type":"integer"},"uptime":{"type":"number"}}},"phoebe-v3_internal_models.VersionDistributionResponse":{"type":"object","properties":{"latestVersion":{"description":"LatestVersion is the highest non-prerelease version currently observed on validators.\nIt may be ahead of StableVersion when nodes run unreleased builds.","type":"string"},"stableVersion":{"description":"StableVersion is the latest non-RC release from github.com/flare-foundation/go-flare.","type":"string"},"totalValidators":{"type":"integer"},"versions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.VersionGroup"}}}},"phoebe-v3_internal_models.VersionGroup":{"type":"object","properties":{"count":{"type":"integer"},"percentage":{"type":"number"},"status":{"description":"Status is one of: stable, latest, outdated, prerelease, unknown.\nstable = matches latest GitHub release; latest = ahead of that release;\noutdated = older than the stable release; prerelease = -rc* / testnet builds.","type":"string"},"validators":{"description":"Validators is omitted when the caller passes includeValidators=false.","type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.VersionValidator"}},"version":{"type":"string"}}},"phoebe-v3_internal_models.VersionValidator":{"type":"object","properties":{"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.EntityRef"},"nodeId":{"type":"string"},"validatorStakes":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.ValidatorStake"}}}},"phoebe-v3_internal_models.VoterRegistration":{"type":"object","properties":{"blockNumber":{"type":"string"},"createdAt":{"type":"string"},"delegationAddress":{"type":"string"},"delegationFeeBIPS":{"type":"integer"},"delegationFeePercentage":{"type":"number"},"entity":{"$ref":"#/definitions/phoebe-v3_internal_models.Entity"},"entityId":{"type":"string"},"id":{"type":"string"},"minimumConditions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.MinimumConditions"}},"nodeIds":{"type":"array","items":{"type":"string"}},"nodeWeights":{"type":"array","items":{"type":"string"}},"publicKeyPart1":{"type":"string"},"publicKeyPart2":{"type":"string"},"registrationWeight":{"type":"string"},"rewardDistributions":{"type":"array","items":{"$ref":"#/definitions/phoebe-v3_internal_models.RewardDistribution"}},"rewardEpoch":{"description":"NOTE: Do not use Preload(\"RewardEpoch\") on VoterRegistration queries.\nGORM confuses VoterRegistration.rewardEpochId (UUID FK to RewardEpoch.id)\nwith RewardEpoch.rewardEpochId (integer epoch number) due to the shared field name.\nInstead, query the RewardEpoch separately and attach it manually.","allOf":[{"$ref":"#/definitions/phoebe-v3_internal_models.RewardEpoch"}]},"rewardEpochId":{"type":"string"},"signingPolicyAddress":{"type":"string"},"submitAddress":{"type":"string"},"submitSignaturesAddress":{"type":"string"},"timestamp":{"type":"string"},"transactionHash":{"type":"string"},"updatedAt":{"type":"string"},"voterId":{"type":"string"},"wNatCappedWeight":{"type":"string"},"wNatCappedWeightFloat":{"type":"number"},"wNatWeight":{"type":"string"},"wNatWeightFloat":{"type":"number"}}}}}