swagger: '2.0' info: contact: email: contact@babylonlabs.io description: 'The Babylon Staking API offers information about the state of the Babylon BTC Staking system. Your access and use is governed by the API Access License linked to below.' license: name: API Access License url: https://docs.babylonlabs.io/assets/files/api-access-license.pdf title: Babylon Staking shared v1 API version: '2.0' tags: - description: Babylon Phase-1 API endpoints (Deprecated) name: v1 paths: /v1/delegation: get: deprecated: true description: '[DEPRECATED] Retrieves a delegation by a given transaction hash. Please use /v2/delegation instead.' parameters: - description: Staking transaction hash in hex format in: query name: staking_tx_hash_hex required: true type: string produces: - application/json responses: '200': description: Delegation schema: $ref: '#/definitions/handler.PublicResponse-v1service_DelegationPublic' '400': description: 'Error: Bad Request' schema: $ref: '#/definitions/github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error' tags: - v1 /v1/finality-providers: get: deprecated: true description: '[DEPRECATED] Fetches details of all active finality providers sorted by their active total value locked (ActiveTvl) in descending order. Please use /v2/finality-providers instead.' parameters: - description: Public key of the finality provider to fetch in: query name: fp_btc_pk type: string - description: Pagination key to fetch the next page of finality providers in: query name: pagination_key type: string produces: - application/json responses: '200': description: A list of finality providers sorted by ActiveTvl in descending order schema: $ref: '#/definitions/handler.PublicResponse-array_v1service_FpDetailsPublic' summary: Get Active Finality Providers (Deprecated) tags: - v1 /v1/global-params: get: deprecated: true description: '[DEPRECATED] Retrieves the global parameters for Babylon, including finality provider details. Please use /v2/network-info instead.' produces: - application/json responses: '200': description: Global parameters schema: $ref: '#/definitions/handler.PublicResponse-v1service_GlobalParamsPublic' tags: - v1 /v1/staker/delegations: get: description: 'Retrieves phase-1 delegations for a given staker. This endpoint will be deprecated once all phase-1 delegations are either withdrawn or registered into phase-2. This endpoint is only used to show legacy phase-1 delegations for the purpose of unbonding or registering into phase-2.' parameters: - description: Staker BTC Public Key in: query name: staker_btc_pk required: true type: string - description: Only return delegations with pending actions which include active, unbonding, unbonding_requested, unbonded in: query name: pending_action type: boolean - description: Pagination key to fetch the next page of delegations in: query name: pagination_key type: string produces: - application/json responses: '200': description: List of delegations and pagination token schema: $ref: '#/definitions/handler.PublicResponse-array_v1service_DelegationPublic' '400': description: 'Error: Bad Request' schema: $ref: '#/definitions/github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error' tags: - v1 /v1/stats: get: deprecated: true description: '[DEPRECATED] Fetches overall stats for babylon staking including tvl, total delegations, active tvl, active delegations and total stakers. Please use /v2/stats instead.' produces: - application/json responses: '200': description: Overall stats for babylon staking schema: $ref: '#/definitions/handler.PublicResponse-v1service_OverallStatsPublic' summary: Get Overall Stats (Deprecated) tags: - v1 /v1/stats/staker: get: deprecated: true description: '[DEPRECATED] Fetches staker stats for babylon staking including tvl, total delegations, active tvl and active delegations. Please use /v2/staker/stats instead. If staker_btc_pk query parameter is provided, it will return stats for the specific staker. Otherwise, it will return the top stakers ranked by active tvl.' parameters: - description: Public key of the staker to fetch in: query name: staker_btc_pk type: string - description: Pagination key to fetch the next page of top stakers in: query name: pagination_key type: string produces: - application/json responses: '200': description: List of top stakers by active tvl schema: $ref: '#/definitions/handler.PublicResponse-array_v1service_StakerStatsPublic' '400': description: 'Error: Bad Request' schema: $ref: '#/definitions/github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error' summary: Get Staker Stats (Deprecated) tags: - v1 /v1/unbonding: post: consumes: - application/json description: 'Unbonds a phase-1 delegation by processing the provided transaction details. This endpoint will be deprecated once all phase-1 delegations are either withdrawn or registered into phase-2. This is an async operation.' parameters: - description: Unbonding Request Payload in: body name: payload required: true schema: $ref: '#/definitions/v1handlers.UnbondDelegationRequestPayload' produces: - application/json responses: '202': description: Request accepted and will be processed asynchronously '400': description: Invalid request payload schema: $ref: '#/definitions/github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error' summary: Unbond phase-1 delegation tags: - v1 /v1/unbonding/eligibility: get: description: Checks if a delegation identified by its staking transaction hash is eligible for unbonding. This endpoint will be deprecated once all phase-1 delegations are either withdrawn or registered into phase-2. parameters: - description: Staking Transaction Hash Hex in: query name: staking_tx_hash_hex required: true type: string produces: - application/json responses: '200': description: The delegation is eligible for unbonding '400': description: Missing or invalid 'staking_tx_hash_hex' query parameter schema: $ref: '#/definitions/github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error' summary: Check unbonding eligibility tags: - v1 definitions: github_com_babylonlabs-io_staking-api-service_internal_shared_types.Error: properties: err: {} errorCode: $ref: '#/definitions/types.ErrorCode' statusCode: type: integer type: object v1service.TransactionPublic: properties: output_index: type: integer start_height: type: integer start_timestamp: type: string timelock: type: integer tx_hex: type: string type: object handler.PublicResponse-array_v1service_FpDetailsPublic: properties: data: items: $ref: '#/definitions/v1service.FpDetailsPublic' type: array pagination: $ref: '#/definitions/handler.paginationResponse' type: object v1service.FpDetailsPublic: properties: active_delegations: type: integer active_tvl: type: integer btc_pk: type: string commission: type: string description: $ref: '#/definitions/v1service.FpDescriptionPublic' total_delegations: type: integer total_tvl: type: integer type: object handler.PublicResponse-array_v1service_DelegationPublic: properties: data: items: $ref: '#/definitions/v1service.DelegationPublic' type: array pagination: $ref: '#/definitions/handler.paginationResponse' type: object v1service.StakerStatsPublic: properties: active_delegations: type: integer active_tvl: type: integer staker_pk_hex: type: string total_delegations: type: integer total_tvl: type: integer type: object types.ErrorCode: enum: - INTERNAL_SERVICE_ERROR - VALIDATION_ERROR - NOT_FOUND - BAD_REQUEST - FORBIDDEN - UNPROCESSABLE_ENTITY - REQUEST_TIMEOUT type: string x-enum-varnames: - InternalServiceError - ValidationError - NotFound - BadRequest - Forbidden - UnprocessableEntity - RequestTimeout types.DelegationState: enum: - active - unbonding_requested - unbonding - unbonded - withdrawable - withdrawn - transitioned - slashed type: string x-enum-varnames: - Active - UnbondingRequested - Unbonding - Unbonded - Withdrawable - Withdrawn - Transitioned - Slashed v1service.OverallStatsPublic: properties: active_delegations: type: integer active_tvl: type: integer btc_price_usd: description: Optional field type: number pending_tvl: type: integer total_delegations: type: integer total_stakers: type: integer total_tvl: type: integer unconfirmed_tvl: type: integer type: object v1handlers.UnbondDelegationRequestPayload: properties: staker_signed_signature_hex: type: string staking_tx_hash_hex: type: string unbonding_tx_hash_hex: type: string unbonding_tx_hex: type: string type: object v1service.GlobalParamsPublic: properties: versions: items: $ref: '#/definitions/v1service.VersionedGlobalParamsPublic' type: array type: object handler.PublicResponse-array_v1service_StakerStatsPublic: properties: data: items: $ref: '#/definitions/v1service.StakerStatsPublic' type: array pagination: $ref: '#/definitions/handler.paginationResponse' type: object v1service.FpDescriptionPublic: properties: details: type: string identity: type: string moniker: type: string security_contact: type: string website: type: string type: object handler.PublicResponse-v1service_OverallStatsPublic: properties: data: $ref: '#/definitions/v1service.OverallStatsPublic' pagination: $ref: '#/definitions/handler.paginationResponse' type: object v1service.DelegationPublic: properties: finality_provider_pk_hex: type: string is_eligible_for_transition: type: boolean is_overflow: type: boolean is_slashed: type: boolean staker_pk_hex: type: string staking_tx: $ref: '#/definitions/v1service.TransactionPublic' staking_tx_hash_hex: type: string staking_value: type: integer state: $ref: '#/definitions/types.DelegationState' unbonding_tx: $ref: '#/definitions/v1service.TransactionPublic' type: object handler.PublicResponse-v1service_GlobalParamsPublic: properties: data: $ref: '#/definitions/v1service.GlobalParamsPublic' pagination: $ref: '#/definitions/handler.paginationResponse' type: object v1service.VersionedGlobalParamsPublic: properties: activation_height: type: integer cap_height: type: integer confirmation_depth: type: integer covenant_pks: items: type: string type: array covenant_quorum: type: integer max_staking_amount: type: integer max_staking_time: type: integer min_staking_amount: type: integer min_staking_time: type: integer staking_cap: type: integer tag: type: string unbonding_fee: type: integer unbonding_time: type: integer version: type: integer type: object handler.paginationResponse: properties: next_key: type: string type: object handler.PublicResponse-v1service_DelegationPublic: properties: data: $ref: '#/definitions/v1service.DelegationPublic' pagination: $ref: '#/definitions/handler.paginationResponse' type: object