openapi: 3.0.0 info: version: 1.0.0 title: Angle Allowances Helpers API description: API to track the Angle Protocol state servers: - url: https://api.angle.money tags: - name: Helpers paths: /v1/incentives: get: summary: Get earning opportunities description: Return data related to earning opportunities for a given user. tags: - Helpers parameters: - $ref: '#/components/parameters/optionalUser' - name: isTest in: query description: Optional flag to get Rinkeby data schema: type: boolean responses: '200': description: Mapping between a staking contract address (used as a key) and its data (like description, APR, links, ...) content: application/json: schema: $ref: '#/components/schemas/incentives' /v1/app: get: summary: Get tokens and prices description: Return data about tokens at stake in the Angle Protocol (price, icon, decimals etc) tags: - Helpers responses: '200': description: Maps token addresses on the requested chain to their associated data and returns a list of pairs of tokens identified by their name with their price (in USD). content: application/json: schema: type: object properties: tokens: $ref: '#/components/schemas/tokens' prices: $ref: '#/components/schemas/prices' /v1/prices: get: summary: Get prices description: Return prices for tokens used by the Angle Protocol. tags: - Helpers responses: '200': description: List of pairs of tokens identified by their name with their price (in USD). content: application/json: schema: $ref: '#/components/schemas/prices' /v1/simulate: get: summary: Simulate Transaction description: Simulate a transaction based on provided parameters and return the Tenderly url. tags: - Helpers parameters: - $ref: '#/components/parameters/requiredChainId' - in: query name: from schema: type: string description: The address of the sender. required: true - in: query name: to schema: type: string description: The address of the recipient. required: true - in: query name: data schema: type: string description: The transaction data. required: true - in: query name: value schema: type: string description: The transaction value. required: true responses: '200': description: Successful response content: application/json: schema: type: string /v1/simulate/multicall: get: summary: Multicall simulation description: Execute multiple transactions in a single request and return the Tenderly url. tags: - Helpers parameters: - in: query name: calls schema: type: array items: $ref: '#/components/schemas/callObject' description: Array of call objects containing details of each call. required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/multicallResponse' components: schemas: tokens: type: object additionalProperties: type: object properties: name: type: string description: Token name address: type: string description: Token address decimals: type: number description: ERC20 decimals symbol: type: string description: Token symbol useInSwap: type: boolean description: Whether this token is used in Angle swaps hasPermit: type: boolean description: Whether the token supports permit permitVersion: type: string description: Permit version, otherwise '-1' logoURI: type: string description: Logo URI tags: type: array items: type: string description: Token tags incentives: type: object additionalProperties: type: object properties: address: type: string description: Address of the staking contract name: type: string description: Name of the farm deprecated: type: boolean description: Whether the farm is deprecated or not underlyingToken: type: object properties: balances: type: string description: Balance of the user of the underlying staking token allowance: type: string description: Allowance of the user for the underlying staking token to the staking contract address: type: string description: Address of the token to stake base: type: number description: Base of the staking token rewardTokens: type: array items: type: object properties: symbol: type: string description: Symbol of the reward token address: type: string description: Address of the reward token amount: type: number network: type: number description: Network where the incentive is given platform: type: string description: Platform where staking is taking place icon: type: string description: Icon of the staking platform tvl: type: number description: TVL in the staking contract deposit: type: object properties: amount: type: string description: User deposited amount usdValue: type: number description: USD value of the user amount in the farm apr: type: object properties: details: type: object value: type: number description: Value of the APR prices: type: array items: type: object properties: token: type: string description: Token symbol rate: type: number description: Token price (in USD) callObject: type: object properties: chainId: type: number data: type: string from: type: string to: type: string value: type: string pattern: ^[0-9A-Fa-f]+$ multicallResponse: type: object properties: transfers: type: array items: type: object url: type: string parameters: requiredChainId: in: query name: chainId description: Chain requested required: true schema: type: integer examples: Ethereum: value: 1 Polygon: value: 137 Optimism: value: 10 Arbitrum: value: 42161 Avalanche: value: 43114 optionalUser: name: user in: query description: User blockchain `address` (optional) required: false schema: type: string example: '0xa116f421ff82A9704428259fd8CC63347127B777' securitySchemes: BasicAuth: type: http scheme: basic