diff --git a/api-reference/endpoint/rewards/retrieve-programmatic-incentives.mdx b/api-reference/endpoint/rewards/retrieve-programmatic-incentives.mdx new file mode 100644 index 0000000..fc41e66 --- /dev/null +++ b/api-reference/endpoint/rewards/retrieve-programmatic-incentives.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /rewards/programmatic-incentives +--- diff --git a/api-reference/openapi.json b/api-reference/openapi.json index ab9dd8e..ba4b537 100644 --- a/api-reference/openapi.json +++ b/api-reference/openapi.json @@ -4111,6 +4111,21 @@ "example": "false" } }, + { + "in": "query", + "name": "withTrailingApy", + "description": "Toggle whether the route should calculate the Trailing APY Values", + "schema": { + "type": "string", + "enum": [ + "true", + "false" + ], + "default": "false", + "description": "Toggle whether the route should calculate the Trailing APY Values", + "example": "false" + } + }, { "in": "header", "name": "X-API-Token", @@ -4467,6 +4482,36 @@ "description": "The cumulative APY from all tokens in this strategy", "example": 0.1 }, + "baseApy": { + "type": "number", + "description": "Base APY (from LST yield)", + "example": 0.1 + }, + "trailingApy7d": { + "type": "number", + "description": "7-day trailing APY values", + "example": 0.1 + }, + "trailingApy30d": { + "type": "number", + "description": "30-day trailing APY values", + "example": 0.1 + }, + "trailingApy3m": { + "type": "number", + "description": "3-month trailing APY values", + "example": 0.1 + }, + "trailingApy6m": { + "type": "number", + "description": "6-month trailing APY values", + "example": 0.1 + }, + "trailingApy1y": { + "type": "number", + "description": "1-year trailing APY values", + "example": 0.1 + }, "tokens": { "type": "array", "items": { @@ -4493,6 +4538,7 @@ "required": [ "strategyAddress", "apy", + "baseApy", "tokens" ] }, @@ -5324,7 +5370,7 @@ }, "totalAmount": { "type": "string", - "description": "The total amount of rewards allocated in this submission", + "description": "The total amount of rewards allocated in this submission, denominated in the reward token (wei).", "example": "5000000000000000000" }, "tokenAddress": { @@ -5351,7 +5397,7 @@ }, "amount": { "type": "string", - "description": "The amount of rewards allocated to this strategy from the total rewards in this submissionn", + "description": "The amount of rewards allocated to this strategy from the total rewards in this submission, denominated in the reward token (wei).", "example": "5000000000000000000" } }, @@ -5362,6 +5408,49 @@ ] }, "description": "List of strategies involved in the rewards submission" + }, + "operators": { + "type": "array", + "items": { + "type": "object", + "properties": { + "operatorAddress": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "description": "The address of the operator", + "example": "0x0f4e73f02e2b78f424a8e3f8e8553761c305f4d1" + }, + "totalAmount": { + "type": "string", + "description": "Total amount of rewards distributed to this operator, denominated in the reward token (wei).", + "example": "5000000000000000000" + }, + "strategies": { + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "description": "List of strategy addresses for reward distribution", + "example": "0xacb55c530acdb2849e6d4f36992cd8c9d50ed8f7" + } + }, + "strategyAmounts": { + "type": "array", + "items": { + "type": "string", + "description": "The amount of rewards allocated to this strategy from the total rewards for this operator (same order as 'strategies'), denominated in the reward token (wei).", + "example": "5000000000000000000" + } + } + }, + "required": [ + "operatorAddress", + "totalAmount", + "strategies", + "strategyAmounts" + ] + }, + "description": "Rewards distributed to each operator" } }, "required": [ @@ -5377,7 +5466,7 @@ }, "totalRewards": { "type": "string", - "description": "The aggregate amount of rewards distributed across all submissions", + "description": "Total rewards distributed for all submissions, aggregated in ETH (wei)", "example": "1000000000000000000" }, "totalSubmissions": { @@ -7625,6 +7714,21 @@ "example": "false" } }, + { + "in": "query", + "name": "withTrailingApy", + "description": "Toggle whether the route should calculate the Trailing APY Values", + "schema": { + "type": "string", + "enum": [ + "true", + "false" + ], + "default": "false", + "description": "Toggle whether the route should calculate the Trailing APY Values", + "example": "false" + } + }, { "in": "header", "name": "X-API-Token", @@ -8202,6 +8306,36 @@ "description": "The cumulative APY from all tokens in this strategy", "example": 0.1 }, + "baseApy": { + "type": "number", + "description": "Base APY (from LST yield)", + "example": 0.1 + }, + "trailingApy7d": { + "type": "number", + "description": "7-day trailing APY values", + "example": 0.1 + }, + "trailingApy30d": { + "type": "number", + "description": "30-day trailing APY values", + "example": 0.1 + }, + "trailingApy3m": { + "type": "number", + "description": "3-month trailing APY values", + "example": 0.1 + }, + "trailingApy6m": { + "type": "number", + "description": "6-month trailing APY values", + "example": 0.1 + }, + "trailingApy1y": { + "type": "number", + "description": "1-year trailing APY values", + "example": 0.1 + }, "tokens": { "type": "array", "items": { @@ -8228,6 +8362,7 @@ "required": [ "strategyAddress", "apy", + "baseApy", "tokens" ] } @@ -10652,7 +10787,12 @@ "properties": { "aggregateApy": { "type": "number", - "description": "The sum of amount staked per strategy multiplied by the strategy apy for this staker", + "description": "The sum of amount staked per strategy multiplied by the strategy apy for this staker, combined with the nativeApy", + "example": 0.15 + }, + "nativeApy": { + "type": "number", + "description": "Native APY (from EigenLayer programmatic incentives)", "example": 0.1 }, "tokenAmounts": { @@ -10749,7 +10889,7 @@ }, "apy": { "type": "number", - "description": "The cumulative APY from all tokens in this strategy", + "description": "The cumulative APY for this strategy summed across all AVSs", "example": 0.1 }, "tokens": { @@ -10793,6 +10933,7 @@ }, "required": [ "aggregateApy", + "nativeApy", "tokenAmounts", "strategyApys", "avsApys" @@ -12932,6 +13073,121 @@ } } }, + "/rewards/programmatic-incentives": { + "get": { + "operationId": "getProgrammaticIncentives", + "summary": "Retrieve eigenlayer programmatic incentives data", + "description": "Returns base and aggregate APYs for EigenLayer strategies and estimated weekly EIGEN rewards.", + "tags": [ + "Rewards" + ], + "parameters": [ + { + "in": "query", + "name": "tokenAddresses", + "description": "Comma-separated token addresses (no quotes), like 0xec5...83,0x8c1...49", + "schema": { + "type": "string", + "description": "Comma-separated token addresses (no quotes), like 0xec5...83,0x8c1...49" + } + }, + { + "in": "query", + "name": "amounts", + "description": "Comma-separated raw amounts (no quotes), like 500000000000000000000,100000000000", + "schema": { + "type": "string", + "description": "Comma-separated raw amounts (no quotes), like 500000000000000000000,100000000000" + } + }, + { + "in": "header", + "name": "X-API-Token", + "description": "API Token for authentication", + "schema": { + "type": "string", + "description": "API Token for authentication" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "APY values for Eigen and LST strategies, and estimated EIGEN rewards if token holdings are provided.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "eigenStrategyApy": { + "type": "string", + "description": "APY from EIGEN strategy based on its share of EigenLayer programmatic incentives rewarded in EIGEN token.", + "example": "0.1" + }, + "ethAndLstStrategiesApy": { + "type": "string", + "description": "APY from ETH and LST strategies based on their share of EigenLayer programmatic incentives rewarded in EIGEN token.", + "example": "0.1" + }, + "aggregateApy": { + "type": "string", + "description": "Combined APY calculated based on user-supplied token holdings across all strategies.", + "example": "0.1" + }, + "totalWeeklyRewardsEigen": { + "type": "string", + "description": "Total estimated weekly EIGEN rewards (in wei) based on the user’s supplied token holdings.", + "example": "7388083376288200228" + }, + "weeklyRewardsEigen": { + "type": "object", + "properties": { + "eigenStrategy": { + "type": "string", + "description": "Estimated weekly EIGEN rewards (in wei) for the Eigen strategy, based on user token input.", + "example": "341906218829227306" + }, + "ethAndLstStrategies": { + "type": "string", + "description": "Estimated weekly EIGEN rewards (in wei) for ETH and LST strategies, based on user token input.", + "example": "7046177157458972922" + } + } + } + }, + "required": [ + "eigenStrategyApy", + "ethAndLstStrategiesApy", + "weeklyRewardsEigen" + ] + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "422": { + "$ref": "#/components/responses/422" + }, + "429": { + "$ref": "#/components/responses/429" + }, + "500": { + "$ref": "#/components/responses/500" + } + } + } + }, "/events/delegation": { "get": { "operationId": "getDelegationEvents", diff --git a/docs.json b/docs.json index c8bd977..9a02b6f 100644 --- a/docs.json +++ b/docs.json @@ -209,7 +209,8 @@ "group": "Rewards", "icon": "treasure-chest", "pages": [ - "api-reference/endpoint/rewards/retrieve-strategies-with-rewards" + "api-reference/endpoint/rewards/retrieve-strategies-with-rewards", + "api-reference/endpoint/rewards/retrieve-programmatic-incentives" ] }, {