mirror of
https://github.com/trezor/trezor-suite.git
synced 2026-03-05 06:55:13 +01:00
5482 lines
218 KiB
YAML
5482 lines
218 KiB
YAML
openapi: 3.0.0
|
||
paths:
|
||
/v1/yields:
|
||
get:
|
||
operationId: YieldsController_getYields
|
||
summary: List all yield opportunities
|
||
description: >-
|
||
Retrieve a paginated list of available yield opportunities across all
|
||
supported networks and protocols.
|
||
parameters:
|
||
- name: offset
|
||
required: false
|
||
in: query
|
||
description: Offset for pagination
|
||
example: 0
|
||
schema:
|
||
minimum: 0
|
||
default: 0
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: Number of items per page
|
||
example: 20
|
||
schema:
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
type: number
|
||
- name: network
|
||
required: false
|
||
in: query
|
||
description: Filter by network
|
||
schema:
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
type: string
|
||
- name: chainId
|
||
required: false
|
||
in: query
|
||
description: 'Filter by EVM chain ID (Ethereum: 1, Polygon: 137)'
|
||
example: '1'
|
||
schema:
|
||
type: string
|
||
- name: networks
|
||
required: false
|
||
in: query
|
||
description: Filter by multiple networks (comma separated)
|
||
schema:
|
||
type: string
|
||
- name: yieldId
|
||
required: false
|
||
in: query
|
||
example: optimism-usdt-aave-v3-lending
|
||
schema:
|
||
maxLength: 200
|
||
type: string
|
||
- name: yieldIds
|
||
required: false
|
||
in: query
|
||
example:
|
||
- optimism-usdt-aave-v3-lending
|
||
schema:
|
||
maxItems: 100
|
||
maxLength: 200
|
||
type: array
|
||
items:
|
||
type: string
|
||
- name: type
|
||
required: false
|
||
in: query
|
||
description: Filter by yield type
|
||
schema:
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- lending
|
||
- vault
|
||
- fixed_yield
|
||
- real_world_asset
|
||
- concentrated_liquidity_pool
|
||
- liquidity_pool
|
||
type: string
|
||
- name: types
|
||
required: false
|
||
in: query
|
||
description: Filter by multiple yield types (comma separated)
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- lending
|
||
- vault
|
||
- fixed_yield
|
||
- real_world_asset
|
||
- concentrated_liquidity_pool
|
||
- liquidity_pool
|
||
- name: hasCooldownPeriod
|
||
required: false
|
||
in: query
|
||
description: Filter by cooldown period
|
||
example: true
|
||
schema:
|
||
type: boolean
|
||
- name: hasWarmupPeriod
|
||
required: false
|
||
in: query
|
||
description: Filter by warmup period
|
||
example: true
|
||
schema:
|
||
type: boolean
|
||
- name: token
|
||
required: false
|
||
in: query
|
||
description: Filter by token symbol or address
|
||
schema:
|
||
type: string
|
||
- name: inputToken
|
||
required: false
|
||
in: query
|
||
description: Filter by input token symbol or address
|
||
schema:
|
||
type: string
|
||
- name: inputTokens
|
||
required: false
|
||
in: query
|
||
description: Filter by multiple input token symbol or address (comma separated)
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- name: provider
|
||
required: false
|
||
in: query
|
||
description: Filter by provider ID
|
||
schema:
|
||
type: string
|
||
- name: providers
|
||
required: false
|
||
in: query
|
||
description: Filter by multiple provider IDs (comma separated)
|
||
schema:
|
||
type: array
|
||
items:
|
||
type: string
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: Search by yield name
|
||
schema:
|
||
type: string
|
||
- name: sort
|
||
required: false
|
||
in: query
|
||
description: Sort by yield status
|
||
schema:
|
||
enum:
|
||
- statusEnterAsc
|
||
- statusEnterDesc
|
||
- statusExitAsc
|
||
- statusExitDesc
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: Returns a paginated list of yield opportunities
|
||
content:
|
||
application/json:
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/PaginatedResponseDto'
|
||
- properties:
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/YieldDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/v1/yields/balances:
|
||
post:
|
||
operationId: YieldsController_getAggregateBalances
|
||
summary: Get balances across multiple yields and networks
|
||
description: >-
|
||
Retrieve balances for multiple wallet addresses across different
|
||
networks and yield opportunities. Send an array of balance requests -
|
||
each request can specify a yieldId (optional for chain scanning),
|
||
address, network, and custom arguments. This is the same format as the
|
||
single yield balance endpoint but in array form. Duplicate requests
|
||
(same yieldId + address + network) are automatically deduplicated, with
|
||
specific yield requests taking precedence over chain scans.
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
description: >-
|
||
Request containing an array of balance queries. Each query contains:
|
||
yieldId (optional), address (required), network (required), and
|
||
arguments (optional). When yieldId is omitted, all yields for that
|
||
network will be scanned. You can mix chain scans with specific yield
|
||
queries - duplicates are automatically deduplicated with specific
|
||
queries taking precedence.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/BalancesRequestDto'
|
||
responses:
|
||
'200':
|
||
description: >-
|
||
Returns balances grouped by yield with detailed error information
|
||
for failed yields. Only yields with non-zero balances are included
|
||
in the response.
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/BalancesResponseDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Portfolio
|
||
/v1/yields/{yieldId}:
|
||
get:
|
||
operationId: YieldsController_getYield
|
||
summary: Get yield metadata
|
||
description: >-
|
||
Retrieve detailed information about a specific yield opportunity
|
||
including APY, tokens, protocol details, and more.
|
||
parameters:
|
||
- name: yieldId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the yield
|
||
example: ethereum-eth-lido-staking
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: >-
|
||
Returns yield metadata including network, APR, TVL, and token
|
||
information
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/YieldDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/v1/yields/{yieldId}/risk:
|
||
get:
|
||
operationId: YieldsController_getYieldRisk
|
||
summary: Get risk metadata for a yield
|
||
description: Retrieve risk metadata associated with a specific yield.
|
||
parameters:
|
||
- name: yieldId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the yield
|
||
example: ethereum-eth-lido-staking
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: Risk metadata retrieved successfully
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/RiskParameterDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Risk
|
||
/v1/yields/{yieldId}/balances:
|
||
post:
|
||
operationId: YieldsController_getYieldBalances
|
||
summary: Get balances for a specific yield
|
||
description: >-
|
||
Retrieve all balances associated with a yield opportunity for a specific
|
||
wallet address, including active, pending, claimable, and withdrawable
|
||
balances. The network is automatically determined from the yield
|
||
configuration.
|
||
parameters:
|
||
- name: yieldId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the yield opportunity
|
||
example: ethereum-eth-lido-staking
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
description: >-
|
||
Balance request with address and optional arguments for advanced
|
||
balance queries
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/YieldBalancesRequestDto'
|
||
responses:
|
||
'200':
|
||
description: >-
|
||
Returns balance information including different balance types
|
||
(active, entering, exiting, withdrawable, claimable, locked) with
|
||
amounts and available actions
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/YieldBalancesDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Portfolio
|
||
/v1/yields/{yieldId}/validators:
|
||
get:
|
||
operationId: YieldsController_getYieldValidators
|
||
summary: Get yield validators
|
||
description: >-
|
||
Retrieve a paginated list of validators available for staking or
|
||
delegation for this yield opportunity.
|
||
parameters:
|
||
- name: yieldId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the yield
|
||
example: cosmos-staking
|
||
schema:
|
||
type: string
|
||
- name: offset
|
||
required: false
|
||
in: query
|
||
description: Offset for pagination
|
||
example: 0
|
||
schema:
|
||
minimum: 0
|
||
default: 0
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: Number of items per page
|
||
example: 20
|
||
schema:
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
type: number
|
||
- name: name
|
||
required: false
|
||
in: query
|
||
description: Filter by validator name (case-insensitive, partial match)
|
||
schema:
|
||
type: string
|
||
- name: address
|
||
required: false
|
||
in: query
|
||
description: Filter by validator address
|
||
schema:
|
||
type: string
|
||
- name: provider
|
||
required: false
|
||
in: query
|
||
description: Filter by provider ID
|
||
schema:
|
||
type: string
|
||
- name: status
|
||
required: false
|
||
in: query
|
||
description: Filter by validator status
|
||
schema:
|
||
type: string
|
||
- name: preferred
|
||
required: false
|
||
in: query
|
||
description: Filter by preferred flag
|
||
schema:
|
||
type: boolean
|
||
responses:
|
||
'200':
|
||
description: >-
|
||
Returns paginated list of available validators with detailed
|
||
information
|
||
content:
|
||
application/json:
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/PaginatedResponseDto'
|
||
- properties:
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ValidatorDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/v1/actions:
|
||
get:
|
||
operationId: ActionsController_getActions
|
||
summary: Get user actions
|
||
description: >-
|
||
Retrieve all actions performed by a user, with optional filtering by
|
||
yield, status, category, etc. In the future, this may include
|
||
personalized action recommendations.
|
||
parameters:
|
||
- name: offset
|
||
required: false
|
||
in: query
|
||
description: Offset for pagination
|
||
example: 0
|
||
schema:
|
||
minimum: 0
|
||
default: 0
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: Maximum number of items to return
|
||
example: 20
|
||
schema:
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
type: number
|
||
- name: address
|
||
required: true
|
||
in: query
|
||
description: User wallet address to get actions for
|
||
example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
|
||
schema:
|
||
type: string
|
||
- name: status
|
||
required: false
|
||
in: query
|
||
description: Filter actions by status
|
||
schema:
|
||
enum:
|
||
- pending
|
||
- completed
|
||
- failed
|
||
type: string
|
||
- name: intent
|
||
required: false
|
||
in: query
|
||
description: Filter actions by intent
|
||
schema:
|
||
enum:
|
||
- enter
|
||
- exit
|
||
- manage
|
||
type: string
|
||
- name: type
|
||
required: false
|
||
in: query
|
||
description: Filter by action type
|
||
schema:
|
||
enum:
|
||
- STAKE
|
||
- UNSTAKE
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- RESTAKE
|
||
- CLAIM_UNSTAKED
|
||
- UNLOCK_LOCKED
|
||
- STAKE_LOCKED
|
||
- VOTE
|
||
- REVOKE
|
||
- VOTE_LOCKED
|
||
- REVOTE
|
||
- REBOND
|
||
- MIGRATE
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- DELEGATE
|
||
type: string
|
||
- name: yieldId
|
||
required: false
|
||
in: query
|
||
description: Filter actions by specific yield
|
||
example: ethereum-eth-lido-staking
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: Returns a paginated list of user actions
|
||
content:
|
||
application/json:
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/PaginatedResponseDto'
|
||
- properties:
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ActionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/actions/{actionId}:
|
||
get:
|
||
operationId: ActionsController_getAction
|
||
summary: Get action details
|
||
description: >-
|
||
Retrieve detailed information about a specific action including current
|
||
status, transactions, and execution details.
|
||
parameters:
|
||
- name: actionId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the action
|
||
example: action_123abc
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: Action details retrieved successfully
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Action not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/actions/enter:
|
||
post:
|
||
operationId: ActionsController_enterYield
|
||
summary: Enter a yield
|
||
description: >-
|
||
Generate the transactions needed to enter a yield position with the
|
||
provided parameters.
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateActionDto'
|
||
responses:
|
||
'201':
|
||
description: Returns action with array of transactions to execute
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'403':
|
||
description: Access denied due to geolocation restrictions
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Access denied from US (US-CA)
|
||
error:
|
||
type: string
|
||
example: Forbidden
|
||
statusCode:
|
||
type: number
|
||
example: 403
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/actions/exit:
|
||
post:
|
||
operationId: ActionsController_exitYield
|
||
summary: Exit a yield
|
||
description: >-
|
||
Generate the transactions needed to exit a yield position with the
|
||
provided parameters.
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateActionDto'
|
||
responses:
|
||
'201':
|
||
description: Returns action with array of transactions to execute
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'403':
|
||
description: Access denied due to geolocation restrictions
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Access denied from US (US-CA)
|
||
error:
|
||
type: string
|
||
example: Forbidden
|
||
statusCode:
|
||
type: number
|
||
example: 403
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/actions/manage:
|
||
post:
|
||
operationId: ActionsController_manageYield
|
||
summary: Manage a yield
|
||
description: >-
|
||
Generate the transactions needed to perform management actions on a
|
||
yield position.
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateManageActionDto'
|
||
responses:
|
||
'201':
|
||
description: Returns action with array of transactions to execute
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ActionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'403':
|
||
description: Access denied due to geolocation restrictions
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Access denied from US (US-CA)
|
||
error:
|
||
type: string
|
||
example: Forbidden
|
||
statusCode:
|
||
type: number
|
||
example: 403
|
||
'404':
|
||
description: Yield not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/transactions/{transactionId}/submit-hash:
|
||
put:
|
||
operationId: TransactionsController_submitTransactionHash
|
||
summary: Submit transaction hash
|
||
description: >-
|
||
Submit the transaction hash after broadcasting a transaction to the
|
||
blockchain. This updates the transaction status and enables tracking.
|
||
parameters:
|
||
- name: transactionId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the transaction
|
||
example: 21f5fd15-cf80-4b9a-804f-062c40dc3740
|
||
schema: {}
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SubmitHashDto'
|
||
responses:
|
||
'200':
|
||
description: Transaction successfully updated with hash
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/TransactionDto'
|
||
'400':
|
||
description: Invalid transaction hash format
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Transaction not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/transactions/{transactionId}/submit:
|
||
post:
|
||
operationId: TransactionsController_submitTransaction
|
||
summary: Submit transaction
|
||
description: Submit the transaction to the blockchain.
|
||
parameters:
|
||
- name: transactionId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the transaction
|
||
example: 21f5fd15-cf80-4b9a-804f-062c40dc3740
|
||
schema: {}
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SubmitTransactionDto'
|
||
responses:
|
||
'200':
|
||
description: Transaction successfully submitted
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/TransactionDto'
|
||
'400':
|
||
description: Invalid transaction format
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Transaction not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/transactions/{transactionId}:
|
||
get:
|
||
operationId: TransactionsController_getTransaction
|
||
summary: Get transaction details
|
||
description: >-
|
||
Retrieve detailed information about a specific transaction including
|
||
current status, hash, and execution details.
|
||
parameters:
|
||
- name: transactionId
|
||
required: true
|
||
in: path
|
||
description: The unique identifier of the transaction
|
||
example: 21f5fd15-cf80-4b9a-804f-062c40dc3740
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: Transaction details retrieved successfully
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/TransactionDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'404':
|
||
description: Transaction not found with the specified ID
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Actions
|
||
/v1/networks:
|
||
get:
|
||
operationId: NetworksController_getNetworks
|
||
summary: List all available networks
|
||
description: >-
|
||
Retrieve a list of all supported networks that can be used for filtering
|
||
yields and other operations.
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: Returns a list of all available networks
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/NetworkDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/v1/providers:
|
||
get:
|
||
operationId: ProvidersController_getProviders
|
||
summary: Get all providers
|
||
description: >-
|
||
Returns a paginated list of all providers, including both protocol and
|
||
validator providers.
|
||
parameters:
|
||
- name: offset
|
||
required: false
|
||
in: query
|
||
description: Offset for pagination
|
||
example: 0
|
||
schema:
|
||
minimum: 0
|
||
default: 0
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: Number of items per page
|
||
example: 20
|
||
schema:
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
type: number
|
||
responses:
|
||
'200':
|
||
description: List of providers
|
||
content:
|
||
application/json:
|
||
schema:
|
||
allOf:
|
||
- $ref: '#/components/schemas/PaginatedResponseDto'
|
||
- properties:
|
||
items:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ProviderDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/v1/providers/{providerId}:
|
||
get:
|
||
operationId: ProvidersController_getProvider
|
||
summary: Get provider by ID
|
||
description: Returns detailed information about a specific provider.
|
||
parameters:
|
||
- name: providerId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: Provider details
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ProviderDto'
|
||
'400':
|
||
description: Invalid request parameters
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Validation failed
|
||
error:
|
||
type: string
|
||
example: Bad Request
|
||
statusCode:
|
||
type: number
|
||
example: 400
|
||
'401':
|
||
description: Invalid or missing API key
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Invalid API key
|
||
error:
|
||
type: string
|
||
example: Unauthorized
|
||
statusCode:
|
||
type: number
|
||
example: 401
|
||
'429':
|
||
description: Rate limit exceeded
|
||
headers:
|
||
x-ratelimit-limit:
|
||
description: Request limit per window
|
||
schema:
|
||
type: string
|
||
x-ratelimit-remaining:
|
||
description: Remaining requests (will be 0)
|
||
schema:
|
||
type: string
|
||
x-ratelimit-reset:
|
||
description: Unix timestamp when window resets
|
||
schema:
|
||
type: string
|
||
retry-after:
|
||
description: Seconds to wait before retrying
|
||
schema:
|
||
type: string
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Rate limit exceeded
|
||
error:
|
||
type: string
|
||
example: Too Many Requests
|
||
statusCode:
|
||
type: number
|
||
example: 429
|
||
retryAfter:
|
||
type: number
|
||
example: 30
|
||
'500':
|
||
description: Internal server error
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
message:
|
||
type: string
|
||
example: Internal server error
|
||
error:
|
||
type: string
|
||
example: Internal Server Error
|
||
statusCode:
|
||
type: number
|
||
example: 500
|
||
security:
|
||
- ApiKey: []
|
||
tags:
|
||
- Discovery
|
||
/health:
|
||
get:
|
||
operationId: HealthController_health
|
||
summary: Health check
|
||
description: Get the health status of the yield API with current timestamp
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: Health check status with timestamp
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/HealthStatusDto'
|
||
tags:
|
||
- Health
|
||
info:
|
||
title: Yield.xyz API
|
||
description: API Documentation
|
||
version: '1.0'
|
||
contact: {}
|
||
tags:
|
||
- name: Discovery
|
||
description: Browse and discover yield opportunities, networks, and providers
|
||
- name: Portfolio
|
||
description: User-specific balances, activity, and rewards
|
||
- name: Actions
|
||
description: Generate transactions to enter, exit, and manage yields
|
||
servers:
|
||
- url: https://api.yield.xyz
|
||
description: Production environment
|
||
components:
|
||
securitySchemes:
|
||
ApiKey:
|
||
type: apiKey
|
||
in: header
|
||
name: x-api-key
|
||
schemas:
|
||
TokenDto:
|
||
type: object
|
||
properties:
|
||
symbol:
|
||
type: string
|
||
description: Token symbol
|
||
example: ETH
|
||
name:
|
||
type: string
|
||
description: Token name
|
||
example: Ethereum
|
||
decimals:
|
||
type: number
|
||
description: Token decimal places
|
||
example: 18
|
||
network:
|
||
type: string
|
||
description: Token network
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
example: Ethereum
|
||
address:
|
||
type: string
|
||
description: Token address (if applicable)
|
||
example: 0x...
|
||
logoURI:
|
||
type: string
|
||
description: Token logo URI
|
||
example: https://...
|
||
isPoints:
|
||
type: boolean
|
||
description: Token is points
|
||
example: true
|
||
coinGeckoId:
|
||
type: string
|
||
description: Token CoinGecko ID
|
||
example: ethereum
|
||
required:
|
||
- symbol
|
||
- name
|
||
- decimals
|
||
- network
|
||
RewardDto:
|
||
type: object
|
||
properties:
|
||
rate:
|
||
type: number
|
||
description: Reward rate as a decimal (e.g. 0.04 = 4%)
|
||
example: 0.04
|
||
rateType:
|
||
type: string
|
||
description: Whether this rate is APR or APY
|
||
example: APR
|
||
token:
|
||
description: Token received as reward
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
yieldSource:
|
||
type: string
|
||
description: Structured source of yield (e.g. staking, protocol incentive)
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- protocol_incentive
|
||
- points
|
||
- lending_interest
|
||
- mev
|
||
- real_world_asset_yield
|
||
- vault
|
||
example: protocol_incentive
|
||
description:
|
||
type: string
|
||
description: Optional human-readable description of this reward
|
||
example: LDO distributed to incentivize stETH adoption via Lido Boost
|
||
required:
|
||
- rate
|
||
- rateType
|
||
- token
|
||
- yieldSource
|
||
RewardRateDto:
|
||
type: object
|
||
properties:
|
||
total:
|
||
type: number
|
||
description: Estimated reward rate across all sources (e.g. staking, points)
|
||
example: 6.5
|
||
rateType:
|
||
type: string
|
||
description: Whether this reward rate is APR or APY
|
||
example: APR
|
||
components:
|
||
description: Breakdown of reward rates by source
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/RewardDto'
|
||
required:
|
||
- total
|
||
- rateType
|
||
- components
|
||
YieldStatisticsDto:
|
||
type: object
|
||
properties:
|
||
tvlUsd:
|
||
type: string
|
||
description: Total value locked in USD
|
||
example: 1,200,000
|
||
nullable: true
|
||
tvl:
|
||
type: string
|
||
description: Total value locked in primary underlying token
|
||
example: '500.25'
|
||
nullable: true
|
||
tvlRaw:
|
||
type: string
|
||
description: Raw total value locked (full precision)
|
||
example: '500250000000000000000'
|
||
nullable: true
|
||
uniqueUsers:
|
||
type: number
|
||
description: Number of users with active positions in the yield
|
||
example: 348
|
||
nullable: true
|
||
averagePositionSizeUsd:
|
||
type: string
|
||
description: Average position size in USD
|
||
example: 3,448.27
|
||
nullable: true
|
||
averagePositionSize:
|
||
type: string
|
||
description: Average position size in primary underlying token
|
||
example: '1.44'
|
||
nullable: true
|
||
YieldRiskExponentialDto:
|
||
type: object
|
||
properties:
|
||
poolRating:
|
||
type: object
|
||
description: Exponential pool rating
|
||
poolScore:
|
||
type: object
|
||
description: Exponential pool score (1-5)
|
||
ratingDescription:
|
||
type: object
|
||
description: Exponential rating description
|
||
url:
|
||
type: object
|
||
description: Exponential pool URL
|
||
YieldRiskCredoraDto:
|
||
type: object
|
||
properties:
|
||
rating:
|
||
type: object
|
||
description: Credora rating
|
||
score:
|
||
type: object
|
||
description: Credora score (1-5)
|
||
psl:
|
||
type: object
|
||
description: Probability of Significant Loss (annualized)
|
||
publishDate:
|
||
type: object
|
||
description: Credora publish date
|
||
curator:
|
||
type: object
|
||
description: Credora curator name
|
||
YieldRiskDto:
|
||
type: object
|
||
properties:
|
||
updatedAt:
|
||
type: string
|
||
description: Risk data last update timestamp
|
||
exponentialFi:
|
||
$ref: '#/components/schemas/YieldRiskExponentialDto'
|
||
credora:
|
||
$ref: '#/components/schemas/YieldRiskCredoraDto'
|
||
required:
|
||
- updatedAt
|
||
YieldStatusDto:
|
||
type: object
|
||
properties:
|
||
enter:
|
||
type: boolean
|
||
description: Whether the user can currently enter this yield
|
||
example: true
|
||
exit:
|
||
type: boolean
|
||
description: Whether the user can currently exit this yield
|
||
example: true
|
||
required:
|
||
- enter
|
||
- exit
|
||
ERCStandards:
|
||
type: string
|
||
description: Supported standards for this yield
|
||
enum:
|
||
- ERC20
|
||
- ERC4626
|
||
- ERC721
|
||
- ERC1155
|
||
YieldMetadataDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Display name of the yield opportunity
|
||
example: Lido Staking
|
||
logoURI:
|
||
type: string
|
||
description: Yield opportunity logo URI
|
||
example: https://lido.fi/logo.png
|
||
description:
|
||
type: string
|
||
description: >-
|
||
Markdown-supported short description of this yield opportunity,
|
||
including where rewards come from.
|
||
example: >-
|
||
Stake ETH with Lido to earn auto-compounding validator rewards via
|
||
stETH.
|
||
documentation:
|
||
type: string
|
||
description: Link to documentation or integration guide
|
||
example: https://docs.lido.fi
|
||
underMaintenance:
|
||
type: boolean
|
||
description: Whether this yield is currently under maintenance
|
||
example: false
|
||
deprecated:
|
||
type: boolean
|
||
description: Whether this yield is deprecated and will be discontinued
|
||
example: false
|
||
supportedStandards:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ERCStandards'
|
||
required:
|
||
- name
|
||
- logoURI
|
||
- description
|
||
- documentation
|
||
- underMaintenance
|
||
- deprecated
|
||
- supportedStandards
|
||
YieldType:
|
||
type: string
|
||
description: Type of yield mechanism (staking, restaking, LP, vault, etc.)
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- lending
|
||
- vault
|
||
- fixed_yield
|
||
- real_world_asset
|
||
- concentrated_liquidity_pool
|
||
- liquidity_pool
|
||
RewardSchedule:
|
||
type: string
|
||
description: How often rewards are distributed (e.g. continuously, epoch-based)
|
||
enum:
|
||
- block
|
||
- hour
|
||
- day
|
||
- week
|
||
- month
|
||
- era
|
||
- epoch
|
||
- campaign
|
||
RewardClaiming:
|
||
type: string
|
||
description: 'How rewards are claimed: auto, manual, or mixed'
|
||
enum:
|
||
- auto
|
||
- manual
|
||
TimePeriodDto:
|
||
type: object
|
||
properties:
|
||
seconds:
|
||
type: number
|
||
description: Duration in seconds
|
||
example: 86400
|
||
required:
|
||
- seconds
|
||
YieldFeeDto:
|
||
type: object
|
||
properties:
|
||
deposit:
|
||
type: string
|
||
description: Deposit fee percentage
|
||
example: '0.00'
|
||
withdrawal:
|
||
type: string
|
||
description: Withdrawal fee percentage
|
||
example: '0.00'
|
||
management:
|
||
type: string
|
||
description: Management fee percentage (annual)
|
||
example: '2.00'
|
||
performance:
|
||
type: string
|
||
description: Performance fee percentage
|
||
example: '20.00'
|
||
YieldEntryLimitsDto:
|
||
type: object
|
||
properties:
|
||
minimum:
|
||
type: string
|
||
description: >-
|
||
Minimum amount required to enter this yield in token units (null if
|
||
no minimum)
|
||
example: '0.01'
|
||
nullable: true
|
||
maximum:
|
||
type: string
|
||
description: >-
|
||
Maximum amount allowed to enter this yield in token units (null if
|
||
no limit)
|
||
example: '1000.0'
|
||
nullable: true
|
||
required:
|
||
- minimum
|
||
- maximum
|
||
ArgumentFieldDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Field name
|
||
enum:
|
||
- amount
|
||
- amounts
|
||
- validatorAddress
|
||
- validatorAddresses
|
||
- receiverAddress
|
||
- providerId
|
||
- duration
|
||
- inputToken
|
||
- inputTokenNetwork
|
||
- outputToken
|
||
- outputTokenNetwork
|
||
- subnetId
|
||
- tronResource
|
||
- feeConfigurationId
|
||
- cosmosPubKey
|
||
- tezosPubKey
|
||
- cAddressBech
|
||
- pAddressBech
|
||
- executionMode
|
||
- ledgerWalletApiCompatible
|
||
- useMaxAmount
|
||
- useInstantExecution
|
||
- rangeMin
|
||
- rangeMax
|
||
- percentage
|
||
- tokenId
|
||
example: amount
|
||
type:
|
||
type: string
|
||
description: Field type
|
||
example: string
|
||
enum:
|
||
- string
|
||
- number
|
||
- address
|
||
- enum
|
||
- boolean
|
||
label:
|
||
type: string
|
||
description: Field label
|
||
example: Amount to Enter
|
||
description:
|
||
type: string
|
||
description: Field description
|
||
required:
|
||
type: boolean
|
||
description: Whether the field is required
|
||
example: true
|
||
options:
|
||
description: Options for enum fields
|
||
example:
|
||
- individual
|
||
- batched
|
||
type: array
|
||
items:
|
||
type: string
|
||
optionsRef:
|
||
type: string
|
||
description: Reference to API endpoint that provides options dynamically
|
||
example: /api/v1/validators?integrationId=eth-lido
|
||
default:
|
||
type: object
|
||
description: Default value for the field
|
||
placeholder:
|
||
type: string
|
||
description: Placeholder text for the field
|
||
minimum:
|
||
type: string
|
||
description: Minimum allowed value for number fields (null if no minimum)
|
||
example: '1.0'
|
||
nullable: true
|
||
maximum:
|
||
type: string
|
||
description: Maximum allowed value for number fields (null if no maximum)
|
||
example: '100.0'
|
||
nullable: true
|
||
isArray:
|
||
type: boolean
|
||
description: Whether the field is an array
|
||
example: false
|
||
required:
|
||
- name
|
||
- type
|
||
- label
|
||
ArgumentSchemaDto:
|
||
type: object
|
||
properties:
|
||
fields:
|
||
description: List of argument fields
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ArgumentFieldDto'
|
||
notes:
|
||
type: string
|
||
description: Notes or instructions for these arguments
|
||
required:
|
||
- fields
|
||
YieldMechanicsArgumentsDto:
|
||
type: object
|
||
properties:
|
||
enter:
|
||
$ref: '#/components/schemas/ArgumentSchemaDto'
|
||
exit:
|
||
$ref: '#/components/schemas/ArgumentSchemaDto'
|
||
manage:
|
||
type: object
|
||
description: >-
|
||
Manage action schemas. Each yield supports different ActionTypes
|
||
(CLAIM_UNSTAKED, CLAIM_REWARDS, etc.). Keys are ActionTypes enum
|
||
values.
|
||
additionalProperties:
|
||
$ref: '#/components/schemas/ArgumentSchemaDto'
|
||
balance:
|
||
description: >-
|
||
Arguments for the balances endpoint (e.g., alternative addresses,
|
||
chain-specific fields)
|
||
allOf:
|
||
- $ref: '#/components/schemas/ArgumentSchemaDto'
|
||
PossibleFeeTakingMechanismsDto:
|
||
type: object
|
||
properties:
|
||
depositFee:
|
||
type: boolean
|
||
description: User can take (earn) a deposit fee
|
||
example: false
|
||
managementFee:
|
||
type: boolean
|
||
description: User can take (earn) a management fee
|
||
example: false
|
||
performanceFee:
|
||
type: boolean
|
||
description: User can take (earn) a performance fee
|
||
example: false
|
||
validatorRebates:
|
||
type: boolean
|
||
description: User can take (earn) validator rebates
|
||
example: false
|
||
required:
|
||
- depositFee
|
||
- managementFee
|
||
- performanceFee
|
||
- validatorRebates
|
||
YieldMechanicsDto:
|
||
type: object
|
||
properties:
|
||
type:
|
||
$ref: '#/components/schemas/YieldType'
|
||
requiresValidatorSelection:
|
||
type: boolean
|
||
description: Indicates whether this yield requires validator selection
|
||
example: true
|
||
rewardSchedule:
|
||
$ref: '#/components/schemas/RewardSchedule'
|
||
rewardClaiming:
|
||
$ref: '#/components/schemas/RewardClaiming'
|
||
gasFeeToken:
|
||
description: Token used for gas fees (typically native)
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
lockupPeriod:
|
||
description: Lockup period - minimum time before exit can be initiated
|
||
allOf:
|
||
- $ref: '#/components/schemas/TimePeriodDto'
|
||
cooldownPeriod:
|
||
description: Cooldown period required before exit is allowed
|
||
allOf:
|
||
- $ref: '#/components/schemas/TimePeriodDto'
|
||
warmupPeriod:
|
||
description: Warmup period before rewards start accruing
|
||
allOf:
|
||
- $ref: '#/components/schemas/TimePeriodDto'
|
||
fee:
|
||
description: >-
|
||
Fees charged to the user for this yield (e.g., deposit, management,
|
||
performance).
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldFeeDto'
|
||
entryLimits:
|
||
description: Entry amount limits for this yield
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldEntryLimitsDto'
|
||
supportsLedgerWalletApi:
|
||
type: boolean
|
||
description: Supports Ledger Wallet API (connect via Ledger Live)
|
||
extraTransactionFormatsSupported:
|
||
type: array
|
||
description: Additional transaction formats supported (e.g. safe, batch)
|
||
items:
|
||
type: string
|
||
enum:
|
||
- raw
|
||
- default
|
||
arguments:
|
||
description: Arguments required for each action (enter, exit, manage, etc.)
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldMechanicsArgumentsDto'
|
||
possibleFeeTakingMechanisms:
|
||
description: >-
|
||
Possible fee-taking mechanisms for the user or integrator (i.e.,
|
||
what fees the user/integrator can potentially earn from this yield).
|
||
allOf:
|
||
- $ref: '#/components/schemas/PossibleFeeTakingMechanismsDto'
|
||
required:
|
||
- type
|
||
- rewardSchedule
|
||
- rewardClaiming
|
||
- gasFeeToken
|
||
PricePerShareStateDto:
|
||
type: object
|
||
properties:
|
||
price:
|
||
type: number
|
||
description: >-
|
||
Price per share for the yield (e.g., LP token price, vault share
|
||
price)
|
||
example: 1.05
|
||
shareToken:
|
||
description: Share token (the token you own shares of)
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
quoteToken:
|
||
description: Quote token (the token the price is denominated in)
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
required:
|
||
- price
|
||
- shareToken
|
||
- quoteToken
|
||
ConcentratedLiquidityPoolStateDto:
|
||
type: object
|
||
properties:
|
||
baseApr:
|
||
type: number
|
||
description: Full-range trading APR (24h or rolling)
|
||
example: 0.12
|
||
price:
|
||
type: number
|
||
description: Current mid-price from the AMM (token1 per token0)
|
||
example: 3950.42
|
||
tickSpacing:
|
||
type: number
|
||
description: Tick spacing required so UI can snap ranges
|
||
example: 50
|
||
minTick:
|
||
type: number
|
||
description: Minimum tick bound for the pool
|
||
example: -887272
|
||
maxTick:
|
||
type: number
|
||
description: Maximum tick bound for the pool
|
||
example: 887272
|
||
volume24hUsd:
|
||
type: number
|
||
description: 24-hour trading volume in USD
|
||
example: 149550871.99
|
||
nullable: true
|
||
fee24hUsd:
|
||
type: number
|
||
description: 24-hour fees earned by LPs in USD
|
||
example: 14955.09
|
||
nullable: true
|
||
tvlUsd:
|
||
type: number
|
||
description: Total value locked in USD
|
||
example: 9213550.2
|
||
nullable: true
|
||
feeTier:
|
||
type: number
|
||
description: Pool fee tier as a decimal (e.g., 0.0005 for 0.05%)
|
||
example: 0.0005
|
||
baseToken:
|
||
description: Base token (token0)
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
quoteToken:
|
||
description: Quote token (token1)
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
required:
|
||
- baseApr
|
||
- price
|
||
- tickSpacing
|
||
- minTick
|
||
- maxTick
|
||
- volume24hUsd
|
||
- fee24hUsd
|
||
- tvlUsd
|
||
- feeTier
|
||
- baseToken
|
||
- quoteToken
|
||
CapacityDto:
|
||
type: object
|
||
properties:
|
||
current:
|
||
type: string
|
||
description: Current total assets in the yield
|
||
max:
|
||
type: string
|
||
nullable: true
|
||
description: Maximum capacity of the yield
|
||
remaining:
|
||
type: string
|
||
nullable: true
|
||
description: Remaining capacity available for deposits
|
||
required:
|
||
- current
|
||
AllocationRewardRateDto:
|
||
type: object
|
||
properties:
|
||
total:
|
||
type: number
|
||
description: Total reward rate
|
||
example: 5.25
|
||
rateType:
|
||
type: string
|
||
description: Whether this rate is APR or APY
|
||
example: APY
|
||
required:
|
||
- total
|
||
- rateType
|
||
AllocationDto:
|
||
type: object
|
||
properties:
|
||
address:
|
||
type: string
|
||
description: Contract address of the underlying strategy
|
||
example: '0x1234567890abcdef1234567890abcdef12345678'
|
||
network:
|
||
type: string
|
||
description: Network the underlying strategy is on
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
example: base
|
||
name:
|
||
type: string
|
||
description: Display name of the underlying strategy
|
||
example: Morpho Moonwell USDC
|
||
yieldId:
|
||
type: string
|
||
description: >-
|
||
Yield ID if this strategy is supported as a separate yield
|
||
opportunity
|
||
example: base-usdc-morpho-moonwell-usdc
|
||
providerId:
|
||
type: string
|
||
description: Provider ID for this strategy (e.g., morpho, aave, lido)
|
||
example: morpho
|
||
allocation:
|
||
type: string
|
||
description: Amount allocated to this strategy in input token units
|
||
example: '50000.00'
|
||
allocationUsd:
|
||
type: string
|
||
description: USD value of the allocation
|
||
example: '50000.00'
|
||
nullable: true
|
||
weight:
|
||
type: number
|
||
description: Current weight of this strategy as a percentage (0-100)
|
||
example: 50.5
|
||
targetWeight:
|
||
type: number
|
||
description: Target weight of this strategy as a percentage (0-100)
|
||
example: 50
|
||
rewardRate:
|
||
description: Reward rate of the underlying strategy
|
||
nullable: true
|
||
allOf:
|
||
- $ref: '#/components/schemas/AllocationRewardRateDto'
|
||
tvl:
|
||
type: string
|
||
description: Total value locked in the underlying strategy in input token units
|
||
example: '500.25'
|
||
nullable: true
|
||
tvlUsd:
|
||
type: string
|
||
description: Total value locked in USD for the underlying strategy
|
||
example: '10000000.00'
|
||
nullable: true
|
||
maxCapacity:
|
||
type: string
|
||
description: Maximum capacity of the underlying strategy
|
||
example: '1000000.00'
|
||
nullable: true
|
||
remainingCapacity:
|
||
type: string
|
||
description: Remaining capacity in the underlying strategy
|
||
example: '500000.00'
|
||
nullable: true
|
||
required:
|
||
- address
|
||
- network
|
||
- name
|
||
- allocation
|
||
- allocationUsd
|
||
- weight
|
||
- targetWeight
|
||
- rewardRate
|
||
- tvl
|
||
- tvlUsd
|
||
- maxCapacity
|
||
- remainingCapacity
|
||
YieldStateDto:
|
||
type: object
|
||
properties:
|
||
pricePerShareState:
|
||
description: Price per share state metadata
|
||
allOf:
|
||
- $ref: '#/components/schemas/PricePerShareStateDto'
|
||
concentratedLiquidityPoolState:
|
||
description: Concentrated liquidity pool state metadata
|
||
allOf:
|
||
- $ref: '#/components/schemas/ConcentratedLiquidityPoolStateDto'
|
||
capacityState:
|
||
description: Capacity state metadata
|
||
allOf:
|
||
- $ref: '#/components/schemas/CapacityDto'
|
||
allocations:
|
||
description: >-
|
||
Allocations to underlying strategies for vault yields (e.g., OAV,
|
||
Morpho). Includes allocation, APY, TVL, and capacity per strategy.
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/AllocationDto'
|
||
YieldDto:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Unique identifier for this yield opportunity
|
||
example: ethereum-eth-lido-staking
|
||
network:
|
||
type: string
|
||
description: Network this yield opportunity is on
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
chainId:
|
||
type: string
|
||
description: EVM chain ID for this network (only for EVM networks)
|
||
example: '1'
|
||
inputTokens:
|
||
description: Accepted input tokens (auto-converted as needed)
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/TokenDto'
|
||
outputToken:
|
||
description: Token received from the protocol
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
token:
|
||
description: Canonical deposit token - used for balances
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
tokens:
|
||
description: Canonical deposit tokens - used for balances
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/TokenDto'
|
||
rewardRate:
|
||
description: Total effective yield broken down by source and token.
|
||
allOf:
|
||
- $ref: '#/components/schemas/RewardRateDto'
|
||
statistics:
|
||
description: Key statistics and analytics for this yield opportunity
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldStatisticsDto'
|
||
risk:
|
||
description: Risk scores and provider ratings for this yield
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldRiskDto'
|
||
status:
|
||
description: Current availability of user actions like enter, exit, claim
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldStatusDto'
|
||
metadata:
|
||
description: >-
|
||
Descriptive metadata including name, logo, description, and
|
||
documentation
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldMetadataDto'
|
||
mechanics:
|
||
description: Operational mechanics including constraints, fees, and capabilities
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldMechanicsDto'
|
||
providerId:
|
||
type: string
|
||
description: The provider ID this yield belongs to
|
||
example: lido
|
||
tags:
|
||
description: Optional tags for filtering or categorization
|
||
example:
|
||
- restaking
|
||
- ETH
|
||
- LST
|
||
type: array
|
||
items:
|
||
type: string
|
||
state:
|
||
description: >-
|
||
Dynamic, real-time protocol-level state values that affect entering
|
||
or exiting a yield (e.g., pool price, capacity, price per share,
|
||
liquidity, queue depth)
|
||
allOf:
|
||
- $ref: '#/components/schemas/YieldStateDto'
|
||
required:
|
||
- id
|
||
- network
|
||
- inputTokens
|
||
- token
|
||
- tokens
|
||
- rewardRate
|
||
- status
|
||
- metadata
|
||
- mechanics
|
||
- providerId
|
||
BalanceType:
|
||
type: string
|
||
description: Type of balance
|
||
enum:
|
||
- active
|
||
- entering
|
||
- exiting
|
||
- withdrawable
|
||
- claimable
|
||
- locked
|
||
PendingActionDto:
|
||
type: object
|
||
properties:
|
||
intent:
|
||
type: string
|
||
description: High-level action intent
|
||
enum:
|
||
- enter
|
||
- manage
|
||
- exit
|
||
example: manage
|
||
type:
|
||
type: string
|
||
description: Specific action type
|
||
enum:
|
||
- STAKE
|
||
- UNSTAKE
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- RESTAKE
|
||
- CLAIM_UNSTAKED
|
||
- UNLOCK_LOCKED
|
||
- STAKE_LOCKED
|
||
- VOTE
|
||
- REVOKE
|
||
- VOTE_LOCKED
|
||
- REVOTE
|
||
- REBOND
|
||
- MIGRATE
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- DELEGATE
|
||
example: CLAIM_REWARDS
|
||
passthrough:
|
||
type: string
|
||
description: >-
|
||
Server-generated passthrough that must be included when executing
|
||
the action
|
||
example: eyJhZGRyZXNzZXMiOnsiYWRkcmVzcyI6ImNvc21vczF5ZXk...
|
||
arguments:
|
||
description: Argument schema required to execute this action
|
||
nullable: true
|
||
allOf:
|
||
- $ref: '#/components/schemas/ArgumentSchemaDto'
|
||
amount:
|
||
type: string
|
||
description: Amount involved in the action
|
||
example: '0.1'
|
||
nullable: true
|
||
required:
|
||
- intent
|
||
- type
|
||
- passthrough
|
||
RevShareDetailsDto:
|
||
type: object
|
||
properties:
|
||
minRevShare:
|
||
type: number
|
||
description: Minimum revenue share percentage (0-1)
|
||
example: 0.3
|
||
maxRevShare:
|
||
type: number
|
||
description: Maximum revenue share percentage (0-1)
|
||
example: 0.7
|
||
required:
|
||
- minRevShare
|
||
- maxRevShare
|
||
RevShareTiersDto:
|
||
type: object
|
||
properties:
|
||
trial:
|
||
description: Trial tier revenue share details
|
||
allOf:
|
||
- $ref: '#/components/schemas/RevShareDetailsDto'
|
||
standard:
|
||
description: Standard tier revenue share details
|
||
allOf:
|
||
- $ref: '#/components/schemas/RevShareDetailsDto'
|
||
pro:
|
||
description: Pro tier revenue share details
|
||
allOf:
|
||
- $ref: '#/components/schemas/RevShareDetailsDto'
|
||
ValidatorProviderDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Provider name
|
||
example: Morpho
|
||
id:
|
||
type: string
|
||
description: Provider ID
|
||
example: morpho
|
||
logoURI:
|
||
type: string
|
||
description: Provider logo URI
|
||
example: https://morpho.xyz/logo.png
|
||
description:
|
||
type: string
|
||
description: Short description of the provider
|
||
example: A peer-to-peer DeFi lending protocol
|
||
website:
|
||
type: string
|
||
description: Provider website
|
||
example: https://morpho.xyz
|
||
tvlUsd:
|
||
type: object
|
||
description: Total TVL across the entire provider in USD
|
||
example: 10,200,000
|
||
nullable: true
|
||
type:
|
||
type: string
|
||
description: Type of provider (protocol or validator provider)
|
||
enum:
|
||
- protocol
|
||
- validator_provider
|
||
example: protocol
|
||
references:
|
||
description: Optional social/media references or audit links
|
||
nullable: true
|
||
type: array
|
||
items:
|
||
type: string
|
||
rank:
|
||
type: number
|
||
description: Provider ranking (lower numbers indicate higher preference)
|
||
example: 1
|
||
preferred:
|
||
type: boolean
|
||
description: Whether this provider is marked as preferred
|
||
example: true
|
||
revshare:
|
||
description: Revenue sharing details by tier
|
||
example:
|
||
standard:
|
||
minRevShare: 0.3
|
||
maxRevShare: 0.7
|
||
pro:
|
||
minRevShare: 0.4
|
||
maxRevShare: 0.8
|
||
allOf:
|
||
- $ref: '#/components/schemas/RevShareTiersDto'
|
||
uniqueId:
|
||
type: string
|
||
description: Provider ID (deprecated, use `id` instead)
|
||
example: luganodes
|
||
deprecated: true
|
||
createdAt:
|
||
format: date-time
|
||
type: string
|
||
description: Creation timestamp (deprecated)
|
||
deprecated: true
|
||
updatedAt:
|
||
format: date-time
|
||
type: string
|
||
description: Last update timestamp (deprecated)
|
||
deprecated: true
|
||
required:
|
||
- name
|
||
- id
|
||
- logoURI
|
||
- description
|
||
- website
|
||
- tvlUsd
|
||
- type
|
||
- rank
|
||
- preferred
|
||
ValidatorDto:
|
||
type: object
|
||
properties:
|
||
address:
|
||
type: string
|
||
description: Validator address or ID
|
||
example: cosmosvaloper1abc...
|
||
name:
|
||
type: string
|
||
description: Validator display name
|
||
example: StakeKit Validator
|
||
logoURI:
|
||
type: string
|
||
description: Validator logo URI
|
||
example: https://stakekit.com/logo.png
|
||
website:
|
||
type: string
|
||
description: Link to validator website
|
||
example: https://stakekit.com
|
||
rewardRate:
|
||
description: >-
|
||
Detailed reward rate breakdown by source (emissions, MEV, fees,
|
||
etc.)
|
||
example:
|
||
total: 8.4
|
||
rateType: APR
|
||
components:
|
||
- rate: 6.8
|
||
rateType: APR
|
||
token:
|
||
symbol: SOL
|
||
name: Solana
|
||
yieldSource: staking
|
||
description: Solana network inflation rewards
|
||
- rate: 1.2
|
||
rateType: APR
|
||
token:
|
||
symbol: SOL
|
||
name: Solana
|
||
yieldSource: validator_commission
|
||
description: Transaction fees from processed transactions
|
||
- rate: 0.4
|
||
rateType: APR
|
||
token:
|
||
symbol: SOL
|
||
name: Solana
|
||
yieldSource: mev
|
||
description: MEV from Jito block space auctions
|
||
allOf:
|
||
- $ref: '#/components/schemas/RewardRateDto'
|
||
provider:
|
||
description: Provider information for this validator
|
||
allOf:
|
||
- $ref: '#/components/schemas/ValidatorProviderDto'
|
||
commission:
|
||
type: number
|
||
description: Commission rate charged by validator
|
||
example: 0.05
|
||
tvlUsd:
|
||
type: string
|
||
description: Total value locked with this validator in USD
|
||
example: 18,340,000
|
||
tvl:
|
||
type: string
|
||
description: Total value locked with this validator in native token
|
||
example: '8250.45'
|
||
tvlRaw:
|
||
type: string
|
||
description: Raw total value locked with this validator (full precision)
|
||
example: '8250450000000000000000'
|
||
votingPower:
|
||
type: number
|
||
description: Validator's voting power share (0–1)
|
||
example: 0.013
|
||
preferred:
|
||
type: boolean
|
||
description: Whether this validator is flagged as preferred
|
||
example: true
|
||
minimumStake:
|
||
type: string
|
||
description: Minimum stake allowed in native token
|
||
example: '1.0'
|
||
remainingPossibleStake:
|
||
type: string
|
||
description: Maximum available stake before hitting cap in native token
|
||
example: 285,714.28
|
||
remainingSlots:
|
||
type: number
|
||
description: Number of remaining nominator/delegator slots (for capped chains)
|
||
example: 8
|
||
nominatorCount:
|
||
type: number
|
||
description: Number of current nominators
|
||
example: 321
|
||
status:
|
||
type: string
|
||
description: Validator status description (active, jailed, unbonding, etc.)
|
||
example: active
|
||
providerId:
|
||
type: string
|
||
description: ID of the provider backing this validator
|
||
example: provider-1
|
||
pricePerShare:
|
||
type: string
|
||
description: Price per share of the validator
|
||
example: '1.0'
|
||
subnetId:
|
||
type: number
|
||
description: Subnet ID
|
||
example: 1
|
||
subnetName:
|
||
type: string
|
||
description: Subnet name
|
||
example: Apex
|
||
marketCap:
|
||
type: string
|
||
description: Market cap of the subnet
|
||
example: '1000000'
|
||
tokenSymbol:
|
||
type: string
|
||
description: Token symbol of the subnet
|
||
example: α
|
||
required:
|
||
- address
|
||
BalanceDto:
|
||
type: object
|
||
properties:
|
||
address:
|
||
type: string
|
||
description: User wallet address that owns this balance
|
||
example: 0x1234...
|
||
type:
|
||
$ref: '#/components/schemas/BalanceType'
|
||
amount:
|
||
type: string
|
||
description: Balance amount in underlying token
|
||
example: '2.625'
|
||
amountRaw:
|
||
type: string
|
||
description: Raw balance amount (full precision)
|
||
example: '2625000000000000000'
|
||
date:
|
||
format: date-time
|
||
type: string
|
||
description: Date relevant to this balance state
|
||
nullable: true
|
||
example: '2025-04-23T08:00:00Z'
|
||
feeConfigurationId:
|
||
type: string
|
||
description: Fee configuration ID (if applicable)
|
||
example: fee-config-1
|
||
pendingActions:
|
||
description: Pending actions for this balance
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/PendingActionDto'
|
||
token:
|
||
description: Token used for balance amounts
|
||
allOf:
|
||
- $ref: '#/components/schemas/TokenDto'
|
||
validator:
|
||
description: Validator information (if applicable)
|
||
nullable: true
|
||
allOf:
|
||
- $ref: '#/components/schemas/ValidatorDto'
|
||
validators:
|
||
description: >-
|
||
Multiple validators information (when balance is distributed across
|
||
multiple validators)
|
||
nullable: true
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/ValidatorDto'
|
||
amountUsd:
|
||
type: string
|
||
description: Value of the balance in USD
|
||
example: 2,500.00
|
||
nullable: true
|
||
isEarning:
|
||
type: boolean
|
||
description: Whether this balance is currently earning rewards
|
||
example: true
|
||
priceRange:
|
||
type: object
|
||
description: >-
|
||
Price range for concentrated liquidity positions in
|
||
tokens[1]/tokens[0] format (e.g., if tokens[0]=WETH and
|
||
tokens[1]=USDC, then priceRange represents USDC/WETH)
|
||
example:
|
||
min: '2700'
|
||
max: '3310'
|
||
tokenId:
|
||
type: string
|
||
description: >-
|
||
NFT token ID for liquidity positions (e.g., PancakeSwap V3 position
|
||
NFT ID)
|
||
example: '12345'
|
||
required:
|
||
- address
|
||
- type
|
||
- amount
|
||
- amountRaw
|
||
- pendingActions
|
||
- token
|
||
- isEarning
|
||
YieldBalancesDto:
|
||
type: object
|
||
properties:
|
||
yieldId:
|
||
type: string
|
||
description: Unique identifier of the yield
|
||
example: ethereum-eth-lido-staking
|
||
balances:
|
||
description: List of balances for this yield
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/BalanceDto'
|
||
outputTokenBalance:
|
||
description: Balance for the output token
|
||
nullable: true
|
||
allOf:
|
||
- $ref: '#/components/schemas/BalanceDto'
|
||
required:
|
||
- yieldId
|
||
- balances
|
||
YieldErrorDto:
|
||
type: object
|
||
properties:
|
||
yieldId:
|
||
type: string
|
||
description: Unique identifier of the yield that failed
|
||
example: ethereum-compound-usdc
|
||
error:
|
||
type: string
|
||
description: Error message describing what went wrong
|
||
example: 'Failed to fetch data from blockchain: RPC timeout'
|
||
required:
|
||
- yieldId
|
||
- error
|
||
BalancesResponseDto:
|
||
type: object
|
||
properties:
|
||
items:
|
||
description: Successful yield balance results
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/YieldBalancesDto'
|
||
errors:
|
||
description: Errors encountered while fetching balances
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/YieldErrorDto'
|
||
required:
|
||
- items
|
||
- errors
|
||
Networks:
|
||
type: string
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
GetBalancesArgumentsDto:
|
||
type: object
|
||
properties:
|
||
cAddressBech:
|
||
type: string
|
||
description: Avalanche C-chain address
|
||
example: 0x123...
|
||
pAddressBech:
|
||
type: string
|
||
description: Avalanche P-chain address
|
||
example: P-avax1...
|
||
BalancesQueryDto:
|
||
type: object
|
||
properties:
|
||
yieldId:
|
||
type: string
|
||
description: The unique identifier of the yield (optional for chain scanning)
|
||
example: ethereum-eth-lido-staking
|
||
address:
|
||
type: string
|
||
description: User wallet address to check balances for
|
||
example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
|
||
network:
|
||
example: ethereum
|
||
$ref: '#/components/schemas/Networks'
|
||
arguments:
|
||
description: Arguments for balance queries
|
||
allOf:
|
||
- $ref: '#/components/schemas/GetBalancesArgumentsDto'
|
||
required:
|
||
- address
|
||
- network
|
||
BalancesRequestDto:
|
||
type: object
|
||
properties:
|
||
queries:
|
||
description: Array of balance queries
|
||
example:
|
||
- yieldId: ethereum-eth-lido-staking
|
||
address: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
|
||
network: ethereum
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/BalancesQueryDto'
|
||
required:
|
||
- queries
|
||
YieldBalancesRequestDto:
|
||
type: object
|
||
properties:
|
||
address:
|
||
type: string
|
||
description: User wallet address to check balances for
|
||
example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
|
||
arguments:
|
||
description: Optional arguments for advanced or protocol-specific balance queries
|
||
allOf:
|
||
- $ref: '#/components/schemas/GetBalancesArgumentsDto'
|
||
required:
|
||
- address
|
||
ValidatorQueryDto:
|
||
type: object
|
||
properties:
|
||
offset:
|
||
type: number
|
||
description: Offset for pagination
|
||
default: 0
|
||
minimum: 0
|
||
example: 0
|
||
limit:
|
||
type: number
|
||
description: Maximum number of items to return
|
||
default: 20
|
||
minimum: 1
|
||
maximum: 100
|
||
example: 20
|
||
name:
|
||
type: string
|
||
description: Filter by validator name (case-insensitive, partial match)
|
||
address:
|
||
type: string
|
||
description: Filter by validator address
|
||
provider:
|
||
type: string
|
||
description: Filter by provider ID
|
||
status:
|
||
type: string
|
||
description: Filter by validator status
|
||
preferred:
|
||
type: boolean
|
||
description: Filter by preferred flag
|
||
TransactionDto:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Unique transaction identifier
|
||
example: tx_123abc
|
||
title:
|
||
type: string
|
||
description: Display title for the transaction
|
||
example: Approve USDC
|
||
network:
|
||
type: string
|
||
description: Network this transaction is for
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
example: ethereum
|
||
status:
|
||
type: string
|
||
description: Current status of the transaction
|
||
enum:
|
||
- NOT_FOUND
|
||
- CREATED
|
||
- BLOCKED
|
||
- WAITING_FOR_SIGNATURE
|
||
- SIGNED
|
||
- BROADCASTED
|
||
- PENDING
|
||
- CONFIRMED
|
||
- FAILED
|
||
- SKIPPED
|
||
example: PENDING
|
||
type:
|
||
type: string
|
||
description: Type of transaction operation
|
||
enum:
|
||
- SWAP
|
||
- DEPOSIT
|
||
- APPROVAL
|
||
- STAKE
|
||
- CLAIM_UNSTAKED
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- UNSTAKE
|
||
- SPLIT
|
||
- MERGE
|
||
- LOCK
|
||
- UNLOCK
|
||
- SUPPLY
|
||
- ADD_LIQUIDITY
|
||
- REMOVE_LIQUIDITY
|
||
- BRIDGE
|
||
- VOTE
|
||
- REVOKE
|
||
- RESTAKE
|
||
- REBOND
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- CREATE_ACCOUNT
|
||
- REVEAL
|
||
- MIGRATE
|
||
- DELEGATE
|
||
- UNDELEGATE
|
||
- UTXO_P_TO_C_IMPORT
|
||
- UTXO_C_TO_P_IMPORT
|
||
- WRAP
|
||
- UNWRAP
|
||
- UNFREEZE_LEGACY
|
||
- UNFREEZE_LEGACY_BANDWIDTH
|
||
- UNFREEZE_LEGACY_ENERGY
|
||
- UNFREEZE_BANDWIDTH
|
||
- UNFREEZE_ENERGY
|
||
- FREEZE_BANDWIDTH
|
||
- FREEZE_ENERGY
|
||
- UNDELEGATE_BANDWIDTH
|
||
- UNDELEGATE_ENERGY
|
||
- P2P_NODE_REQUEST
|
||
- CREATE_EIGENPOD
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- START_CHECKPOINT
|
||
- VERIFY_CHECKPOINT_PROOFS
|
||
- QUEUE_WITHDRAWALS
|
||
- COMPLETE_QUEUED_WITHDRAWALS
|
||
- LZ_DEPOSIT
|
||
- LZ_WITHDRAW
|
||
- LUGANODES_PROVISION
|
||
- LUGANODES_EXIT_REQUEST
|
||
- INFSTONES_PROVISION
|
||
- INFSTONES_EXIT_REQUEST
|
||
- INFSTONES_CLAIM_REQUEST
|
||
example: STAKE
|
||
hash:
|
||
type: string
|
||
description: Transaction hash (available after broadcast)
|
||
nullable: true
|
||
example: 0x1234567890abcdef...
|
||
createdAt:
|
||
format: date-time
|
||
type: string
|
||
description: When the transaction was created
|
||
broadcastedAt:
|
||
format: date-time
|
||
type: string
|
||
description: When the transaction was broadcasted to the network
|
||
nullable: true
|
||
signedTransaction:
|
||
type: string
|
||
description: Signed transaction data (ready for broadcast)
|
||
nullable: true
|
||
unsignedTransaction:
|
||
description: The unsigned transaction data to be signed by the wallet
|
||
oneOf:
|
||
- type: string
|
||
description: Serialized transaction data
|
||
- type: object
|
||
description: Transaction object (for non-EVM chains)
|
||
nullable: true
|
||
example: >-
|
||
0x02f87082012a022f2f83018000947a250d5630b4cf539739df2c5dacb4c659f2488d880de0b6b3a764000080c080a0ef0de6c7b46fc75dd6cb86dccc3cfd731c2bdf6f3d736557240c3646c6fe01a6a07cd60b58dfe01847249dfdd7950ba0d045dded5bbe410b07a015a0ed34e5e00d
|
||
annotatedTransaction:
|
||
type: object
|
||
description: Human-readable breakdown of the transaction for display purposes
|
||
nullable: true
|
||
example:
|
||
method: stake
|
||
inputs:
|
||
amount: '1000000000000000000'
|
||
structuredTransaction:
|
||
type: object
|
||
description: Detailed transaction data for client-side validation or simulation
|
||
nullable: true
|
||
stepIndex:
|
||
type: number
|
||
description: Zero-based index of the step in the action flow
|
||
example: 0
|
||
description:
|
||
type: string
|
||
description: User-friendly description of what this transaction does
|
||
example: Approve USDC for staking
|
||
error:
|
||
type: string
|
||
description: Error message if the transaction failed
|
||
nullable: true
|
||
gasEstimate:
|
||
type: string
|
||
description: Estimated gas cost for the transaction
|
||
example: '21000'
|
||
explorerUrl:
|
||
type: string
|
||
description: Link to the blockchain explorer for this transaction
|
||
nullable: true
|
||
example: https://etherscan.io/tx/0x1234...
|
||
isMessage:
|
||
type: boolean
|
||
description: Whether this transaction is a message rather than a value transfer
|
||
example: false
|
||
required:
|
||
- id
|
||
- title
|
||
- network
|
||
- status
|
||
- type
|
||
- hash
|
||
- createdAt
|
||
- broadcastedAt
|
||
- signedTransaction
|
||
- unsignedTransaction
|
||
ActionArgumentsDto:
|
||
type: object
|
||
properties:
|
||
amount:
|
||
type: string
|
||
description: Amount to stake/unstake
|
||
example: '1000000000000000000'
|
||
amounts:
|
||
description: Amounts to stake/unstake
|
||
example:
|
||
- '1000000000000000000'
|
||
- '2000000000000000000'
|
||
type: array
|
||
items:
|
||
type: string
|
||
validatorAddress:
|
||
type: string
|
||
description: Validator address for single validator selection
|
||
example: cosmosvaloper1...
|
||
validatorAddresses:
|
||
description: Multiple validator addresses
|
||
example:
|
||
- cosmosvaloper1...
|
||
- cosmosvaloper2...
|
||
type: array
|
||
items:
|
||
type: string
|
||
providerId:
|
||
type: string
|
||
description: Provider ID for Ethereum native staking
|
||
example: kiln
|
||
duration:
|
||
type: number
|
||
description: Duration for Avalanche native staking (in seconds)
|
||
example: 1209600
|
||
inputToken:
|
||
type: string
|
||
description: >-
|
||
Token for deposits. Use "0x" for native token or provide the token
|
||
address. For cross-chain deposits, also provide inputTokenNetwork.
|
||
example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
|
||
inputTokenNetwork:
|
||
type: string
|
||
description: >-
|
||
Network for the input token. Required for cross-chain deposits when
|
||
the token is on a different network than the vault.
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
outputToken:
|
||
type: string
|
||
description: >-
|
||
Token for withdrawals. Use "0x" for native token or provide the
|
||
token address. For cross-chain withdrawals, also provide
|
||
outputTokenNetwork.
|
||
example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
|
||
outputTokenNetwork:
|
||
type: string
|
||
description: >-
|
||
Network for the output token. Required for cross-chain withdrawals
|
||
when the destination is on a different network than the vault.
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
subnetId:
|
||
type: number
|
||
description: Subnet ID for Bittensor staking
|
||
example: 1
|
||
tronResource:
|
||
type: string
|
||
description: Tron resource type for Tron staking
|
||
enum:
|
||
- BANDWIDTH
|
||
- ENERGY
|
||
feeConfigurationId:
|
||
type: string
|
||
description: Fee configuration ID for custom fee settings
|
||
example: custom-fee-config-1
|
||
cosmosPubKey:
|
||
type: string
|
||
description: Cosmos public key for Cosmos staking
|
||
example: cosmospub1...
|
||
tezosPubKey:
|
||
type: string
|
||
description: Tezos public key for Tezos staking
|
||
example: edpk...
|
||
cAddressBech:
|
||
type: string
|
||
description: Avalanche C-chain address
|
||
example: 0x123...
|
||
pAddressBech:
|
||
type: string
|
||
description: Avalanche P-chain address
|
||
example: P-avax1...
|
||
executionMode:
|
||
type: string
|
||
description: Transaction execution mode
|
||
enum:
|
||
- individual
|
||
- batched
|
||
example: individual
|
||
ledgerWalletApiCompatible:
|
||
type: boolean
|
||
description: >-
|
||
Transactions should have Ledger wallet API compatibility for
|
||
hardware wallet users
|
||
example: true
|
||
useMaxAmount:
|
||
type: boolean
|
||
description: Use max amount for ERC4626 withdraw
|
||
example: true
|
||
useInstantExecution:
|
||
type: boolean
|
||
description: Use instant execution for exit (faster but may have fees)
|
||
example: true
|
||
rangeMin:
|
||
type: string
|
||
description: >-
|
||
Minimum price bound for concentrated liquidity pools (as decimal
|
||
string). Must be non-negative (can be 0) and less than rangeMax.
|
||
example: '0.0'
|
||
rangeMax:
|
||
type: string
|
||
description: >-
|
||
Maximum price bound for concentrated liquidity pools (as decimal
|
||
string). Must be positive and greater than rangeMin.
|
||
example: '1.0'
|
||
percentage:
|
||
type: number
|
||
description: >-
|
||
Percentage of liquidity to exit (0-100). Required for partial exits
|
||
from liquidity positions.
|
||
example: 50
|
||
minimum: 0
|
||
maximum: 100
|
||
tokenId:
|
||
type: string
|
||
description: >-
|
||
NFT token ID for concentrated liquidity positions. Required for
|
||
exiting specific positions.
|
||
example: '12345'
|
||
ActionDto:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Unique action identifier
|
||
example: action_123abc
|
||
intent:
|
||
type: string
|
||
description: High-level action intent
|
||
enum:
|
||
- enter
|
||
- manage
|
||
- exit
|
||
example: manage
|
||
type:
|
||
type: string
|
||
description: Specific action type
|
||
enum:
|
||
- STAKE
|
||
- UNSTAKE
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- RESTAKE
|
||
- CLAIM_UNSTAKED
|
||
- UNLOCK_LOCKED
|
||
- STAKE_LOCKED
|
||
- VOTE
|
||
- REVOKE
|
||
- VOTE_LOCKED
|
||
- REVOTE
|
||
- REBOND
|
||
- MIGRATE
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- DELEGATE
|
||
example: CLAIM_REWARDS
|
||
yieldId:
|
||
type: string
|
||
description: Yield ID this action belongs to
|
||
example: ethereum-eth-lido-staking
|
||
address:
|
||
type: string
|
||
description: User wallet address
|
||
example: 0x1234...
|
||
amount:
|
||
type: string
|
||
description: Amount involved in the action
|
||
example: '1000000000000000000'
|
||
nullable: true
|
||
amountRaw:
|
||
type: string
|
||
description: Raw wei amount (full precision)
|
||
example: '1000000000000000000'
|
||
nullable: true
|
||
amountUsd:
|
||
type: string
|
||
description: USD value of the amount
|
||
example: '1500.50'
|
||
nullable: true
|
||
transactions:
|
||
description: Array of transactions for this action
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/TransactionDto'
|
||
executionPattern:
|
||
type: string
|
||
description: >-
|
||
Transaction execution pattern - synchronous (submit one by one, wait
|
||
for each), asynchronous (submit all at once), or batch (single
|
||
transaction with multiple operations)
|
||
enum:
|
||
- synchronous
|
||
- asynchronous
|
||
- batch
|
||
example: synchronous
|
||
rawArguments:
|
||
description: Raw arguments exactly as submitted by the user for this action
|
||
nullable: true
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionArgumentsDto'
|
||
createdAt:
|
||
format: date-time
|
||
type: string
|
||
description: When the action was created
|
||
completedAt:
|
||
format: date-time
|
||
type: string
|
||
description: When the action was completed
|
||
nullable: true
|
||
status:
|
||
type: string
|
||
description: Current status of the action
|
||
enum:
|
||
- CANCELED
|
||
- CREATED
|
||
- WAITING_FOR_NEXT
|
||
- PROCESSING
|
||
- FAILED
|
||
- SUCCESS
|
||
- STALE
|
||
required:
|
||
- id
|
||
- intent
|
||
- type
|
||
- yieldId
|
||
- address
|
||
- amount
|
||
- amountRaw
|
||
- amountUsd
|
||
- transactions
|
||
- executionPattern
|
||
- rawArguments
|
||
- createdAt
|
||
- completedAt
|
||
- status
|
||
PaginatedResponseDto:
|
||
type: object
|
||
properties:
|
||
total:
|
||
type: number
|
||
description: Total number of items available
|
||
example: 100
|
||
offset:
|
||
type: number
|
||
description: Offset of the current page
|
||
example: 0
|
||
limit:
|
||
type: number
|
||
description: Limit of the current page
|
||
example: 20
|
||
required:
|
||
- total
|
||
- offset
|
||
- limit
|
||
YieldQueryDto:
|
||
type: object
|
||
properties:
|
||
offset:
|
||
type: number
|
||
description: Offset for pagination
|
||
default: 0
|
||
minimum: 0
|
||
example: 0
|
||
limit:
|
||
type: number
|
||
description: Maximum number of items to return
|
||
default: 20
|
||
minimum: 1
|
||
maximum: 100
|
||
example: 20
|
||
network:
|
||
type: string
|
||
description: Filter by network
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
chainId:
|
||
type: string
|
||
description: 'Filter by EVM chain ID (Ethereum: 1, Polygon: 137, etc)'
|
||
example: '1'
|
||
networks:
|
||
type: string
|
||
description: Filter by multiple networks (comma separated)
|
||
yieldId:
|
||
type: string
|
||
example: optimism-usdt-aave-v3-lending
|
||
maxLength: 200
|
||
yieldIds:
|
||
example:
|
||
- optimism-usdt-aave-v3-lending
|
||
maxItems: 100
|
||
type: array
|
||
items:
|
||
type: string
|
||
maxLength: 200
|
||
type:
|
||
type: string
|
||
description: Filter by yield type
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- lending
|
||
- vault
|
||
- fixed_yield
|
||
- real_world_asset
|
||
- concentrated_liquidity_pool
|
||
- liquidity_pool
|
||
types:
|
||
type: array
|
||
description: Filter by multiple yield types (comma separated)
|
||
items:
|
||
type: string
|
||
enum:
|
||
- staking
|
||
- restaking
|
||
- lending
|
||
- vault
|
||
- fixed_yield
|
||
- real_world_asset
|
||
- concentrated_liquidity_pool
|
||
- liquidity_pool
|
||
hasCooldownPeriod:
|
||
type: boolean
|
||
description: Filter by cooldown period
|
||
hasWarmupPeriod:
|
||
type: boolean
|
||
description: Filter by warmup period
|
||
token:
|
||
type: string
|
||
description: Filter by token symbol or address
|
||
inputToken:
|
||
type: string
|
||
description: Filter by input token symbol or address
|
||
inputTokens:
|
||
description: Filter by multiple input token symbol or address (comma separated)
|
||
type: array
|
||
items:
|
||
type: string
|
||
provider:
|
||
type: string
|
||
description: Filter by provider ID
|
||
providers:
|
||
description: Filter by multiple provider IDs (comma separated)
|
||
type: array
|
||
items:
|
||
type: string
|
||
search:
|
||
type: string
|
||
description: Search by yield name
|
||
sort:
|
||
type: string
|
||
description: Sort by yield status
|
||
enum:
|
||
- statusEnterAsc
|
||
- statusEnterDesc
|
||
- statusExitAsc
|
||
- statusExitDesc
|
||
PaginationQueryDto:
|
||
type: object
|
||
properties:
|
||
offset:
|
||
type: number
|
||
description: Offset for pagination
|
||
default: 0
|
||
minimum: 0
|
||
example: 0
|
||
limit:
|
||
type: number
|
||
description: Maximum number of items to return
|
||
default: 20
|
||
minimum: 1
|
||
maximum: 100
|
||
example: 20
|
||
RiskParameterDto:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
category:
|
||
type: string
|
||
item:
|
||
type: string
|
||
isDynamic:
|
||
type: boolean
|
||
value:
|
||
type: object
|
||
network:
|
||
$ref: '#/components/schemas/Networks'
|
||
asset:
|
||
type: object
|
||
protocol:
|
||
type: object
|
||
integrationId:
|
||
type: object
|
||
createdAt:
|
||
format: date-time
|
||
type: string
|
||
updatedAt:
|
||
format: date-time
|
||
type: string
|
||
required:
|
||
- id
|
||
- category
|
||
- item
|
||
- isDynamic
|
||
- createdAt
|
||
- updatedAt
|
||
CreateActionDto:
|
||
type: object
|
||
properties:
|
||
yieldId:
|
||
type: string
|
||
description: Yield ID to perform the action on
|
||
example: ethereum-eth-lido-staking
|
||
address:
|
||
type: string
|
||
description: User wallet address
|
||
example: 0x1234...
|
||
arguments:
|
||
description: Arguments for the action
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionArgumentsDto'
|
||
required:
|
||
- yieldId
|
||
- address
|
||
CreateManageActionDto:
|
||
type: object
|
||
properties:
|
||
yieldId:
|
||
type: string
|
||
description: Yield ID to perform the action on
|
||
example: ethereum-eth-lido-staking
|
||
address:
|
||
type: string
|
||
description: User wallet address
|
||
example: 0x1234...
|
||
arguments:
|
||
description: Arguments for the action
|
||
allOf:
|
||
- $ref: '#/components/schemas/ActionArgumentsDto'
|
||
action:
|
||
type: string
|
||
description: Pending action type (required for manage actions)
|
||
enum:
|
||
- STAKE
|
||
- UNSTAKE
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- RESTAKE
|
||
- CLAIM_UNSTAKED
|
||
- UNLOCK_LOCKED
|
||
- STAKE_LOCKED
|
||
- VOTE
|
||
- REVOKE
|
||
- VOTE_LOCKED
|
||
- REVOTE
|
||
- REBOND
|
||
- MIGRATE
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- DELEGATE
|
||
example: CLAIM_REWARDS
|
||
passthrough:
|
||
type: string
|
||
description: >-
|
||
Server-generated passthrough from the balances endpoint (required
|
||
for manage actions)
|
||
example: eyJhZGRyZXNzZXMiOnsiYWRkcmVzcyI6ImNvc21vczF5ZXk...
|
||
required:
|
||
- yieldId
|
||
- address
|
||
- action
|
||
- passthrough
|
||
ActionsQueryDto:
|
||
type: object
|
||
properties:
|
||
offset:
|
||
type: number
|
||
description: Offset for pagination
|
||
default: 0
|
||
minimum: 0
|
||
example: 0
|
||
limit:
|
||
type: number
|
||
description: Maximum number of items to return
|
||
default: 20
|
||
minimum: 1
|
||
maximum: 100
|
||
example: 20
|
||
address:
|
||
type: string
|
||
description: User wallet address to filter actions for
|
||
example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
|
||
status:
|
||
type: string
|
||
description: Filter by action status
|
||
enum:
|
||
- CANCELED
|
||
- CREATED
|
||
- WAITING_FOR_NEXT
|
||
- PROCESSING
|
||
- FAILED
|
||
- SUCCESS
|
||
- STALE
|
||
intent:
|
||
type: string
|
||
description: Filter by action intent
|
||
enum:
|
||
- enter
|
||
- manage
|
||
- exit
|
||
type:
|
||
type: string
|
||
description: Filter by action type
|
||
enum:
|
||
- STAKE
|
||
- UNSTAKE
|
||
- CLAIM_REWARDS
|
||
- RESTAKE_REWARDS
|
||
- WITHDRAW
|
||
- WITHDRAW_ALL
|
||
- RESTAKE
|
||
- CLAIM_UNSTAKED
|
||
- UNLOCK_LOCKED
|
||
- STAKE_LOCKED
|
||
- VOTE
|
||
- REVOKE
|
||
- VOTE_LOCKED
|
||
- REVOTE
|
||
- REBOND
|
||
- MIGRATE
|
||
- VERIFY_WITHDRAW_CREDENTIALS
|
||
- DELEGATE
|
||
yieldId:
|
||
type: string
|
||
description: Filter by yield ID
|
||
example: ethereum-eth-lido-staking
|
||
required:
|
||
- address
|
||
SubmitHashDto:
|
||
type: object
|
||
properties:
|
||
hash:
|
||
type: string
|
||
description: Transaction hash from the blockchain
|
||
example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
|
||
required:
|
||
- hash
|
||
SubmitTransactionDto:
|
||
type: object
|
||
properties:
|
||
signedTransaction:
|
||
type: string
|
||
description: Encoded signed transaction to submit to the blockchain
|
||
example: >-
|
||
0aba010aa0010a232f636f736d6f732e7374616b696e672e763162657461312e4d736744656c656761746512790a2a696e6a316a61366664646e6e33727272677137646d6a757a6b71363279376d68346675346b6e656d37791231696e6a76616c6f7065723167346436646d766e706737773779756779366b706c6e6470376a70666d66336b7274736368701a180a03696e6a121131303030303030303030303030303030301215766961205374616b654b6974204349442d31303039129e010a7e0a740a2d2f696e6a6563746976652e63727970746f2e763162657461312e657468736563703235366b312e5075624b657912430a41042aec99dce37ea3d8f11b44da62bce0e885f0ba5b309382954babec76eb138cb0bb84f4f24b9f63143f2ce66923b2dd3ee55475e680a7b992b9cbc17941f6486312040a0208011802121c0a160a03696e6a120f31383732303030303030303030303010d0b4471a0b696e6a6563746976652d312092c35b
|
||
required:
|
||
- signedTransaction
|
||
NetworkDto:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: The network identifier
|
||
example: ethereum
|
||
enum:
|
||
- ethereum
|
||
- ethereum-goerli
|
||
- ethereum-holesky
|
||
- ethereum-sepolia
|
||
- ethereum-hoodi
|
||
- arbitrum
|
||
- base
|
||
- base-sepolia
|
||
- gnosis
|
||
- optimism
|
||
- polygon
|
||
- polygon-amoy
|
||
- starknet
|
||
- zksync
|
||
- linea
|
||
- unichain
|
||
- monad-testnet
|
||
- monad
|
||
- avalanche-c
|
||
- avalanche-c-atomic
|
||
- avalanche-p
|
||
- binance
|
||
- celo
|
||
- fantom
|
||
- harmony
|
||
- moonriver
|
||
- okc
|
||
- viction
|
||
- core
|
||
- sonic
|
||
- plasma
|
||
- katana
|
||
- hyperevm
|
||
- agoric
|
||
- akash
|
||
- axelar
|
||
- band-protocol
|
||
- bitsong
|
||
- canto
|
||
- chihuahua
|
||
- comdex
|
||
- coreum
|
||
- cosmos
|
||
- crescent
|
||
- cronos
|
||
- cudos
|
||
- desmos
|
||
- dydx
|
||
- evmos
|
||
- fetch-ai
|
||
- gravity-bridge
|
||
- injective
|
||
- irisnet
|
||
- juno
|
||
- kava
|
||
- ki-network
|
||
- mars-protocol
|
||
- nym
|
||
- okex-chain
|
||
- onomy
|
||
- osmosis
|
||
- persistence
|
||
- quicksilver
|
||
- regen
|
||
- secret
|
||
- sentinel
|
||
- sommelier
|
||
- stafi
|
||
- stargaze
|
||
- stride
|
||
- teritori
|
||
- tgrade
|
||
- umee
|
||
- sei
|
||
- mantra
|
||
- celestia
|
||
- saga
|
||
- zetachain
|
||
- dymension
|
||
- humansai
|
||
- neutron
|
||
- polkadot
|
||
- kusama
|
||
- westend
|
||
- bittensor
|
||
- aptos
|
||
- binancebeacon
|
||
- cardano
|
||
- near
|
||
- solana
|
||
- solana-devnet
|
||
- stellar
|
||
- stellar-testnet
|
||
- sui
|
||
- tezos
|
||
- tron
|
||
- ton
|
||
- ton-testnet
|
||
- hyperliquid
|
||
name:
|
||
type: string
|
||
description: Human-readable display name of the network
|
||
example: Ethereum
|
||
category:
|
||
type: string
|
||
description: The category of the network
|
||
example: evm
|
||
enum:
|
||
- evm
|
||
- cosmos
|
||
- substrate
|
||
- misc
|
||
logoURI:
|
||
type: string
|
||
description: Logo URI for the network
|
||
example: https://assets.stakek.it/networks/ethereum.svg
|
||
required:
|
||
- id
|
||
- name
|
||
- category
|
||
- logoURI
|
||
ProviderDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Provider name
|
||
example: Morpho
|
||
id:
|
||
type: string
|
||
description: Provider ID
|
||
example: morpho
|
||
logoURI:
|
||
type: string
|
||
description: Provider logo URI
|
||
example: https://morpho.xyz/logo.png
|
||
description:
|
||
type: string
|
||
description: Short description of the provider
|
||
example: A peer-to-peer DeFi lending protocol
|
||
website:
|
||
type: string
|
||
description: Provider website
|
||
example: https://morpho.xyz
|
||
tvlUsd:
|
||
type: object
|
||
description: Total TVL across the entire provider in USD
|
||
example: 10,200,000
|
||
nullable: true
|
||
type:
|
||
type: string
|
||
description: Type of provider (protocol or validator provider)
|
||
enum:
|
||
- protocol
|
||
- validator_provider
|
||
example: protocol
|
||
references:
|
||
description: Optional social/media references or audit links
|
||
nullable: true
|
||
type: array
|
||
items:
|
||
type: string
|
||
required:
|
||
- name
|
||
- id
|
||
- logoURI
|
||
- description
|
||
- website
|
||
- tvlUsd
|
||
- type
|
||
HealthStatus:
|
||
type: string
|
||
description: The health status of the service
|
||
enum:
|
||
- OK
|
||
- FAIL
|
||
HealthStatusDto:
|
||
type: object
|
||
properties:
|
||
status:
|
||
example: OK
|
||
$ref: '#/components/schemas/HealthStatus'
|
||
timestamp:
|
||
type: string
|
||
format: date-time
|
||
example: '2024-01-15T10:30:00.000Z'
|
||
description: Timestamp when the health check was performed
|
||
required:
|
||
- status
|
||
- timestamp
|
||
externalDocs:
|
||
description: For more information
|
||
url: https://docs.yield.xyz
|