{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/exactly/refs/heads/main/json-schema/reward-config.json", "title": "RewardConfig", "description": "Full reward distribution configuration for a market-reward token pair in the Exactly Protocol RewardsController, defining how EXA or esEXA tokens are distributed to depositors and borrowers.", "type": "object", "properties": { "market": { "type": "string", "description": "Address of the Market contract receiving this reward distribution", "pattern": "^0x[a-fA-F0-9]{40}$" }, "reward": { "type": "string", "description": "Address of the ERC-20 reward token (EXA or esEXA)", "pattern": "^0x[a-fA-F0-9]{40}$" }, "priceFeed": { "type": "string", "description": "Chainlink-compatible price feed address for the reward token, used to value rewards in USD", "pattern": "^0x[a-fA-F0-9]{40}$" }, "start": { "type": "integer", "description": "Unix timestamp when the reward distribution begins", "minimum": 0 }, "distributionPeriod": { "type": "integer", "description": "Duration of the distribution program in seconds", "minimum": 0 }, "targetDebt": { "type": "string", "description": "Target total borrow debt the program aims to incentivize, in underlying token wei" }, "totalDistribution": { "type": "string", "description": "Total reward tokens to be distributed over the entire program period, in reward token wei" }, "undistributedFactor": { "type": "string", "description": "Factor applied to undistributed rewards that accumulate when utilization is below target, scaled by 1e18" }, "flipSpeed": { "type": "string", "description": "Speed at which the deposit/borrow reward split adjusts toward the optimal ratio, scaled by 1e18" }, "compensationFactor": { "type": "string", "description": "Factor that compensates depositors when borrow activity is below target, scaled by 1e18" }, "transitionFactor": { "type": "string", "description": "Sigmoid curve factor controlling the smooth transition of reward allocation, scaled by 1e18" }, "borrowAllocationWeightFactor": { "type": "string", "description": "Weight factor applied to borrow-side reward allocation calculation, scaled by 1e18" }, "depositAllocationWeightAddend": { "type": "string", "description": "Addend applied to deposit-side reward allocation weight, scaled by 1e18" }, "depositAllocationWeightFactor": { "type": "string", "description": "Weight factor applied to deposit-side reward allocation calculation, scaled by 1e18" } }, "required": ["market", "reward", "start", "distributionPeriod", "totalDistribution"] }