---
openapi: 3.1.0
info:
  title: Figment API
  version: 2.0.0+1353.1
  termsOfService: https://figment.io/staking-terms-of-use
x-readme:
  explorer-enabled: false
  proxy-enabled: false
  headers:
  - key: x-api-key
    value: your-api-key-here
paths:
  "/ethereum/validators":
    post:
      summary: Create Validators
      tags:
      - Ethereum
      operationId: create-validators
      parameters: []
      responses:
        '201':
          description: Created validators
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/validator_provision_response"
                  meta:
                    "$ref": "#/components/schemas/validators_create_meta"
                example:
                  data:
                  - network: hoodi
                    pubkey: '0x8fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad'
                    status: provisioned
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    region: ca-central-1
                    deposit_data:
                      deposit_data_root: '0xfd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4b'
                      deposit_message_root: '0xae8ccf82724a48014e7f694c3ee329210e435059d73a4fa4da2bcd825ced381e'
                      fork_version: '0x01017000'
                      signature: '0x802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a29'
                      figment_signature: '0x308188024200e8a18a258b03149255a0fc4a62a6c51b99ce38c8a33b91b57d76ca1f37484a18d1efa2c2bc6182ad284ff8aad076248f27af179c0b86a6542fa67185aa1cc9f50e02420147dacbaf9cdae0638d44b824f199d9f8047d5eb9ae4ee3dfe9d1860ba7582ac4be464d46647d7ed3adac83789ec88f2b6d4ac426d90126076589291d83735c63a3'
                      deposit_cli_version: 2.7.0
                      amount: 32000000000
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2024-02-22T14:14:07.848Z'
                    status_estimates:
                      estimated_active_at:
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                    staking_request:
                      id: f9764269-ddb8-451f-9f81-fd460e3e2f14
                      created_at: '2024-02-22T14:14:07.848Z'
                  meta:
                    staking_request:
                      id: f9764269-ddb8-451f-9f81-fd460e3e2f14
                      created_at: '2024-02-22T14:14:07.848Z'
                      amount_wei: '32000000000000000000'
                      withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                      network: hoodi
                      region: ca-central-1
                    staking_transaction:
                      from: '0xE40F80618324C814cD444434670a44ba4583aE38'
                      to: '0xA627f94a8F94E4713d38F52aC3a6377B0a111d47'
                      amount_wei: '32000000000000000000'
                      contract_call_data: '0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a290000000000000000000000000000000000000000000000000000000000000001fd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4b'
                      unsigned_transaction_hashed: '0x3ac39ee1d324ed9816a8de4fc5f41d071bb2e522bac1fa9ea85684f6911977c4'
                      unsigned_transaction_serialized: '0x02f902d9824268058459682f0084ce33ae928305dc8f94a627f94a8f94e4713d38f52ac3a6377b0a111d478901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a290000000000000000000000000000000000000000000000000000000000000001fd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4bc0'
                      max_gas_wei: '1328940220021646'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                title: 0x01 Validators
                properties:
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                    description: The network on which validators will be created.
                  validators_count:
                    type: integer
                    example: 10
                    description: The number of validators that need to be created.
                  withdrawal_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address used for the withdrawals credentials
                      of the validators. This is the address that will receive consensus
                      rewards and unstaked ETH after exiting.
                  funding_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address that holds the ETH to be staked
                      and that will sign the staking transaction. If not specified,
                      `withdrawal_address` will be used.
                  fee_recipient_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address that will receive the execution
                      layer rewards. If not specified, `withdrawal_address` will be
                      used.
                  region:
                    type: string
                    example: ca-central-1
                    description: The geographic region where the validator will be
                      created.
                    enum:
                    - ca-central-1
                    - eu-west-1
                  credentials_prefix:
                    type: string
                    example: '0x01'
                    description: Prefix to use for withdrawal_credentials. Defaults
                      to '0x01'.
                    enum:
                    - '0x01'
                required:
                - network
                - withdrawal_address
                - validators_count
              - type: object
                title: 0x02 Validators (Pectra)
                properties:
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                    description: The network on which validators will be created.
                  amount:
                    type: integer
                    example: 64
                    description: Amount in ETH to initially deposit to the validator.
                  withdrawal_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address used for the withdrawals credentials
                      of the validators. This is the address that will receive consensus
                      rewards and unstaked ETH after exiting.
                  funding_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address that holds the ETH to be staked
                      and that will sign the staking transaction. If not specified,
                      `withdrawal_address` will be used.
                  fee_recipient_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: An ETH wallet address that will receive the execution
                      layer rewards. If not specified, `withdrawal_address` will be
                      used.
                  region:
                    type: string
                    example: ca-central-1
                    description: The geographic region where the validator will be
                      created.
                    enum:
                    - ca-central-1
                    - eu-west-1
                  credentials_prefix:
                    type: string
                    example: '0x01'
                    description: Prefix to use for withdrawal_credentials. Defaults
                      to '0x01'.
                    enum:
                    - '0x02'
                required:
                - network
                - withdrawal_address
                - credentials_prefix
                - amount
    get:
      summary: Get Validators
      tags:
      - Ethereum
      operationId: get-validators
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: withdrawal_address
        in: query
        required: false
        schema:
          type: string
        description: The validator's withdrawal address. Must be prefixed with `0x`.
        example: '0xE40F80618324C814cD444434670a44ba4583aE38'
      - name: groups
        in: query
        required: false
        schema:
          type: string
        description: Filter using comma-separated group uuids.
        example: be982d21-ff93-4092-b56a-f40bac865400,a0ba2333-c541-41f0-ad89-e29a268a3ee5
      - name: region
        in: query
        schema:
          type: string
          enum:
          - ca-central-1
          - eu-west-1
        required: false
        example: ca-central-1
        description: The validator's geographic region. Only for Figment validators.
      - name: status
        in: query
        schema:
          type: string
          enum:
          - provisioned
          - funding_requested
          - deposited_not_finalized
          - deposited
          - pending_initialized
          - pending_queued
          - active_exiting
          - active_ongoing
          - active_slashed
          - exited_slashed
          - exited_unslashed
          - withdrawal_done
          - withdrawal_possible
        required: false
        example: active_ongoing
        description: The current validator's status. See https://docs.figment.io/docs/lifecycle-eth-validator.
      - name: net_fee_payout_address
        in: query
        schema:
          type: string
        required: false
        example: '0xE40F80618324C814cD444434670a44ba4583aE38'
        description: The ETH wallet address that receives the net execution layer
          rewards (when they go through a fee splitting smart contract).
      - name: staking_request_id
        in: query
        schema:
          type: string
        required: false
        example: f8bd4623-39ed-46ec-8518-991792665e56
        description: The ID associated to the request for a set of valdiators.
      - name: credentials_prefix
        in: query
        schema:
          type: string
          enum:
          - '0x01'
          - '0x02'
        required: false
        example: '0x02'
        description: Filter for withdrawal_credentials field
      - name: include_fields
        in: query
        required: false
        style: form
        explode: false
        schema:
          type: array
          description: A comma-separated list of additional objects to include in
            the response.
          items:
            type: string
            enum:
            - deposit_data
            - status_history
            - status_estimates
            - on_demand_exit
            - exit_message
            - staking_request
            - balances
          example:
          - deposit_data
          - status_history
          - status_estimates
          - on_demand_exit
          - exit_message
          - staking_request
          - balances
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      responses:
        '200':
          description: Validators list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/validator"
                  meta:
                    "$ref": "#/components/schemas/pagination"
                example:
                  data:
                  - id: 29d3a221-8de7-4874-9973-35ac1e70b87b
                    network: hoodi
                    pubkey: '0xb121633094a5e75b886eeba797d43e80e4a6003462921f175aed2f112a460d09447f3c484f067c13b100b763070857b3'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: deposited
                    region: ca-central-1
                    index:
                    staking_request:
                      id: 817c04a2-3d5b-4222-81c8-2de77f0be7db
                      created_at: '2023-10-17T18:35:30Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-10-17T18:35:31Z'
                      - status: deposited_not_finalized
                        changed_at: '2023-10-17T20:38:36Z'
                      - status: deposited
                        changed_at: '2023-10-17T20:51:36Z'
                    deposit_data:
                      signature: '0xb7a8703d0ff4865174525c760509a18c5cdc4a321612d865b995d9ba60a9519703d3f7be1527e89041dbea886cb3b26a0d1a13976405b93301cdb16a54258ec3ac891e738ad73e68c6a6a09b286f8c8c71005eb8e55d144ee59fa7c311ac3dea'
                      figment_signature: '0x308187024201cc42b16a0264b3853e123034f21ef7fc1d75b96bc8ae13427836475838c447f90e19a8e3926fe3d20bc91da4d720f886ef3eb3f35ed164674bb6cab2c216329c2002411392c3c6a70bf5f3df0ed3d092d28dbed24933d4ab150ec1ee60cba79d72d374572a04161d5f47be6485353fd78a4c04cc4f3a7bdcc9e3ae749419cc35bc3f6a13'
                      deposit_data_root: '0x8d0b864a077b06044d2336264aaf8efbd03dd61ab0a8074bfb811b7f5c10146e'
                      deposit_message_root: '0x5163474c33dcf5b6fb0bafcaa6a1edbe264de7c9eca6dc5358bee6c21bfc2fef'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at: '2023-10-18T16:21:20Z'
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                      encrypted_value:
                      fork_version:
                    balances:
                      actual: '0.0'
                      pending_deposit: '32.0'
                      pending_topups: '0.0'
                      pending_withdrawals: '0.0'
                  - id: 2284ad6b-d2f6-4748-aa77-31ea5a0fa192
                    network: hoodi
                    pubkey: '0xa605e932e87ffa1427623e71cc047531ea0ac9b770e243969e32b6064601eed9e1a6c8106a5f28fa18f3bddcb74464cb'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: active_ongoing
                    region: eu-west-1
                    index: 1392316
                    staking_request:
                      id: a0a0351b-f2c4-483a-a389-3cdabb439cf9
                      created_at: '2023-11-15T22:07:19Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-11-15T22:07:20Z'
                      - status: deposited_not_finalized
                        changed_at: '2023-11-15T22:08:24Z'
                      - status: deposited
                        changed_at: '2023-11-15T22:23:24Z'
                      - status: pending_queued
                        changed_at: '2023-11-16T13:55:12Z'
                      - status: active_ongoing
                        changed_at: '2023-11-16T14:33:36Z'
                    deposit_data:
                      signature: '0x8f6f942d0dc5acfa2a3b48d5638b7fda36d50f735fbe8c1cd45bf549db0071423fd83a5b287f1f076f57d756cc220c85167751b25b9299f861b6fbd88856fde52290dbbcddcafff422480ecb49d4bfbe75cc08ad054579c521aae9ff929e4b67'
                      figment_signature: '0x30818702420167f053e387ec56437215ca5ffbd864ddf24dfbed78b3966371c69197d13d069c096e07ab40428c931966552f8c78948ec78857c3abb97333eca8dbd8f398257259024117d4525304051948043d64fea61169136a7a5a1a7b3c7312bab3dc7346c458a918c36ad03ea81392f86d01ab9054a532c5ee3d88318f8ea6cfd97973699e2c17aa'
                      deposit_data_root: '0x96717ebace8e5840854dab131da53fba9ffcb5e6effb4a22af1ab9822a6de968'
                      deposit_message_root: '0xc9b9933c7671c98c6d1a7be513d655180643e92edd98d6048658f308a8e1c9c7'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at: '2023-11-16T11:21:36Z'
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                      encrypted_value: x3rqWsJskHPwfaSG9NZJyOrzkXyxrxA+6Td6D6JYj1cXPxuzgn8XN8NIUhxTI+APv4ddYSvl8mokxMifLhfBNggnKxZsuWCUSMJ11P2lwCpmTROzhuWXxVKviqKrNeIiZBH4wi2SD+KdmvcHcPF3lkrNNtBaPGhXr+1oVpUv8unKCQHnBohcmxJvPv/2V54SHzHKZyjTXnzzdpGgSvqW0hppXhpF3PFnL79TIXxkWsco4nS8B7XEAwpYdm/vtu/CXhl5opl7/oR0C93j5Oj/A/G3+T4UONWcFRvvcJNdo+hsbJ+oXAcruad2nvgs74JENrGecUw6+XsQbRYkj4ygYYeHDOavyFgBfbwCW7Yu/uacmq10a5cpRRZLy1uelbioTqV+WQfO3xaU03zzTjicSFR7Njo36Sc7ebtRB6/h6W+Gv1T3T+PjovJcKbZOLMd/F6ei6qK8XtacsRqKtKuay1qQXUJ5hQDmy5j0vfbMAkLEvpmecZcgbwGuCSpDrLwO3q+ka+GodEkJk4zKea/mU6EPwJdnuLSJsfCEdol9IyhnDpT9kxcLJjW9+vnVJwkPSMJ8eFlPi+OGfH8qBkzKA/fdxxyc+dPMBzSjKhoJT+ifVIB5GKv9PdbAzUS1z+exGLJC8Z3ZW++5PF8O1MfTiJrV0aBS7j0CfD5boh1OS4Y=
                      fork_version: '0x04017000'
                    balances:
                      actual: '33.2'
                      pending_deposit: '0.0'
                      pending_topups: '1.5'
                      pending_withdrawals: '0.5'
                  - id: 8a075b89-c1f7-4381-a158-8ee866bf68bc
                    network: hoodi
                    pubkey: '0x94418ea2b6d0b43f728fd85e0b5e452b554af5953788cde8ad8c653c6c6dc32369fc4d8615f03bcf1a330b9ee2477b03'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: active_exiting
                    region: ca-central-1
                    index: 1122516
                    staking_request:
                      id: a428d279-27b3-482b-82f4-510e7b52adb5
                      created_at: '2023-10-17T18:17:11Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-10-17T18:17:11Z'
                      - status: funding_requested
                        changed_at: '2023-10-17T20:35:22Z'
                      - status: deposited
                        changed_at: '2023-10-17T20:51:36Z'
                      - status: pending_queued
                        changed_at: '2023-10-18T13:29:36Z'
                      - status: active_ongoing
                        changed_at: '2023-10-19T06:27:12Z'
                      - status: active_exiting
                        changed_at: '2023-10-20T17:26:24Z'
                    deposit_data:
                      signature: '0xb6db15d9859eb657dc7836ca8b45775a4e064c0651958425ba57bbe51cd5d75319fe9642d3b170503ad48dc2212bcde70ae0e14d8b2ef9833dcb852a0b9c0a7ad8cb908a507426be77e5e549d6008484ef8c831cd707dff88888fa614bf03f87'
                      figment_signature: '0x308188024201f5ab9f11e1543adaefb94884c2128fa3261550562df9bf27aed076c0115f9879e0e919cc5e4283bb37e7b1df51314f1d349d95108f8a2a81f0d138d4c284f3f095024201b5a416d40579256070795d1c6cea2a02ad65bcd088d8152c0c62ea9dfe90e00e750c01c8ea14420d64a739055bad95f8d0ffa4d35d4c02bb96fc8bb9b8135d0223'
                      deposit_data_root: '0x86c1627b3353edd7aa56d84418b8a258820be0761a765c74920269297042df0d'
                      deposit_message_root: '0x648c94f84c8f14ea4edd1b35557dd5715bba282cae987ca34eb2bafe6fdea792'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at: '2023-10-19T10:09:36Z'
                      estimated_exit_at: '2023-10-19T10:08:00Z'
                      estimated_withdrawal_at: '2023-10-23T14:49:36Z'
                    on_demand_exit:
                      requested_at: '2023-10-20T17:10:52Z'
                      approved_at: '2023-10-20T17:11:05Z'
                      submitted_at: '2023-10-20T17:22:00Z'
                      request_id: 9b41a113-44c5-4b6a-8493-78e6046b830e
                    exit_message:
                      encrypted_value: gk+W8XGB9bXtueP02sHh2kz4gSsj8T06sd/yXRnJM0oUAo0pvmKNf2pk3rqcLMWfPTrTZmx32BzN/8JRN+WpfyUrdtPVuSYMsyVWxWGIYeLXvBSuZoyzYfPMOXf8eg6CLz0RPZovoYood2M9aTFT2/3StyWO/Pq6aZus0luhksijwPftuAkErQgC09NHRgeb7vyhd3ZYiHPKKYUAjEIR3wllcxhFavTAFA8f1ImbZIZGRVkoykiswhcVjIjAFMSAah18IXSWRL2rDSKZvbDN6ZgKHg+J33LF55SihheOPaCNJe0j2xGczWGzXP4HzqOnlSS1aiz2XGtcaHg99be7wOduKVS4+cEaTX8JmMxKKc1L5kJ1kdOrqP9VRKa7pIkOhZr3OCDtrDaN5Mr3e+dfk4EsN8oMcqif2sLBVZoe1end0bR/3nhjGE24trrs4x8ljqE+xjMEM6JBLyWI4IhXZMxR6N3IXoHT1NPnq9lWYdKnqpOkhRkcUMNVuyHbXdh9ZD3VRLoL6eFpI+6GIbmlwOlbHMGf1pfND20NEEyyfa8F6krh+uhrga5FYg9W7/fuA+FjDEQCqe2ZU7usWQBWjJ4fCw3KHV3eMcH9jhxICHudicoxz8CQmcC32+iCYi6/ri+OCNkdEbqLkeJuFHZv1gsXEApjRdde9xq1wmm+Uvg=
                      fork_version:
                    balances:
                      actual: '32.1'
                      pending_deposit: '0.0'
                      pending_topups: '0.0'
                      pending_withdrawals: '0.0'
                  - id: 8a075b89-c1f7-4381-a158-8ee866bf68bc
                    network: hoodi
                    pubkey: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: withdrawal_done
                    region: ca-central-1
                    index: 1092111
                    staking_request:
                      id: a428d279-27b3-482b-82f4-510e7b52adb5
                      created_at: '2023-10-17T18:17:11Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-10-17T18:17:11Z'
                      - status: funding_requested
                        changed_at: '2023-10-17T20:35:22Z'
                      - status: deposited
                        changed_at: '2023-10-17T20:51:36Z'
                      - status: pending_queued
                        changed_at: '2023-10-18T13:29:36Z'
                      - status: active_ongoing
                        changed_at: '2023-10-19T06:27:12Z'
                      - status: active_exiting
                        changed_at: '2023-10-20T17:26:24Z'
                      - status: exited_unslashed
                        changed_at: '2023-10-20T17:52:00Z'
                      - status: withdrawal_possible
                        changed_at: '2023-10-21T21:10:24Z'
                      - status: withdrawal_done
                        changed_at: '2023-10-23T06:08:00Z'
                    deposit_data:
                      signature: '0xb6db15d9859eb657dc7836ca8b45775a4e064c0651958425ba57bbe51cd5d75319fe9642d3b170503ad48dc2212bcde70ae0e14d8b2ef9833dcb852a0b9c0a7ad8cb908a507426be77e5e549d6008484ef8c831cd707dff88888fa614bf03f87'
                      figment_signature: '0x308188024201f5ab9f11e1543adaefb94884c2128fa3261550562df9bf27aed076c0115f9879e0e919cc5e4283bb37e7b1df51314f1d349d95108f8a2a81f0d138d4c284f3f095024201b5a416d40579256070795d1c6cea2a02ad65bcd088d8152c0c62ea9dfe90e00e750c01c8ea14420d64a739055bad95f8d0ffa4d35d4c02bb96fc8bb9b8135d0223'
                      deposit_data_root: '0x86c1627b3353edd7aa56d84418b8a258820be0761a765c74920269297042df0d'
                      deposit_message_root: '0x648c94f84c8f14ea4edd1b35557dd5715bba282cae987ca34eb2bafe6fdea792'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at: '2023-10-19T10:09:36Z'
                      estimated_exit_at: '2023-10-19T10:08:00Z'
                      estimated_withdrawal_at: '2023-10-23T14:49:36Z'
                    on_demand_exit:
                      requested_at: '2023-10-20T17:10:52Z'
                      approved_at: '2023-10-20T17:11:05Z'
                      submitted_at: '2023-10-20T17:22:00Z'
                      request_id: 9b41a113-44c5-4b6a-8493-78e6046b830e
                    exit_message:
                      encrypted_value: gk+W8XGB9bXtueP02sHh2kz4gSsj8T06sd/yXRnJM0oUAo0pvmKNf2pk3rqcLMWfPTrTZmx32BzN/8JRN+WpfyUrdtPVuSYMsyVWxWGIYeLXvBSuZoyzYfPMOXf8eg6CLz0RPZovoYood2M9aTFT2/3StyWO/Pq6aZus0luhksijwPftuAkErQgC09NHRgeb7vyhd3ZYiHPKKYUAjEIR3wllcxhFavTAFA8f1ImbZIZGRVkoykiswhcVjIjAFMSAah18IXSWRL2rDSKZvbDN6ZgKHg+J33LF55SihheOPaCNJe0j2xGczWGzXP4HzqOnlSS1aiz2XGtcaHg99be7wOduKVS4+cEaTX8JmMxKKc1L5kJ1kdOrqP9VRKa7pIkOhZr3OCDtrDaN5Mr3e+dfk4EsN8oMcqif2sLBVZoe1end0bR/3nhjGE24trrs4x8ljqE+xjMEM6JBLyWI4IhXZMxR6N3IXoHT1NPnq9lWYdKnqpOkhRkcUMNVuyHbXdh9ZD3VRLoL6eFpI+6GIbmlwOlbHMGf1pfND20NEEyyfa8F6krh+uhrga5FYg9W7/fuA+FjDEQCqe2ZU7usWQBWjJ4fCw3KHV3eMcH9jhxICHudicoxz8CQmcC32+iCYi6/ri+OCNkdEbqLkeJuFHZv1gsXEApjRdde9xq1wmm+Uvg=
                      fork_version: '0x01017000'
                    balances:
                      actual: '32.5'
                      pending_deposit: '0.0'
                      pending_topups: '0.0'
                      pending_withdrawals: '0.0'
                  - id: 29d3a221-8de7-4874-9973-35ac1e70b87b
                    network: hoodi
                    pubkey: '0xa151633094a5e75b886eeba797d43e80e4a6003462921f175aed2f112a460d09447f3c484f067c13b100b763070857b3'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: funding_requested
                    region: ca-central-1
                    index:
                    staking_request:
                      id: 817c04a2-3d5b-4222-81c8-2de77f0be7db
                      created_at: '2023-10-17T18:35:30Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-10-17T18:35:31Z'
                      - status: funding_requested
                        changed_at: '2023-10-17T21:29:18Z'
                    deposit_data:
                      signature: '0xb7a8703d0ff4865174525c760509a18c5cdc4a321612d865b995d9ba60a9519703d3f7be1527e89041dbea886cb3b26a0d1a13976405b93301cdb16a54258ec3ac891e738ad73e68c6a6a09b286f8c8c71005eb8e55d144ee59fa7c311ac3dea'
                      figment_signature: '0x308187024201cc42b16a0264b3853e123034f21ef7fc1d75b96bc8ae13427836475838c447f90e19a8e3926fe3d20bc91da4d720f886ef3eb3f35ed164674bb6cab2c216329c2002411392c3c6a70bf5f3df0ed3d092d28dbed24933d4ab150ec1ee60cba79d72d374572a04161d5f47be6485353fd78a4c04cc4f3a7bdcc9e3ae749419cc35bc3f6a13'
                      deposit_data_root: '0x8d0b864a077b06044d2336264aaf8efbd03dd61ab0a8074bfb811b7f5c10146e'
                      deposit_message_root: '0x5163474c33dcf5b6fb0bafcaa6a1edbe264de7c9eca6dc5358bee6c21bfc2fef'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at:
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                      encrypted_value:
                      fork_version:
                    balances:
                      actual: '0.0'
                      pending_deposit: '32.0'
                      pending_topups: '0.0'
                      pending_withdrawals: '0.0'
                  meta:
                    pagination:
                      current_page: 1
                      total_pages: 20
                      total_item_count: 100
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Invalid API key
  "/ethereum/broadcast":
    post:
      summary: Broadcast Staking Tx
      tags:
      - Ethereum
      operationId: broadcast-staking-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/ethereum_broadcast_transaction"
                example:
                  data:
                    transaction_hash: '0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3'
                    activity:
                      type:
                      status: pending
                      network: hoodi
                      protocol: ethereum
                      tx:
                        hash: '0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3'
                        status: in_progress
        '401':
          description: Invalid API key
        '400':
          description: Invalid params
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                title: Signed Transaction
                properties:
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                  signed_transaction:
                    type: string
                    example: '0x02f9031a05478459682f00845968301083010fa99494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000309638291775bd64b4cd22b719aa049858fb3cf8483daa41b1a9e95f1f47ce2e052a4532e6990503631ab32e15419f12c900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000c0b0d5f4a73b348a1dd2ded11ed9e409fe7685a800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006084c3d96a3e85859e5000b8ab71ca2fbc7a58517e31c0447432bc5a32b30cac3f1a4d6e7b018c599faa1bb9143eb97a210d1cec905cef244a13ab48c23b3b0f2d450d7e001dcc52e636dea92b792d9eaf0c926b1fa6441345a1b6bdb176b2f2760000000000000000000000000000000000000000000000000000000000000001648b6f689a35fbdc712473f9216a545d614b7e70bcfb6822a7f83f3474c902b6c080a0f25cb8fa5887644fa8ad60f255d5fbbc7cde26b0fb3a7c53a6007ec5b9d1ee33a0671ad203805b5658ad10aef9157ce1898789ce61dbc51e70a4bbc535a5751746'
                    description: The unsigned transaction, serialized with the signature.
                      See https://docs.figment.io/v2.0/docs/signing-transactions.
                required:
                - network
                - signed_transaction
              - type: object
                title: Unsigned Transaction + Signature
                properties:
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                  unsigned_transaction_serialized:
                    type: string
                    example: '0x02f902d7050f8459682f008459682f9083010fb59494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946dc0'
                    description: The unsigned transaction received from the create
                      validators endpoint. See https://docs.figment.io/v2.0/reference/create-validators.
                  signature:
                    type: string
                    example: '0x789a80053e4927d0a898db8e065e948f5cf086e32f9ccaa54c1908e22ac430c62621578113ddbb62d509bf6049b8fb544ab06d36f916685a2eb8e57ffadde02301'
                    description: The signature corresponding to the unsigned transaction.
                      See https://docs.figment.io/v2.0/docs/signing-transactions.
                      Must be prefixed with `0x`.
                required:
                - network
                - unsigned_transaction_serialized
                - signature
  "/ethereum/validators_summary":
    get:
      summary: Validators Summary
      tags:
      - Ethereum
      operationId: ethereum-validators-summary
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: operated_by
        in: query
        description: if `figment`, returns data for Figment-operated validators only
        schema:
          type: string
          enum:
          - figment
          default:
        required: false
      responses:
        '200':
          description: Validator summary
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/validators_summary"
                example:
                  data:
                    validator_counts:
                      total: 100
                      by_status:
                        provisioned: 1
                        funding_requested: 1
                        deposited_not_finalized: 0
                        depoisted: 0
                        pending_initialized: 0
                        pending_queued: 0
                        active_ongoing: 94
                        active_exiting: 1
                        active_slashed: 0
                        exited_slashed: 0
                        exited_unslashed: 0
                        withdrawal_possible: 1
                        withdrawal_done: 2
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Invalid operated_by
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Invalid API key
  "/ethereum/activity":
    get:
      summary: Activity
      tags:
      - Ethereum
      operationId: ethereum-activity
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: start
        in: query
        schema:
          type: string
        description: List activity starting at or after this time.
        example: '2024-03-12T00:00:00Z'
        required: false
      - name: end
        in: query
        schema:
          type: string
        description: List activity up to this time.
        example: '2024-03-13T00:00:00Z'
        required: false
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      - name: withdrawal_address
        in: query
        schema:
          type: string
        description: Withdrawal address for validators related to activity
        example: 0xEthereumAddress
        required: false
      responses:
        '200':
          description: List of staking/unstaking activity.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      anyOf:
                      - "$ref": "#/components/schemas/staking_activity_stake"
                      - "$ref": "#/components/schemas/staking_activity_unstake"
                  meta:
                    "$ref": "#/components/schemas/pagination"
                example:
                  data:
                  - action: unstake
                    timestamp: '2024-03-15T14:49:01Z'
                    network: mainnet
                    currency: ETH
                    amount: 32
                    status: exiting
                  - action: stake
                    timestamp: '2024-03-13T08:02:17Z'
                    network: mainnet
                    currency: ETH
                    amount: 96
                    tx_hash: '0xef7310cc8324ce15a483d9578a5a732d203ec8f99f5b84ad8139140ea317a3fb'
                    status: activating
                  meta:
                    pagination:
                      current_page: 1
                      total_pages: 1
                      total_item_count: 2
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Invalid API key
  "/ethereum/rewards":
    post:
      summary: Rewards
      operationId: eth-rewards
      tags:
      - Ethereum
      parameters: []
      responses:
        '200':
          description: List of rewards and balances aggregated for all addresses registered
            to the organization and rolled up to the requested `time_rollup`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        pubkey:
                          type: string
                          description: The validator pubkey
                          example: '0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120'
                        rewards:
                          type: array
                          items:
                            type: object
                            description: rewards earned by the validator for the given
                              period
                            properties:
                              text:
                                type: string
                                description: The textual version of the rewards in
                                  ETH
                              currency:
                                type: string
                                description: Currency of rewards textual representation.
                                  Always `ETH`
                              numeric:
                                type: integer
                                description: Numerical representation of the rewards
                                  in wei
                              exp:
                                type: integer
                                description: The exponent to use for converting numeric
                                  value to ETH. Always `18`.
                              type:
                                type: string
                                description: 'Type of the rewards: `consensus`, `execution`,
                                  or `consensus_penalty`. The `consensus_penalty`
                                  entry is only present when `include_penalties` is
                                  `true` and the validator incurred a penalty for
                                  the period.'
                              recipient:
                                type: string
                                description: Recipient of the execution rewards (tip).
                                  Only available in execution rewards for epoch/daily
                                  rollup.
                              sender:
                                type: string
                                description: Address of MEV builder that sent the
                                  execution rewards (tips) to the validator
                              slot:
                                type: integer
                                description: Slot number of the proposal made by the
                                  validator
                              block:
                                type: integer
                                description: Execution layer block number of the proposal
                                  made by the validator
                              is_mev:
                                type: boolean
                                description: Whether or not MEV boost was used for
                                  the proposal
                              mev_relay:
                                type: string
                                description: Name of the mev boost service (if proposal
                                  was mev boosted)
                              tx_hash:
                                type: string
                                description: Hash of the transaction used to send
                                  MEV boosted tips. When the payment is split across
                                  several transactions, this is only the first one.
                                  Use `transactions` for the full list.
                              transactions:
                                type: array
                                description: Every transaction that paid this execution
                                  reward. When non-empty, the sum of `amount` equals
                                  `numeric`. Empty when there was no builder payment,
                                  and for rewards indexed before transaction details
                                  were recorded. Only available in execution rewards
                                  for epoch/daily rollup.
                                items:
                                  type: object
                                  properties:
                                    hash:
                                      type: string
                                      description: Hash of the transaction
                                    sender:
                                      type: string
                                      description: Address that initiated the transaction.
                                        Can differ between transactions of the same
                                        reward.
                                    amount:
                                      type: string
                                      description: Amount this transaction credited
                                        to the recipient, in wei, as a string to avoid
                                        precision loss
                        balances:
                          type: array
                          items:
                            type: object
                            description: Total balance of the validator at the end
                              of each given period.
                            properties:
                              text:
                                type: string
                                description: The textual version of the balance in
                                  ETH
                              currency:
                                type: string
                                description: Currency of balance textual representation.
                                  Always `ETH`
                              numeric:
                                type: integer
                                description: Numerical representation of the balance
                                  in wei
                              exp:
                                type: integer
                                description: The exponent to use for converting numeric
                                  value to ETH. Always `18`.
                        epoch:
                          type: integer
                          description: The Epoch number (only present when epoch time_rollup
                            is requested).
                        timestamp:
                          type: string
                          description: The timestamp of the end of the period rewards
                            are reported for.
                        max_epoch:
                          type: integer
                          description: The last Epoch number reported for the validator
                            for the day (only present when daily time_rollup is requested).
                        withdrawal_credentials:
                          type: string
                          description: The withdrawal credentials of the validator
                            entity.
                        withdrawal_address:
                          type: string
                          description: Eth1 Withdrawal address of the validator. Only
                            available when withdrawal credentials is not a BLS.
                        started_at:
                          type: string
                          description: Timestamp of the earliest record of rewards
                            we have indexed for the validator. Only available in all_time
                            time_rollup requests.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: ethereum
                        description: The name of the protocol queried.
                      network:
                        type: string
                        enum:
                        - mainnet
                        - hoodi
                        example: mainnet
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: daily
                        description: The time rollup unit of the rewards.
                      pagination:
                        type: object
                        description: Pagination information. Only available for all_time
                          time_rollup and when the request supplies 'page' parameter.
                        properties:
                          total_item_count:
                            type: integer
                            description: Total number of items found.
                          total_pages:
                            type: integer
                            description: Total number of pages.
                          current_page:
                            type: integer
                            description: The current page number requested.
              examples:
                daily_rollup:
                  value:
                    data:
                    - pubkey: '0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120'
                      rewards:
                      - text: '0.002932238'
                        currency: ETH
                        numeric: 2932238000000000
                        exp: 18
                        type: consensus
                      - text: '0.019767962495220182'
                        currency: ETH
                        numeric: 19767962495220182
                        exp: 18
                        type: execution
                        recipient: '0xed488e6cc4b030eb5bfdde3227c3d5da2b9040e8'
                        sender: '0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5'
                        slot: 7334788
                        block: 18146590
                        is_mev: true
                        mev_relay: Block Native
                        tx_hash: '0x25e3a03462a55b2632573cfc8e36cbb431d38793b6d26603cb11fd0251fee73b'
                        transactions:
                        - hash: '0x25e3a03462a55b2632573cfc8e36cbb431d38793b6d26603cb11fd0251fee73b'
                          sender: '0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5'
                          amount: '19767962495220182'
                      balances:
                      - text: '33.824197321'
                        currency: ETH
                        numeric: 33824197321000000000
                        exp: 18
                      timestamp: '2023-02-22T00:00:00Z'
                      max_epoch: 183036
                      withdrawal_address: '0xeD488E6cc4B030eb5BfddE3227C3D5da2b9040E8'
                      withdrawal_credentials: '0x010000000000000000000000ed488e6cc4b030eb5bfdde3227c3d5da2b9040e8'
                    meta:
                      protocol: ethereum
                      network: mainnet
                      time_rollup: daily
                all_time_rollup:
                  value:
                    data:
                    - pubkey: '0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120'
                      rewards:
                      - text: '2.502461635'
                        currency: ETH
                        numeric: 2502461635000000000
                        exp: 18
                        type: consensus
                      - text: '1.370500484453818979'
                        currency: ETH
                        numeric: 1370500484453818979
                        exp: 18
                        type: execution
                      balances:
                      - text: '32.009947048'
                        currency: ETH
                        numeric: 32009947048000000000
                        exp: 18
                      timestamp: '2023-02-15T10:04:59Z'
                      started_at: '2021-12-31T05:10:47Z'
                      withdrawal_address: '0xeD488E6cc4B030eb5BfddE3227C3D5da2b9040E8'
                      withdrawal_credentials: '0x010000000000000000000000ed488e6cc4b030eb5bfdde3227c3d5da2b9040e8'
                    meta:
                      protocol: ethereum
                      network: mainnet
                      time_rollup: all_time
                      pagination:
                        total_item_count: 10
                        total_pages: 4
                        current_page: 1
                epoch_rollup:
                  value:
                    data:
                    - pubkey: '0xb36fb7a3f02d96a697859cd155615cd059e4cafff67c406824b5eddcefd5dd57a61ccda1d46bcb7974e93c4662790f10'
                      epoch: 261703
                      timestamp: '2024-02-07T15:05:47Z'
                      rewards:
                      - text: '0.000009864'
                        currency: ETH
                        numeric: 9864000000000
                        exp: 18
                        type: consensus
                      balances:
                      - text: '32.045102149'
                        currency: ETH
                        numeric: 32045102149000000000
                        exp: 18
                      withdrawal_address: '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f'
                      withdrawal_credentials: '0x010000000000000000000000b9d7934878b5fb9610b3fe8a5e441e8fad7e293f'
                    - pubkey: '0xb36fb7a3f02d96a697859cd155615cd059e4cafff67c406824b5eddcefd5dd57a61ccda1d46bcb7974e93c4662790f10'
                      epoch: 261702
                      timestamp: '2024-02-07T14:59:23Z'
                      rewards:
                      - text: '0.04291143'
                        currency: ETH
                        numeric: 42911430000000000
                        exp: 18
                        type: consensus
                      - text: '0.075704252784383499'
                        currency: ETH
                        numeric: 75704252784383499
                        exp: 18
                        type: execution
                        recipient: '0x388c818ca8b9251b393131c08a736a67ccb19297'
                        sender: '0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97'
                        slot: 8374485
                        block: 19177054
                        is_mev: true
                        mev_relay: BloXroute Regulated
                        tx_hash: '0x6ac617a0fc5959e821cf4b23f95da22debe776d710df52e38029ba6b846d74b0'
                        transactions:
                        - hash: '0x6ac617a0fc5959e821cf4b23f95da22debe776d710df52e38029ba6b846d74b0'
                          sender: '0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97'
                          amount: '75704252784383499'
                      balances:
                      - text: '32.002190749'
                        currency: ETH
                        numeric: 32002190749000000000
                        exp: 18
                      withdrawal_address: '0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f'
                      withdrawal_credentials: '0x010000000000000000000000b9d7934878b5fb9610b3fe8a5e441e8fad7e293f'
                    meta:
                      protocol: ethereum
                      network: mainnet
                      time_rollup: epoch
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                time_rollup:
                  type: string
                  enum:
                  - epoch
                  - daily
                  - all_time
                  description: The granularity of the rewards data. Use `epoch` for
                    one record per validator per epoch, `daily` for rewards aggregated
                    by UTC calendar day, or `all_time` for cumulative rewards since
                    validator activation.
                  example: daily
                start:
                  type: string
                  example: '2023-07-31'
                  description: 'Lower bound of rewards data. For `epoch` time_rollup:
                    accepts an epoch number as an integer (e.g. 261702) or a date
                    string ("YYYY-MM-DD"). The maximum allowed span is 450 epochs
                    (~2 days) when using epoch numbers, or 2 days when using dates.
                    For `daily` time_rollup: accepts a date string ("YYYY-MM-DD").
                    Ignored for `all_time` time_rollup.'
                end:
                  type: string
                  example: '2023-07-31'
                  description: 'Upper bound of rewards data. For `epoch` time_rollup:
                    accepts an epoch number as an integer (e.g. 261703) or a date
                    string ("YYYY-MM-DD"). The maximum allowed span is 450 epochs
                    (~2 days) when using epoch numbers, or 2 days when using dates.
                    For `daily` time_rollup: accepts a date string ("YYYY-MM-DD").
                    Ignored for `all_time` time_rollup.'
                groups:
                  type: string
                  description: Filter using comma-separated group uuids.
                  example: be982d21-ff93-4092-b56a-f40bac865400,a0ba2333-c541-41f0-ad89-e29a268a3ee5
                network:
                  type: string
                  default: mainnet
                  enum:
                  - mainnet
                  - hoodi
                pubkeys:
                  type: array
                  description: A list of validator pubkeys for filtering.
                  items:
                    type: string
                    example: '0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120'
                withdrawal_addresses:
                  type: array
                  description: A list of withdrawal addresses or credentials for filtering.
                  items:
                    type: string
                    example: '0x010000000000000000000000ed488e6cc4b030eb5bfdde3227c3d5da2b9040e8'
                page:
                  type: object
                  properties:
                    size:
                      type: integer
                      example: 500
                      description: Max number of entries to return. Only available
                        when time_rollup is "all_time".
                    number:
                      type: integer
                      example: 1
                      description: page number of result set. Only available when
                        time_rollup is "all_time"
                include_penalties:
                  type: boolean
                  default: false
                  description: |-
                    When `true`, includes a separate `consensus_penalty` entry in the rewards array representing attestation and sync committee penalties for the period. Defaults to `false`.
                    **Data availability:** Penalty data is available from epoch **427295** (2026-02-12) onward. For periods before this epoch/date, no `consensus_penalty` entry will be present in the response regardless of whether penalties were incurred. For `all_time` rollups, the penalty represents the sum from epoch 427295 (2026-02-12) to present, not the validator's full lifetime.
              required:
              - time_rollup
              - start
              - end
  "/ethereum/withdrawals":
    post:
      summary: Withdrawals
      operationId: eth-withdrawals
      tags:
      - Ethereum
      parameters: []
      responses:
        '200':
          description: List of validator withdrawals.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: integer
                          example: 7642977
                          description: The unique index of the withdrawal on chain
                            (from round robin process).
                        pubkey:
                          type: string
                          example: '0x9999e34d7049e81fb48cefdfa0e671b920ea1a1a292c3596041da2698a9ed303b802806c5ffd49498413c4b97748239f'
                          description: The public key of the validator.
                        validator_index:
                          type: integer
                          example: 626955
                          description: The index of the validator.
                        withdrawal_address:
                          type: string
                          example: '0xe187d594402c8f6b147f22d443406d1b1edebdc7'
                          description: The withdrawal address of the validator.
                        amount_text:
                          type: string
                          example: '32'
                          description: The withdrawal amount (as text).
                        currency:
                          type: string
                          example: ETH
                        amount_numeric:
                          type: integer
                          example: 32000000000000000000
                          description: The withdrawal amount (as an integer) - needs
                            exp below.
                        exp:
                          type: integer
                          example: 18
                          description: The exponent used to calculate the final ETH
                            amount.
                        full_withdrawal:
                          type: boolean
                          example: true
                          description: Whether the validator exited or not.
                        slot:
                          type: integer
                          example: 6694928
                          description: The consensus layer slot at which the withdrawal
                            occurred.
                        block_number:
                          type: integer
                          example: 17512592
                          description: The execution layer block at which the withdrawal
                            occurred.
                        epoch:
                          type: integer
                          example: 209216
                          description: The epoch in which the withdrawal sweep happened.
                        timestamp:
                          type: string
                          example: '2023-06-19T08:25:36Z'
                          description: The timestamp of the end of the epoch.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: ethereum
                        description: The name of the protocol queried.
                      network:
                        type: string
                        enum:
                        - mainnet
                        - hoodi
                        example: mainnet
                        description: Name of the network on which rewards were earned.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start:
                  type: string
                  example: '2023-06-19'
                  description: Lower bound of withdrawal data expressed as epoch number
                    (for epoch rollup only) or timestamps (as strings "YYYY-MM-DD").
                    This parameter is ignored when all_time rollup is requested.
                end:
                  type: string
                  example: '2023-07-19'
                  description: Upper bound of withdrawal data expressed as epoch number
                    (for epoch rollup only) or timestamps (as strings "YYYY-MM-DD").
                    This parameter is ignored when all_time rollup is requested.
                network:
                  type: string
                  nullable: true
                  default: mainnet
                  enum:
                  - mainnet
                  - hoodi
                withdrawal_addresses:
                  type: array
                  description: A set of withdrawal addresses (or withdrawal credentials)
                    to include in the results.
                  nullable: true
                  items:
                    type: string
                    example: '0xe187d594402c8f6b147f22d443406d1b1edebdc7'
                pubkeys:
                  type: array
                  description: A set of validator public keys to include in the results.
                  nullable: true
                  items:
                    type: string
                    example: '0x9999e34d7049e81fb48cefdfa0e671b920ea1a1a292c3596041da2698a9ed303b802806c5ffd49498413c4b97748239f'
              required:
              - start
              - end
  "/ethereum/validators/exits":
    post:
      summary: Exit Validators
      tags:
      - Ethereum
      operationId: exit-validators
      parameters: []
      responses:
        '202':
          description: Exit request accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/validator_to_exit"
                  meta:
                    type: object
                    properties:
                      on_demand_exit_request_id:
                        type: string
                        example: bdb4e909-24f5-412c-a74a-cb030852444f
        '400':
          description: Invalid parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                title: By public keys
                properties:
                  pubkeys:
                    type: array
                    items:
                      type: string
                      example: '0xeacc60f7b5eb2ba92c340836b2e265bcf8e68c2393a5285dd191c221b207908aa0f2d9ae3814dc748c47e70da960da5c'
                      description: The pubkeys of the validators that need to be exited.
                        Must be prefixed with `0x`.
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                required:
                - network
                - pubkeys
              - type: object
                title: By withdrawal address
                properties:
                  withdrawal_address:
                    type: string
                    example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    description: The withdrawal address of the validators that should
                      be exited. Must be prefixed with `0x`.
                  validators_count:
                    type: integer
                    example: 10
                    description: The number of validators to exit.
                  network:
                    type: string
                    example: hoodi
                    enum:
                    - mainnet
                    - hoodi
                required:
                - network
                - withdrawal_address
                - validators_count
  "/ethereum/broadcast_exit_message":
    post:
      summary: Broadcast Exit Message
      tags:
      - Ethereum
      operationId: broadcast-exit-message
      parameters: []
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/broadcast_exit_message"
                example:
                  data:
                    epoch: 182738
                    validator_Index: 483128
                    signature: '0x97f0dde45b0be31fd9a76a60a25216c7b7a14f6fd21a8232cdd8cba8c419c0a618589e98ff8b8a253c9975adc11746de0f34a4d223c7927b8547d19035aeaa48f980e8e510e5278b6a901665aa24d6c54d332d39924ba3d263861a5f1fc3234d'
        '401':
          description: Invalid API key
        '400':
          description: Invalid params
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                epoch:
                  type: string
                  example: '182738'
                  description: The earliest epoch at which the validator can exit.
                    This field must be retrieved from the decrypted exit message.
                validator_index:
                  type: string
                  example: '483128'
                  description: The index of the validators to be exited. This field
                    must be retrieved from the decrypted exit message.
                signature:
                  type: string
                  example: '0x97f0dde45b0be31fd9a76a60a25216c7b7a14f6fd21a8232cdd8cba8c419c0a618589e98ff8b8a253c9975adc11746de0f34a4d223c7927b8547d19035aeaa48f980e8e510e5278b6a901665aa24d6c54d332d39924ba3d263861a5f1fc3234d'
                  description: The exit message signature. This field must be retrieved
                    from the decrypted exit message.
              required:
              - network
              - epoch
              - validator_index
              - signature
  "/ethereum/rewards_rates":
    get:
      tags:
      - Ethereum
      summary: Reward Rates
      operationId: eth-rewards-rates
      parameters:
      - in: query
        name: figment
        schema:
          type: boolean
        required: false
        description: If `true`, returns reward rates for Figment validators. If not,
          returns reward rates for the ETH network.
      - in: query
        name: avg
        schema:
          type: string
          enum:
          - 7d
        required: false
        description: If `7d`, returns the 7 days moving average. If not, returns the
          daily spot rates.
      - in: query
        name: decimal
        schema:
          type: integer
        required: false
        description: Specifies the number of desired decimal to be returned. Accepts
          values between 2 (default) and 5.
      responses:
        '200':
          description: List of rewards rates by date.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: '2023-05-01'
                          description: Timestamp for the day in format "YYYY-MM-DD"
                        value:
                          type: string
                          example: '6.73'
                          description: The total annualized reward rate for that day
                            - in %.
                        consensus:
                          type: string
                          example: '3.81'
                          description: The piece due to consensus layer rewards (inflation)
                            - in %.
                        execution:
                          type: string
                          example: '2.92'
                          description: The piece due to execution layer rewards (transaction
                            fees) - in %.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
  "/ethereum/network_estimates":
    get:
      summary: Ethereum Network Estimates
      operationId: ethereum-network-estimates
      parameters:
      - name: network
        in: query
        required: true
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
      - name: history
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: network estimates
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      activation_estimate:
                        type: object
                        properties:
                          hours:
                            type: integer
                            example: 30
                          history:
                            type: object
                            additionalProperties:
                              type: integer
                        required:
                        - hours
                      exit_estimate:
                        type: object
                        properties:
                          hours:
                            type: integer
                            example: 42
                        required:
                        - hours
                      withdrawal_estimate:
                        type: object
                        properties:
                          hours_min:
                            type: integer
                            example: 5
                          hours_max:
                            type: integer
                            example: 27
                          history:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                hours_min:
                                  type: integer
                                hours_max:
                                  type: integer
                        required:
                        - hours_min
                        - hours_max
                    required:
                    - activation_estimate
                    - exit_estimate
                    - withdrawal_estimate
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: ethereum
                      network:
                        type: string
                        example: mainnet
                    required:
                    - protocol
                    - network
                required:
                - data
                - meta
        '422':
          description: unsupported network
  "/ethereum/addresses/pubkeys":
    post:
      summary: Track Validator
      operationId: track-validator
      tags:
      - Ethereum
      parameters: []
      responses:
        '401':
          description: Invalid API key
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/tracked_validator"
                example:
                  data:
                    id: 031af36c-508a-4f3d-84dd-f46d9e59428f
                    network: hoodi
                    pubkey: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
        '400':
          description: Invalid params
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '409':
          description: Already tracked
        '422':
          description: Validator not found on network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                pubkey:
                  type: string
                  example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
                  description: The pubkey for the validator. Must be prefixed with
                    `0x`.
              required:
              - network
              - pubkey
  "/ethereum/compound":
    post:
      summary: Compound Transaction
      tags:
      - Ethereum
      operationId: ethereum-compound-transaction
      parameters: []
      responses:
        '201':
          description: Created Deposit
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                      signing_payload:
                        type: string
                      unsigned_transaction_serialized:
                        type: string
                      contract_call_data:
                        type: string
        '400':
          description: Bad Request
        '422':
          description: Unprocessable Content
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                amount:
                  type: string
                  example: '1.5'
                  description: Amount to deposit in ETH
                pubkey:
                  type: string
                  example: '0x8d3ba26f9cd79150463588326e4d7259581558bc8345f27abb3e7d7f0bc573df8d54e59583ce667707100119937d22e5'
                funding_address:
                  type: string
                  example: '0x4150b580643677B57debC52a6590b92F36775F8c'
                  description: Address funding the transaction. Defaults to withdrawal
                    address.
              required:
              - network
              - amount
              - pubkey
              example:
                data:
                  network: hoodi
                  unsigned_transaction_serialized: '0x02f901d983088bb0108459682f0084d8fd629e8305dc8f9400000000219ab540356cbb839cbe05303d7705fa880de0b6b3a7640000b901a422895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012027e313b2fda3f1f5e127be21ac5c9fa63f95987441e12840ec574e5b8c8e4bdf00000000000000000000000000000000000000000000000000000000000000308d3ba26f9cd79150463588326e4d7259581558bc8345f27abb3e7d7f0bc573df8d54e59583ce667707100119937d22e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0'
                  signing_payload: '0x3911c019f633312e1e4509ca3d5a8ec9e8620de96166cf6c4bc5b4ae99cca062'
                  contract_call_data: '0x787a73e32e6029687ed9f07530e37af9dae42c6e01b83884c1259553d2a343a38218856efb25daabdc7b4c118c59776a79412a96af522ceee0d483713d76e489865378f6eeeb48000000003b9aca00c0'
  "/solana/stake":
    post:
      summary: Stake
      tags:
      - Solana
      operationId: solana-stake
      parameters: []
      responses:
        '201':
          description: Staking transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/solana_transaction"
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                funding_account:
                  type: string
                  example: your-funding-account-pubkey
                vote_account:
                  type: string
                  example: your-vote-account-pubkey
                amount_sol:
                  type: number
                  example: 10.5
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                  - devnet
                nonce_account:
                  type: string
                  example: your-nonce-account-pubkey
                  nullable: true
                  description: Pubkey of the on-chain nonce account. Enables offline
                    signing without the 60–90s blockhash expiry.
                nonce_authority:
                  type: string
                  example: your-nonce-authority-pubkey
                  nullable: true
                  description: Pubkey of the account authorized to advance the nonce.
                    Defaults to the fee payer if omitted.
              required:
              - funding_account
              - vote_account
              - amount_sol
              - network
  "/solana/broadcast":
    post:
      summary: Broadcast
      tags:
      - Solana
      operationId: solana-broadcast
      parameters: []
      responses:
        '201':
          description: Transaction broadcasted
          content:
            application/json:
              schema:
                type: object
                properties:
                  transaction_hash:
                    type: string
                    example: CvjSFceVoRm8QJUtp1tVTZc1EABSL3HPyrZ9PXckLrJHU5hV3akB5StKJeeSsoUpPVvpzPjZwMi5YYt3e3oq7wE
                    description: The hash of the transaction
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                transaction_payload:
                  type: string
                  example: your-signed-transaction-payload
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                  - devnet
              required:
              - transaction_payload
              - network
  "/solana/undelegate":
    post:
      summary: Undelegate
      tags:
      - Solana
      operationId: solana-undelegate
      parameters: []
      responses:
        '201':
          description: undelegate transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/solana_transaction"
        '422':
          description: Stake account is not active
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stake_account:
                  type: string
                  example: your-stake-account-pubkey
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                  - devnet
                nonce_account:
                  type: string
                  example: your-nonce-account-pubkey
                  nullable: true
                  description: Pubkey of the on-chain nonce account. Enables offline
                    signing without the 60–90s blockhash expiry.
                nonce_authority:
                  type: string
                  example: your-nonce-authority-pubkey
                  nullable: true
                  description: Pubkey of the account authorized to advance the nonce.
                    Defaults to the fee payer if omitted.
              required:
              - stake_account
              - network
  "/solana/withdraw":
    post:
      summary: Withdraw
      tags:
      - Solana
      operationId: solana-withdraw
      parameters: []
      responses:
        '201':
          description: withdraw transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/solana_transaction"
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stake_account:
                  type: string
                  example: your-stake-account-pubkey
                recipient_account:
                  type: string
                  example: your-recipient-account-pubkey
                amount_sol:
                  type: number
                  example: 10.5
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                  - devnet
                nonce_account:
                  type: string
                  example: your-nonce-account-pubkey
                  nullable: true
                  description: Pubkey of the on-chain nonce account. Enables offline
                    signing without the 60–90s blockhash expiry.
                nonce_authority:
                  type: string
                  example: your-nonce-authority-pubkey
                  nullable: true
                  description: Pubkey of the account authorized to advance the nonce.
                    Defaults to the fee payer if omitted.
              required:
              - stake_account
              - recipient_account
              - amount_sol
              - network
  "/solana/stakes":
    get:
      summary: Stakes
      tags:
      - Solana
      operationId: solana-stakes
      parameters:
      - name: network
        in: query
        required: true
        schema:
          type: string
          enum:
          - mainnet
          - testnet
          - devnet
      - name: groups
        in: query
        required: false
        schema:
          type: string
        description: Filter using comma-separated group uuids.
        example: be982d21-ff93-4092-b56a-f40bac865400,a0ba2333-c541-41f0-ad89-e29a268a3ee5
      - name: stake_authority
        in: query
        required: false
        schema:
          type: string
        description: Filter by stake authority public key.
        example: 4qjmvyPVkJG5Jc9g8fY3QHxYm4rKz2JtEpVc7WxD5nE3
      - name: withdraw_authority
        in: query
        required: false
        schema:
          type: string
        description: Filter by withdraw authority public key.
        example: 7sJmFvyPVkJG5Jc9g8fY3QHxYm4rKz2JtEpVc7WxD5nE3
      responses:
        '200':
          description: List Stakes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/tracked_solana_stake_account"
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
  "/solana/rewards":
    post:
      summary: Rewards
      operationId: sol-rewards
      tags:
      - Solana
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        stake_account:
                          type: string
                          description: Returns the stake account that received the
                            rewards.
                        validator:
                          type: string
                          description: Returns the validator that distributed the
                            rewards.
                        stake_authority:
                          type: string
                          description: Returns the stake authority of the stake account.
                        withdraw_authority:
                          type: string
                          description: Returns the withdraw authority of the stake
                            account.
                        epoch:
                          type: string
                          description: The epoch number. Only available on epoch time_rollup
                        timestamp:
                          type: string
                          description: The timestamp at the end of the epoch.
                        rewards:
                          type: array
                          items:
                            type: object
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp).
                            properties:
                              text:
                                type: string
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                              numeric:
                                type: integer
                              exp:
                                type: integer
                              type:
                                type: string
                                description: The type of reward. Either "mev" or "protocol"
                        balances:
                          type: array
                          items:
                            type: object
                            description: The account's current balance.
                            properties:
                              text:
                                type: string
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                              numeric:
                                type: integer
                              exp:
                                type: integer
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        description: The name of the protocol queried.
                      network:
                        type: string
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        description: The unit of the rollup.
              example:
                data:
                - stake_account: 2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95
                  rewards:
                  - text: '0.001390828'
                    currency: SOL
                    numeric: 1390828
                    exp: 9
                    type: protocol
                  - text: '0.000220507'
                    currency: SOL
                    numeric: 220507
                    exp: 9
                    type: mev
                  balances:
                  - text: '3.340325069'
                    currency: SOL
                    numeric: 3340325069
                    exp: 9
                  epoch: 584
                  timestamp: '2024-03-07T18:42:36Z'
                  validator: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
                  stake_authority: EToJFrGakntRnwL8LLikLgXoAfBjgwYhwwYvfVRcrgLL
                  withdraw_authority: EToJFrGakntRnwL8LLikLgXoAfBjgwYhwwYvfVRcrgLL
                meta:
                  protocol: solana
                  network: mainnet
                  time_rollup: epoch
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - "$ref": "#/components/schemas/sol_rewards_req_by_stake_account"
              - "$ref": "#/components/schemas/sol_rewards_req_by_stake_authority"
              - "$ref": "#/components/schemas/sol_rewards_req_by_withdraw_authority"
              - "$ref": "#/components/schemas/sol_rewards_req_by_groups"
  "/solana/rewards_rates":
    get:
      tags:
      - Solana
      summary: Reward Rates
      operationId: sol-rewards-rates
      parameters:
      - in: query
        name: figment
        schema:
          type: boolean
          default: false
        required: false
        description: If `true`, for [our main public validator](https://www.validators.app/validators/Fd7btgySsrjuo25CJCj7oE7VPMyezDhnx7pZkj2v69Nk)
          only. Otherwise, for the whole network.
      - in: query
        name: avg
        schema:
          type: string
          enum:
          - 7d
          default: 7d
        required: false
        description: If `7d`, returns the 7 days moving average. If not, returns the
          daily spot rates.
      - in: query
        name: decimal
        schema:
          type: integer
          default: 2
        required: false
        description: Specifies the number of desired decimal to be returned. Accepts
          values between 2 (default) and 5.
      responses:
        '200':
          description: List of rewards rates
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: '2023-07-05'
                          description: Specific date associated with value (staking
                            reward rates).
                        value:
                          type: string
                          example: '10.37'
                          description: Staking reward rates, in %.
                        protocol:
                          type: string
                          example: '6.81'
                          description: Protocol (inflationary) portion of the staking
                            reward rates, in %.
                        mev:
                          type: string
                          example: '2.91'
                          description: Mev portion of the staking reward rates, in
                            %.
              example:
                data:
                - date: '2024-11-26'
                  value: '10.37'
                  protocol: '6.81'
                  mev: '2.91'
                - date: '2024-11-25'
                  value: '10.37'
                  protocol: '6.81'
                  mev: '2.91'
                - date: '2024-11-24'
                  value: '10.60'
                  protocol: '6.82'
                  mev: '3.78'
                - date: '2024-11-23'
                  value: '11.71'
                  protocol: '6.87'
                  mev: '4.84'
                - date: '2024-11-21'
                  value: '11.93'
                  protocol: '6.78'
                  mev: '4.65'
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
  "/solana/allocated_rewards":
    post:
      summary: Allocated Rewards
      tags:
      - Solana
      operationId: solana-allocated-rewards
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/x-ndjson:
              schema:
                type: object
                properties:
                  stake_account:
                    type: string
                    example: HsHmF24mA182PgXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  stake_authority:
                    type: string
                    example: AQbak1dRySjKfSXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  withdraw_authority:
                    type: string
                    nullable: true
                    example: AQbak1dRySjKfSXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  validator:
                    type: string
                    example: GvZEwtCHZ7YtXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                  epoch:
                    type: integer
                    example: 581
                  timestamp:
                    type: string
                    format: date-time
                    example: '2024-03-01T14:58:33Z'
                  rewards:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - protocol
                          - mev
                          - priority_fees
                          example: protocol
                        numeric:
                          type: string
                          nullable: true
                          example: '1234567890'
                        exp:
                          type: integer
                          example: 9
                        currency:
                          type: string
                          example: SOL
                      required:
                      - type
                      - exp
                      - currency
                required:
                - stake_account
                - stake_authority
                - epoch
                - timestamp
                - rewards
        '401':
          description: Invalid API key
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - mainnet
                  example: mainnet
                  description: Network to query. Only mainnet is supported.
                start:
                  type:
                  - string
                  - integer
                  example: 581
                  description: 'Start of the range. Either an epoch (integer) or a
                    date (YYYY-MM-DD). Maximum range: 90 days or 45 epochs.'
                end:
                  type:
                  - string
                  - integer
                  example: 590
                  description: 'End of the range. Must be the same type as start.
                    Maximum range: 90 days or 45 epochs.'
                stake_accounts:
                  type: array
                  items:
                    type: string
                  example:
                  - HsHmF24mA182Pg...
                  description: Filter results to specific stake account addresses.
                stake_authorities:
                  type: array
                  items:
                    type: string
                  example:
                  - AQbak1dRySjKfS...
                  description: Filter results to specific stake authority addresses.
                withdraw_authorities:
                  type: array
                  items:
                    type: string
                  example:
                  - AQbak1dRySjKfS...
                  description: Filter results to specific withdraw authority addresses.
              required:
              - network
              - start
              - end
  "/addresses":
    get:
      summary: Get Addresses
      tags:
      - Addresses
      operationId: get-addresses
      parameters:
      - name: page[number]
        in: query
        required: false
        description: Page number, starting at 1.
        example: 1
        schema:
          type: integer
      - name: page[size]
        in: query
        required: false
        description: Number of items per page.
        example: 100
        schema:
          type: integer
      - name: protocol
        in: query
        required: false
        description: Filter to a single protocol. Returns 400 if the protocol is unknown.
        example: solana
        schema:
          type: string
      - name: addresses[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Filter to specific addresses, parent or child. A child resolves
          to its parent row. Maximum 100.
      - name: changed_since
        in: query
        required: false
        description: Return only addresses whose `changed_at` is at or after this
          ISO 8601 timestamp.
        example: '2026-08-01T00:00:00Z'
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        address:
                          type: string
                          example: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
                          description: The parent address terms attach to. Query by
                            child address to resolve to its parent.
                        protocol:
                          type: string
                          example: solana
                        network:
                          type: string
                          example: mainnet
                        address_type:
                          type: string
                          enum:
                          - delegator
                          - stake_authority
                          - stake_key
                          - wallet
                          - withdrawal_address
                          example: stake_authority
                          description: Role the address plays for this protocol.
                        added_at:
                          type: string
                          format: date-time
                          description: When Figment first saw this address. Not when
                            it entered your book.
                        changed_at:
                          type: string
                          format: date-time
                          description: 'Greatest of: address first seen, current staking
                            assignment recorded, current rev-share assignment recorded.
                            Use with `changed_since` to sync.'
                        customer:
                          type: object
                          nullable: true
                          description: The organization holding the deal, by id. Names
                            are never returned. Null on the same terms as `contract`.
                          properties:
                            id:
                              type: string
                              format: uuid
                        contract:
                          type: object
                          nullable: true
                          description: Terms of the currently effective staking deal.
                            Null when no deal is in effect for this address, and on
                            an address you hold no deal on — tracking an address does
                            not disclose the terms of someone else's deal.
                          properties:
                            contracted_with:
                              type: string
                              nullable: true
                              example: customer
                              description: Who Figment holds the contract with. Open
                                enum — new values may be added without notice.
                            responsible_for_invoicing:
                              type: string
                              nullable: true
                              enum:
                              - figment
                              - partner
                              example: partner
                              description: Which party invoices the end customer.
                            effective_from:
                              type: string
                              format: date
                              nullable: true
                              example: '2026-01-01'
                            effective_to:
                              type: string
                              format: date
                              nullable: true
                              example:
                              description: End of the deal term. A past date means
                                the contract has ended; the address still appears.
                        fees:
                          type: array
                          nullable: true
                          description: Configured fees, not fees actually applied.
                            Null on the same terms as `contract`.
                          example:
                          - reward_type: inflation_and_mev
                            percentage: '0.08'
                            on_chain: false
                            dynamic: false
                            effective_from: '2026-02-01'
                          - reward_type: priority_fees
                            percentage: '0.06'
                            on_chain: false
                            dynamic: true
                            effective_from: '2026-02-01'
                          items:
                            type: object
                            properties:
                              reward_type:
                                type: string
                                enum:
                                - all
                                - inflation_and_mev
                                - priority_fees
                                example: priority_fees
                                description: Reward stream this fee prices. `all`
                                  where a protocol does not split its rewards.
                              percentage:
                                type: string
                                nullable: true
                                example: '0.06'
                                description: Configured base-tier rate as a decimal
                                  fraction. Null when the fee is taken on chain.
                              on_chain:
                                type: boolean
                                example: false
                                description: Whether the fee is taken on chain. On-chain
                                  rates are not served here.
                              dynamic:
                                type: boolean
                                example: true
                                description: Whether the rate can change due to dynamic
                                  deal tiers.
                              effective_from:
                                type: string
                                format: date
                                nullable: true
                                example: '2026-02-01'
                        rev_share:
                          type: object
                          nullable: true
                          description: Revenue-share terms where a rev-share deal
                            is in effect. Null unless you hold that rev-share deal
                            — holding the staking deal alone does not disclose it.
                          properties:
                            effective_from:
                              type: string
                              format: date
                              nullable: true
                              example: '2026-01-01'
                            effective_to:
                              type: string
                              format: date
                              nullable: true
                              example:
                            shares:
                              type: array
                              example:
                              - reward_type: inflation_and_mev
                                partner_share: '0.3'
                              - reward_type: priority_fees
                                partner_share: '0.5'
                              items:
                                type: object
                                properties:
                                  reward_type:
                                    type: string
                                    example: inflation_and_mev
                                  partner_share:
                                    type: string
                                    nullable: true
                                    example: '0.6'
                                    description: The partner's share of the reward
                                      stream, as a decimal fraction.
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 10
                          total_item_count:
                            type: integer
                            example: 1000
                          has_next:
                            type: boolean
                            example: true
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: The record is invalid
                      details:
                        type: array
                        items:
                          type: object
                          required:
                          - param
                          - message
                          - context
                          - code
                          properties:
                            param:
                              type: string
                              example: example_field
                            message:
                              type: string
                              example: The example_field property has an incorrect
                                value. Must be one of X, Y, or Z.
                            code:
                              type:
                              - integer
                              - string
                              example: 1000
                            context:
                              type: object
        '401':
          description: Invalid API key
    post:
      summary: Track Address
      operationId: tracked-address-create
      parameters: []
      responses:
        '201':
          description: Address created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 123e4567-e89b-12d3-a456-426614174000
                      protocol:
                        type: string
                        example: solana
                      network:
                        type: string
                        example: mainnet
                      address:
                        type: string
                        example: 3ydf2egwcsjvigdqagtcajfcdjayzs4wklxokgerfb8j
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable content
        '400':
          description: Bad request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                protocol:
                  type: string
                  example: ethereum
                  enum:
                  - agoric
                  - aleo
                  - algorand
                  - aptos
                  - audius
                  - avalanche
                  - axelar
                  - babylon
                  - band
                  - berachain
                  - bnb
                  - cardano
                  - casper
                  - celestia
                  - celo
                  - concordium
                  - core
                  - cosmos
                  - cronos
                  - dydx
                  - eigen_layer
                  - ethereum
                  - flow
                  - hyperliquid
                  - initia
                  - injective
                  - iota
                  - kusama
                  - lido
                  - liquid_collective_eth
                  - livepeer
                  - mantra
                  - mina
                  - monad
                  - moonbeam
                  - multiversx
                  - namada
                  - near
                  - opentrade_eth
                  - osmosis
                  - polkadot
                  - polygon
                  - provenance
                  - sei
                  - skale
                  - solana
                  - stacks
                  - starknet
                  - story
                  - sui
                  - the_graph
                  - towns
                  - wemix
                  - zama
                  - zero_gravity
                  - zeta_chain
                address:
                  type: string
                  example: '0xc08131d2dd8d877b18f2cd035ae936a5d3dda93a'
                  description: The account address.
                fee_percentage:
                  type: number
                  example: 0.05
                  description: The gross effective fee for this account as a decimal.
              required:
              - protocol
              - address
  "/ethereum/activities":
    get:
      summary: Activities
      tags:
      - Ethereum
      operationId: ethereum-activities
      description: |
        Returns Ethereum staking activities for the authenticated organization.

        ## Activity types

        | `type`          | Description | Notes |
        |-----------------|-------------|-------|
        | `stake`         | ETH deposited to the deposit contract to provision a validator | |
        | `unstake`       | Validator exit initiated | `tx.hash` and `tx.status` are always `null` — the exit is an off-chain beacon chain message, not an on-chain transaction |
        | `delegation`    | Rewards compounded / top-up stake activated | |
        | `undelegation`  | Partial withdrawal swept from the beacon chain | |
        | `consolidation` | Two validators consolidated into one | |
        | `upgrade`       | Validator credentials upgraded to compounding | |

        `tx.status` reflects the on-chain transaction status (`in_progress`, `confirmed`, `failed`, `expired`).
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: type
        in: query
        required: false
        schema:
          type: string
          enum:
          - stake
          - unstake
          - delegation
          - undelegation
          - consolidation
          - upgrade
        description: Filter by activity type.
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - pending
          - complete
          - failed
        description: Filter by activity-life status.
      - name: address
        in: query
        schema:
          type: string
        required: false
        description: Filter to activities for a wallet address (case-insensitive).
          For Ethereum this is the validator withdrawal address. Matches the `delegation_address`
          returned on each activity.
      - name: start
        in: query
        schema:
          type: string
        required: false
        example: '2024-03-12T00:00:00Z'
      - name: end
        in: query
        schema:
          type: string
        required: false
        example: '2024-03-13T00:00:00Z'
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      responses:
        '200':
          description: List of activities, newest first.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      oneOf:
                      - type: object
                        title: Stake
                        description: ETH deposited to the deposit contract to provision
                          a validator.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              pubkeys:
                                type: array
                                items:
                                  type: string
                                description: Validator pubkey(s) the activity concerns.
                          type:
                            type: string
                            enum:
                            - stake
                            example: stake
                      - type: object
                        title: Unstake
                        description: Validator exit initiated. `tx.hash` and `tx.status`
                          are always `null` — the exit is an off-chain beacon chain
                          message, not an on-chain transaction.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              pubkeys:
                                type: array
                                items:
                                  type: string
                                description: Validator pubkey(s) the activity concerns.
                          type:
                            type: string
                            enum:
                            - unstake
                            example: unstake
                      - type: object
                        title: Delegation
                        description: Rewards compounded / top-up stake activated.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              pubkeys:
                                type: array
                                items:
                                  type: string
                                description: Validator pubkey(s) the activity concerns.
                          type:
                            type: string
                            enum:
                            - delegation
                            example: delegation
                      - type: object
                        title: Undelegation
                        description: Partial withdrawal swept from the beacon chain.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              pubkeys:
                                type: array
                                items:
                                  type: string
                                description: Validator pubkey(s) the activity concerns.
                          type:
                            type: string
                            enum:
                            - undelegation
                            example: undelegation
                      - type: object
                        title: Consolidation
                        description: Two validators consolidated into one. `details`
                          carries the source/target validator pubkeys.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              source:
                                type: string
                                description: Pubkey of the validator consolidated
                                  away (source).
                              target:
                                type: string
                                description: Pubkey of the validator consolidated
                                  into (target).
                          type:
                            type: string
                            enum:
                            - consolidation
                            example: consolidation
                      - type: object
                        title: Upgrade
                        description: Validator credentials upgraded to compounding.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - hoodi
                            example: hoodi
                          protocol:
                            type: string
                            example: ethereum
                          amount:
                            type: number
                            example: 32.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: ETH
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Ethereum, the validator withdrawal address. Matches
                              the `address` filter.
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: 0x4f1a2b…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status. Null until
                                  the transaction is tracked.
                          details:
                            type: object
                            properties:
                              pubkeys:
                                type: array
                                items:
                                  type: string
                                description: Validator pubkey(s) the activity concerns.
                          type:
                            type: string
                            enum:
                            - upgrade
                            example: upgrade
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 10
                          total_item_count:
                            type: integer
                            example: 1000
                          has_next:
                            type: boolean
                            example: true
                example:
                  data:
                  - id: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                    type: stake
                    status: pending
                    network: hoodi
                    protocol: ethereum
                    amount: 32.0
                    currency: ETH
                    timestamp: '2024-03-12T08:02:17Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash: '0xef7310cc8324ce15a483d9578a5a732d203ec8f99f5b84ad8139140ea317a3fb'
                      status: confirmed
                    details:
                      pubkeys:
                      - '0xa1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6'
                  - id: 4a2d0c3b-9f5e-4b7c-8d2f-3e6a9b1c4d5e
                    type: unstake
                    status: pending
                    network: hoodi
                    protocol: ethereum
                    amount: 32.0
                    currency: ETH
                    timestamp: '2024-03-15T14:49:01Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash:
                      status:
                    details:
                      pubkeys:
                      - '0xb2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1'
                  - id: 5b3e1d4c-0a6f-4c8d-9e3a-4f7b0c2d5e6f
                    type: delegation
                    status: complete
                    network: mainnet
                    protocol: ethereum
                    amount: 0.5
                    currency: ETH
                    timestamp: '2024-04-01T10:00:00Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash: '0xabc123def456abc123def456abc123def456abc123def456abc123def456abc1'
                      status: confirmed
                    details:
                      pubkeys:
                      - '0xc3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2'
                  - id: 6c4f2e5d-1b7a-4d9e-0f4b-5a8c1d3e6f7a
                    type: undelegation
                    status: complete
                    network: mainnet
                    protocol: ethereum
                    amount: 1.5
                    currency: ETH
                    timestamp: '2024-04-10T12:00:00Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash: '0xdef456abc123def456abc123def456abc123def456abc123def456abc123def4'
                      status: confirmed
                    details:
                      pubkeys:
                      - '0xd4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3'
                  - id: 7d5a3f6e-2c8b-4e0f-1a5c-6b9d2e4f7a8b
                    type: consolidation
                    status: pending
                    network: mainnet
                    protocol: ethereum
                    amount: 64.0
                    currency: ETH
                    timestamp: '2024-05-01T09:00:00Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash: '0xccc111def456abc123def456abc123def456abc123def456abc123def456ccc1'
                      status: in_progress
                    details:
                      source: '0xb1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8'
                      target: '0xa0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7'
                  - id: 8e6b4a7f-3d9c-4f1a-2b6d-7c0e3f5a8b9c
                    type: upgrade
                    status: complete
                    network: mainnet
                    protocol: ethereum
                    amount: 32.0
                    currency: ETH
                    timestamp: '2024-05-10T11:00:00Z'
                    estimated_completed_at:
                    delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                    tx:
                      hash: '0xeee222def456abc123def456abc123def456abc123def456abc123def456eee2'
                      status: confirmed
                    details:
                      pubkeys:
                      - '0xe5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4'
                  meta:
                    pagination:
                      current_page: 1
                      total_pages: 1
                      total_item_count: 6
        '401':
          description: Invalid API key
  "/ethereum/activities/{id}":
    get:
      summary: Activity
      tags:
      - Ethereum
      operationId: ethereum-activity-v2
      description: Fetch a single Ethereum activity by UUID or transaction hash. See
        the index endpoint for activity type documentation.
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: Activity UUID or transaction hash.
      responses:
        '200':
          description: A single activity.
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  title: Stake
                  description: ETH deposited to the deposit contract to provision
                    a validator.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        pubkeys:
                          type: array
                          items:
                            type: string
                          description: Validator pubkey(s) the activity concerns.
                    type:
                      type: string
                      enum:
                      - stake
                      example: stake
                - type: object
                  title: Unstake
                  description: Validator exit initiated. `tx.hash` and `tx.status`
                    are always `null` — the exit is an off-chain beacon chain message,
                    not an on-chain transaction.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        pubkeys:
                          type: array
                          items:
                            type: string
                          description: Validator pubkey(s) the activity concerns.
                    type:
                      type: string
                      enum:
                      - unstake
                      example: unstake
                - type: object
                  title: Delegation
                  description: Rewards compounded / top-up stake activated.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        pubkeys:
                          type: array
                          items:
                            type: string
                          description: Validator pubkey(s) the activity concerns.
                    type:
                      type: string
                      enum:
                      - delegation
                      example: delegation
                - type: object
                  title: Undelegation
                  description: Partial withdrawal swept from the beacon chain.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        pubkeys:
                          type: array
                          items:
                            type: string
                          description: Validator pubkey(s) the activity concerns.
                    type:
                      type: string
                      enum:
                      - undelegation
                      example: undelegation
                - type: object
                  title: Consolidation
                  description: Two validators consolidated into one. `details` carries
                    the source/target validator pubkeys.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        source:
                          type: string
                          description: Pubkey of the validator consolidated away (source).
                        target:
                          type: string
                          description: Pubkey of the validator consolidated into (target).
                    type:
                      type: string
                      enum:
                      - consolidation
                      example: consolidation
                - type: object
                  title: Upgrade
                  description: Validator credentials upgraded to compounding.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - hoodi
                      example: hoodi
                    protocol:
                      type: string
                      example: ethereum
                    amount:
                      type: number
                      example: 32.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: ETH
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Ethereum,
                        the validator withdrawal address. Matches the `address` filter.
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: 0x4f1a2b…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status. Null until the
                            transaction is tracked.
                    details:
                      type: object
                      properties:
                        pubkeys:
                          type: array
                          items:
                            type: string
                          description: Validator pubkey(s) the activity concerns.
                    type:
                      type: string
                      enum:
                      - upgrade
                      example: upgrade
                example:
                  id: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                  type: stake
                  status: pending
                  network: hoodi
                  protocol: ethereum
                  amount: 32.0
                  currency: ETH
                  timestamp: '2024-03-12T08:02:17Z'
                  estimated_completed_at:
                  delegation_address: '0xabcdef1234567890abcdef1234567890abcdef12'
                  tx:
                    hash: '0xef7310cc8324ce15a483d9578a5a732d203ec8f99f5b84ad8139140ea317a3fb'
                    status: confirmed
                  details:
                    pubkeys:
                    - '0xa1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6'
        '404':
          description: Activity not found.
  "/ethereum/fee_recipient_updates":
    post:
      summary: Update Validator Fee Recipients
      operationId: ethereum-fee-recipient-update-create
      parameters: []
      responses:
        '201':
          description: created
        '422':
          description: invalid network
        '401':
          description: unauthorized
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                new_fee_recipient_address:
                  type: string
                validator_pubkeys:
                  type: array
              required:
              - network
              - new_fee_recipient_address
              - validator_pubkeys
  "/solana/activities":
    get:
      summary: Activities
      tags:
      - Solana
      operationId: solana-activities
      description: |
        Returns Solana staking activities for the authenticated organization.

        ## Activity types

        | `type`         | Description |
        |----------------|-------------|
        | `delegation`   | Stake account delegated to a validator |
        | `undelegation` | Stake account deactivated and removed from validator |
        | `withdrawal`   | SOL withdrawn back to wallet after cooldown |

        All Solana activities are on-chain. `tx.status` reflects the transaction status
        (`in_progress`, `confirmed`, `failed`, `expired`).
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - testnet
          - devnet
        example: mainnet
        required: true
      - name: type
        in: query
        required: false
        schema:
          type: string
          enum:
          - delegation
          - undelegation
          - withdrawal
        description: Filter by activity type.
      - name: status
        in: query
        required: false
        schema:
          type: string
          enum:
          - pending
          - complete
          - failed
        description: Filter by activity-life status.
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      responses:
        '200':
          description: List of activities, newest first.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      oneOf:
                      - type: object
                        title: Delegation
                        description: Stake account delegated to a validator.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - testnet
                            - devnet
                            example: mainnet
                          protocol:
                            type: string
                            example: solana
                          amount:
                            type: number
                            example: 1.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: SOL
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Solana, the stake authority (not the stake account).
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: solTxAbc…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status, resolved
                                  via tx-tracking for SOL.
                          details:
                            type:
                            - object
                            - 'null'
                            description: Type-specific details. Null for activity
                              types that have none, and always null for activities
                              your organization tracks but did not create.
                          type:
                            type: string
                            enum:
                            - delegation
                            example: delegation
                      - type: object
                        title: Undelegation
                        description: Stake account deactivated and removed from validator.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - testnet
                            - devnet
                            example: mainnet
                          protocol:
                            type: string
                            example: solana
                          amount:
                            type: number
                            example: 1.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: SOL
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Solana, the stake authority (not the stake account).
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: solTxAbc…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status, resolved
                                  via tx-tracking for SOL.
                          details:
                            type:
                            - object
                            - 'null'
                            description: Type-specific details. Null for activity
                              types that have none, and always null for activities
                              your organization tracks but did not create.
                          type:
                            type: string
                            enum:
                            - undelegation
                            example: undelegation
                      - type: object
                        title: Withdrawal
                        description: SOL withdrawn back to wallet after cooldown.
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                            description: Activity UUID.
                          status:
                            type: string
                            enum:
                            - pending
                            - complete
                            - failed
                            example: pending
                            description: Activity-life status (warmup/cooldown), not
                              the on-chain status.
                          network:
                            type: string
                            enum:
                            - mainnet
                            - testnet
                            - devnet
                            example: mainnet
                          protocol:
                            type: string
                            example: solana
                          amount:
                            type: number
                            example: 1.0
                            description: Amount in the asset major unit.
                          currency:
                            type: string
                            example: SOL
                          timestamp:
                            type: string
                            example: '2024-03-12T00:00:00.000Z'
                          estimated_completed_at:
                            type:
                            - string
                            - 'null'
                            description: Estimated activity completion time, when
                              known.
                          delegation_address:
                            type:
                            - string
                            - 'null'
                            description: The wallet that originated the activity —
                              for Solana, the stake authority (not the stake account).
                          tx:
                            type: object
                            description: On-chain transaction axis. Distinct from
                              the activity-life `status`.
                            properties:
                              hash:
                                type:
                                - string
                                - 'null'
                                example: solTxAbc…
                                description: Transaction hash, when one exists.
                              status:
                                type:
                                - string
                                - 'null'
                                enum:
                                - in_progress
                                - confirmed
                                - failed
                                - expired
                                -
                                example: confirmed
                                description: On-chain/transaction status, resolved
                                  via tx-tracking for SOL.
                          details:
                            type:
                            - object
                            - 'null'
                            description: Type-specific details. Null for activity
                              types that have none, and always null for activities
                              your organization tracks but did not create.
                          type:
                            type: string
                            enum:
                            - withdrawal
                            example: withdrawal
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 10
                          total_item_count:
                            type: integer
                            example: 1000
                          has_next:
                            type: boolean
                            example: true
                example:
                  data:
                  - id: 9f7c5b8a-4e0d-4a2b-3c7e-8d1f4a6b9c0d
                    type: delegation
                    status: pending
                    network: mainnet
                    protocol: solana
                    amount: 10.0
                    currency: SOL
                    timestamp: '2024-03-12T08:02:17Z'
                    estimated_completed_at:
                    delegation_address: StakeAuth1111111111111111111111111111111111
                    tx:
                      hash: solTxAbcDef123456789
                      status: confirmed
                    details:
                  - id: 0a8d6c9b-5f1e-4b3c-4d8f-9e2a5b7c0d1e
                    type: undelegation
                    status: pending
                    network: mainnet
                    protocol: solana
                    amount: 10.0
                    currency: SOL
                    timestamp: '2024-03-15T10:00:00Z'
                    estimated_completed_at:
                    delegation_address: StakeAuth1111111111111111111111111111111111
                    tx:
                      hash: solTxUndelegate9876
                      status: confirmed
                    details:
                  - id: 1b9e7d0c-6a2f-4c4d-5e9a-0f3b6c8d1e2f
                    type: withdrawal
                    status: complete
                    network: mainnet
                    protocol: solana
                    amount: 10.0
                    currency: SOL
                    timestamp: '2024-03-20T10:00:00Z'
                    estimated_completed_at:
                    delegation_address: StakeAuth1111111111111111111111111111111111
                    tx:
                      hash: solTxWithdraw9876543
                      status: confirmed
                    details:
                  meta:
                    pagination:
                      current_page: 1
                      total_pages: 1
                      total_item_count: 3
  "/solana/activities/{id}":
    get:
      summary: Activity
      tags:
      - Solana
      operationId: get-solana-activity
      description: Fetch a single Solana activity by UUID or transaction hash. See
        the index endpoint for activity type documentation.
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - testnet
          - devnet
        example: mainnet
        required: true
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: Activity UUID or transaction hash.
      responses:
        '200':
          description: A single activity.
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  title: Delegation
                  description: Stake account delegated to a validator.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - testnet
                      - devnet
                      example: mainnet
                    protocol:
                      type: string
                      example: solana
                    amount:
                      type: number
                      example: 1.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: SOL
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Solana,
                        the stake authority (not the stake account).
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: solTxAbc…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status, resolved via tx-tracking
                            for SOL.
                    details:
                      type:
                      - object
                      - 'null'
                      description: Type-specific details. Null for activity types
                        that have none, and always null for activities your organization
                        tracks but did not create.
                    type:
                      type: string
                      enum:
                      - delegation
                      example: delegation
                - type: object
                  title: Undelegation
                  description: Stake account deactivated and removed from validator.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - testnet
                      - devnet
                      example: mainnet
                    protocol:
                      type: string
                      example: solana
                    amount:
                      type: number
                      example: 1.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: SOL
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Solana,
                        the stake authority (not the stake account).
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: solTxAbc…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status, resolved via tx-tracking
                            for SOL.
                    details:
                      type:
                      - object
                      - 'null'
                      description: Type-specific details. Null for activity types
                        that have none, and always null for activities your organization
                        tracks but did not create.
                    type:
                      type: string
                      enum:
                      - undelegation
                      example: undelegation
                - type: object
                  title: Withdrawal
                  description: SOL withdrawn back to wallet after cooldown.
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
                      description: Activity UUID.
                    status:
                      type: string
                      enum:
                      - pending
                      - complete
                      - failed
                      example: pending
                      description: Activity-life status (warmup/cooldown), not the
                        on-chain status.
                    network:
                      type: string
                      enum:
                      - mainnet
                      - testnet
                      - devnet
                      example: mainnet
                    protocol:
                      type: string
                      example: solana
                    amount:
                      type: number
                      example: 1.0
                      description: Amount in the asset major unit.
                    currency:
                      type: string
                      example: SOL
                    timestamp:
                      type: string
                      example: '2024-03-12T00:00:00.000Z'
                    estimated_completed_at:
                      type:
                      - string
                      - 'null'
                      description: Estimated activity completion time, when known.
                    delegation_address:
                      type:
                      - string
                      - 'null'
                      description: The wallet that originated the activity — for Solana,
                        the stake authority (not the stake account).
                    tx:
                      type: object
                      description: On-chain transaction axis. Distinct from the activity-life
                        `status`.
                      properties:
                        hash:
                          type:
                          - string
                          - 'null'
                          example: solTxAbc…
                          description: Transaction hash, when one exists.
                        status:
                          type:
                          - string
                          - 'null'
                          enum:
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          -
                          example: confirmed
                          description: On-chain/transaction status, resolved via tx-tracking
                            for SOL.
                    details:
                      type:
                      - object
                      - 'null'
                      description: Type-specific details. Null for activity types
                        that have none, and always null for activities your organization
                        tracks but did not create.
                    type:
                      type: string
                      enum:
                      - withdrawal
                      example: withdrawal
                example:
                  id: 9f7c5b8a-4e0d-4a2b-3c7e-8d1f4a6b9c0d
                  type: delegation
                  status: pending
                  network: mainnet
                  protocol: solana
                  amount: 10.0
                  currency: SOL
                  timestamp: '2024-03-12T08:02:17Z'
                  estimated_completed_at:
                  delegation_address: StakeAuth1111111111111111111111111111111111
                  tx:
                    hash: solTxAbcDef123456789
                    status: confirmed
                  details:
  "/validators":
    get:
      summary: All Validators
      tags:
      - Validators
      description: Lists the active Figment validators your organization can stake
        to, with their current on-chain commission.
      operationId: list-validators
      parameters:
      - name: page[number]
        in: query
        required: false
        description: Page number, starting at 1.
        example: 1
        schema:
          type: integer
      - name: page[size]
        in: query
        required: false
        description: Number of items per page.
        example: 100
        schema:
          type: integer
      - name: protocol
        in: query
        required: false
        description: Filter results to a single protocol (e.g. `solana`, `near`).
          Returns 400 if the protocol is unknown.
        example: solana
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        protocol:
                          type: string
                          example: solana
                          description: Protocol the validator runs on.
                        network:
                          type: string
                          example: mainnet
                          description: Network within the protocol.
                        address:
                          type: string
                          example: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
                          description: Canonical public identifier for the validator
                            on this protocol.
                        type:
                          type: string
                          example: solana_vote
                          description: Identifier type for the address (e.g. solana_vote,
                            operator, validator, finality_provider).
                        public:
                          type: boolean
                          example: true
                          description: True for public validators open to all Figment
                            customers; false for white label and reserved validators.
                        commission:
                          type: string
                          nullable: true
                          example: '0.07'
                          description: Current on-chain commission rate as a decimal
                            fraction (0.07 = 7%). Null when unknown.
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          current_page:
                            type: integer
                            example: 1
                          total_pages:
                            type: integer
                            example: 10
                          total_item_count:
                            type: integer
                            example: 1000
                          has_next:
                            type: boolean
                            example: true
        '400':
          description: Unknown protocol filter value
        '404':
          description: Endpoint hidden when feature flag is disabled
        '401':
          description: Invalid API key
  "/avalanche/broadcast":
    post:
      summary: Broadcasts
      tags:
      - Avalanche
      operationId: broadcast-avalanche-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      transaction_hash:
                        type: string
                        example: 0xTransactionHash
                        description: Transaction Hash of the broadcasted transaction
                example:
                  type: object
                  properties:
                    network:
                      type: string
                      example: hoodi
                      enum:
                      - mainnet
                      - hoodi
                      description: Network name
                    transaction_hash:
                      type: string
                      example: '0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3'
                      description: The transaction hash from the onchain broadcast.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: fuji
                  enum:
                  - fuji
                  - mainnet
                  description: Avalanche network to build transaction for, mainnet
                    or fuji
                signed_payload:
                  type: string
                  example: 0xSignedPayload
                  description: Signature from signing the signing_payload
                unsigned_transaction_serialized:
                  type: string
                  example: 0xSerializedTransaction
                  description: unsigned_transaction_serialized from the tx response
              required:
              - network
              - signed_payload
              - unsigned_transaction_serialized
  "/avalanche/delegate":
    post:
      summary: Delegate
      tags:
      - Avalanche
      operationId: build-avalanche-delegate-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: fuji
                        description: Avalanche network to build transaction for, mainnet
                          or fuji
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                example:
                  data:
                    network: fuji
                    unsigned_transaction_serialized: '0x7b22636f6465634964223a2230222c22766d223a2250564d222c2274784279746573223a223078303030303030303030303161303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303338333438303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235303030303030303230396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303530303030303030303362396163613030303030303030303130303030303030303039626564616364323032316364346332356637316261363566336438643634613034343133323465303437363939663331616435336633323038663731303330303030303030323364396264616330656431643736313333306366363830656664656231613432313539656233383764366432393530633936663764323866363162626532616130303030303030353030303030303030303030336166343430303030303030313030303030303030303030303030303037393431636166333663353636373661316531313537393135366333353132666538313461373661303030303030303036376235303465343030303030303030303030303030303630303030303030303362396163613030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031336439626461633065643164373631333330636636383065666465623161343231353965623338376436643239353063393666376432386636316262653261613030303030303037303030303030303033623961636130303030303030303030303030303030303030303030303030313030303030303031343036383366313066356537633438303134326262333463613166336166353731613464656232353030303030303062303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c227574786f73223a5b22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303233643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303361663434303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303362396163613030303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235225d2c22616464726573734d617073223a5b5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d2c5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d5d2c2263726564656e7469616c73223a5b5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d2c5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d5d7d'
                    signing_payload: '0x00000000001a000000050000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa0000000700000000000383480000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000209bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000003b9aca00000000010000000009bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000023d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000000003af440000000100000000000000007941caf36c56676a1e11579156c3512fe814a76a0000000067b504e40000000000000006000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000007000000003b9aca000000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000b0000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb25'
        '422':
          description: Invalid request
        '400':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: fuji
                  enum:
                  - fuji
                  - mainnet
                  description: Avalanche network to build transaction for, mainnet
                    or fuji
                from_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain address
                reward_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain address to send rewards to
                amount:
                  type: float
                  example: 10.0
                  description: Amount of AVAX to delegate
                start:
                  type: integer
                  example: 1739568789
                  description: Unix timestamp of when to start delegating
                end:
                  type: integer
                  example: 1739658796
                  description: Unix Timestamp of when to end delegation
                node_id:
                  type: string
                  example: NodeID-41cr9VeX852rtHrELWnHthUV4Bbm75WBY
                  description: NodeId of Validator to delegate to
              required:
              - network
              - from_address
              - amount
              - start
              - end
              - node_id
  "/avalanche/export":
    post:
      summary: Export
      tags:
      - Avalanche
      operationId: build-avalanche-export-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: fuji
                        description: Avalanche network to build transaction for, mainnet
                          or fuji
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                example:
                  data:
                    network: fuji
                    unsigned_transaction_serialized: '0x7b22636f6465634964223a2230222c22766d223a2250564d222c2274784279746573223a223078303030303030303030303161303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303338333438303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235303030303030303230396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303530303030303030303362396163613030303030303030303130303030303030303039626564616364323032316364346332356637316261363566336438643634613034343133323465303437363939663331616435336633323038663731303330303030303030323364396264616330656431643736313333306366363830656664656231613432313539656233383764366432393530633936663764323866363162626532616130303030303030353030303030303030303030336166343430303030303030313030303030303030303030303030303037393431636166333663353636373661316531313537393135366333353132666538313461373661303030303030303036376235303465343030303030303030303030303030303630303030303030303362396163613030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031336439626461633065643164373631333330636636383065666465623161343231353965623338376436643239353063393666376432386636316262653261613030303030303037303030303030303033623961636130303030303030303030303030303030303030303030303030313030303030303031343036383366313066356537633438303134326262333463613166336166353731613464656232353030303030303062303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c227574786f73223a5b22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303233643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303361663434303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303362396163613030303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235225d2c22616464726573734d617073223a5b5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d2c5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d5d2c2263726564656e7469616c73223a5b5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d2c5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d5d7d'
                    signing_payload: '0x00000000001a000000050000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa0000000700000000000383480000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000209bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000003b9aca00000000010000000009bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000023d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000000003af440000000100000000000000007941caf36c56676a1e11579156c3512fe814a76a0000000067b504e40000000000000006000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000007000000003b9aca000000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000b0000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb25'
        '422':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: fuji
                  enum:
                  - fuji
                  - mainnet
                  description: Avalanche network to build transaction for, mainnet
                    or fuji
                from_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain or C-Chain address
                to_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain or C-Chain address
                amount:
                  type: float
                  example: 10.0
                  description: Amount of AVAX to delegate
              required:
              - network
              - from_address
              - to_address
              - amount
        required: true
  "/avalanche/import":
    post:
      summary: Import
      tags:
      - Avalanche
      operationId: build-avalanche-import-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: fuji
                        description: Avalanche network to build transaction for, mainnet
                          or fuji
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                example:
                  data:
                    network: fuji
                    unsigned_transaction_serialized: '0x7b22636f6465634964223a2230222c22766d223a2250564d222c2274784279746573223a223078303030303030303030303161303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303338333438303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235303030303030303230396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303530303030303030303362396163613030303030303030303130303030303030303039626564616364323032316364346332356637316261363566336438643634613034343133323465303437363939663331616435336633323038663731303330303030303030323364396264616330656431643736313333306366363830656664656231613432313539656233383764366432393530633936663764323866363162626532616130303030303030353030303030303030303030336166343430303030303030313030303030303030303030303030303037393431636166333663353636373661316531313537393135366333353132666538313461373661303030303030303036376235303465343030303030303030303030303030303630303030303030303362396163613030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031336439626461633065643164373631333330636636383065666465623161343231353965623338376436643239353063393666376432386636316262653261613030303030303037303030303030303033623961636130303030303030303030303030303030303030303030303030313030303030303031343036383366313066356537633438303134326262333463613166336166353731613464656232353030303030303062303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c227574786f73223a5b22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303233643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303361663434303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303362396163613030303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235225d2c22616464726573734d617073223a5b5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d2c5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d5d2c2263726564656e7469616c73223a5b5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d2c5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d5d7d'
                    signing_payload: '0x00000000001a000000050000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa0000000700000000000383480000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000209bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000003b9aca00000000010000000009bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000023d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000000003af440000000100000000000000007941caf36c56676a1e11579156c3512fe814a76a0000000067b504e40000000000000006000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000007000000003b9aca000000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000b0000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb25'
        '422':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: fuji
                  enum:
                  - fuji
                  - mainnet
                  description: Avalanche network to build transaction for, mainnet
                    or fuji
                from_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain or C-Chain address
                to_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain or C-Chain address
              required:
              - network
              - from_address
              - to_address
        required: true
  "/avalanche/self_bond":
    post:
      summary: Self Bond
      tags:
      - Avalanche
      operationId: build-avalanche-self-bond-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: fuji
                        description: Avalanche network to build transaction for, mainnet
                          or fuji
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                example:
                  data:
                    network: fuji
                    unsigned_transaction_serialized: '0x7b22636f6465634964223a2230222c22766d223a2250564d222c2274784279746573223a223078303030303030303030303161303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303338333438303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235303030303030303230396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303530303030303030303362396163613030303030303030303130303030303030303039626564616364323032316364346332356637316261363566336438643634613034343133323465303437363939663331616435336633323038663731303330303030303030323364396264616330656431643736313333306366363830656664656231613432313539656233383764366432393530633936663764323866363162626532616130303030303030353030303030303030303030336166343430303030303030313030303030303030303030303030303037393431636166333663353636373661316531313537393135366333353132666538313461373661303030303030303036376235303465343030303030303030303030303030303630303030303030303362396163613030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031336439626461633065643164373631333330636636383065666465623161343231353965623338376436643239353063393666376432386636316262653261613030303030303037303030303030303033623961636130303030303030303030303030303030303030303030303030313030303030303031343036383366313066356537633438303134326262333463613166336166353731613464656232353030303030303062303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c227574786f73223a5b22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303233643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303030303361663434303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235222c22307830396265646163643230323163643463323566373162613635663364386436346130343431333234653034373639396633316164353366333230386637313033303030303030303133643962646163306564316437363133333063663638306566646562316134323135396562333837643664323935306339366637643238663631626265326161303030303030303730303030303030303362396163613030303030303030303030303030303030303030303030303031303030303030303134303638336631306635653763343830313432626233346361316633616635373161346465623235225d2c22616464726573734d617073223a5b5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d2c5b5b22307834303638336631306635653763343830313432626233346361316633616635373161346465623235222c305d5d5d2c2263726564656e7469616c73223a5b5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d2c5b2230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030225d5d7d'
                    signing_payload: '0x00000000001a000000050000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa0000000700000000000383480000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000209bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000003b9aca00000000010000000009bedacd2021cd4c25f71ba65f3d8d64a0441324e047699f31ad53f3208f7103000000023d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000005000000000003af440000000100000000000000007941caf36c56676a1e11579156c3512fe814a76a0000000067b504e40000000000000006000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000013d9bdac0ed1d761330cf680efdeb1a42159eb387d6d2950c96f7d28f61bbe2aa00000007000000003b9aca000000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb250000000b0000000000000000000000010000000140683f10f5e7c480142bb34ca1f3af571a4deb25'
        '422':
          description: Invalid request
        '400':
          description: Invalid request format or validation errors
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: fuji
                  enum:
                  - fuji
                  - mainnet
                  description: Avalanche network to build transaction for, mainnet
                    or fuji
                from_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain address
                delegator_rewards_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain address to send delegator rewards to
                reward_address:
                  type: string
                  example: P-fuji1gp5r7y84ulzgq9ptkdx2rua02udym6e9f9u3ac
                  description: P-Chain address to send validator rewards to
                amount:
                  type: float
                  example: 10.0
                  description: Amount of AVAX to self-bond
                start:
                  type: integer
                  example: 1739568789
                  description: Unix timestamp of when the node can accept delegations
                end:
                  type: integer
                  example: 1739658796
                  description: Unix timestamp of when the node expires and will require
                    another self-bond
                node_id:
                  type: string
                  example: NodeID-41cr9VeX852rtHrELWnHthUV4Bbm75WBY
                  description: NodeId of Validator to self-bond to
                bls_public_key:
                  type: string
                  example: '0xb8a89a87149cebd30a9da3d45dc8618389babcbda39c3d295a73d3a42b5b6f2d9c48e9875782052b61a7ded8b42b0568'
                  description: BLS public key of Validator
                bls_proof_of_possession:
                  type: string
                  example: '0x91bbaf766e386a3c93bcbb08c00dff9b0cef510f7999c68f45d4eee1c8b40c507f369a676ae7b0b880ff6f1f2df6b4ed096722ed2b675ea7e4c65a8b92961f646fe9f5b1feb018f548fa572e1bb660825377857af5750bf73ca98bda5696c752'
                  description: BLS proof of possession of Validator
                delegation_fee:
                  type: integer
                  example: 10
                  description: Delegation fee as a percentage between 2 and 100
              required:
              - network
              - from_address
              - amount
              - start
              - end
              - node_id
              - bls_public_key
              - bls_proof_of_possession
              - delegation_fee
        required: true
  "/cardano/broadcast/fireblocks":
    post:
      summary: Broadcast Transaction (Fireblocks)
      tags:
      - Cardano
      operationId: cardano-broadcast-fireblocks-transaction
      parameters: []
      responses:
        '201':
          description: Broadcast Transaction (Fireblocks)
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      tx_hash:
                        type: string
                        example: aaf020d48ba7ade4a96488f49a206e56329e59b53c38ce5be10fe7594356fb9a
                        description: Transaction hash
                example:
                  data:
                    tx_hash: aaf020d48ba7ade4a96488f49a206e56329e59b53c38ce5be10fe7594356fb9a
        '400':
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Fireblocks Transaction
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                unsigned_transaction_serialized:
                  type: string
                  example: 84a50081825820870fdc8c57849ac1038e22578eae6d0c0f5be5bf64a1c1cd39a0644c6594717800018182583900e0e033ce353e02b7c17bc1bd9df35ce5d89ddb50c1e334f07e21ed7884acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2f1b0000000253e61e4b021a0002ad55048183028200581c84acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2f581c8ed5ab11e76094fa2a2ab29fc3a57498d07e68f6fde6f326162eea880e82581ce0e033ce353e02b7c17bc1bd9df35ce5d89ddb50c1e334f07e21ed78581c84acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2fa0f5f6
                  description: Unsigned transaction serialized received from the staking
                    endpoint.
                signed_messages:
                  type: array
                  description: Signed messages received from Fireblocks response body
                  items:
                    type: object
                    properties:
                      publicKey:
                        type: string
                        example: 372425b3404e0bfae60b33c9563ae012d826066eecb3ddca16678
                      signature:
                        type: object
                        properties:
                          fullSig:
                            type: string
                            example: dca8342d19e00ba20e5070c378184222d97bb024496cddbf6d2905bdd503e252ec65fcee1da8b0a023f383cae7e17a87694447ec
                        required:
                        - fullSig
                    required:
                    - publicKey
                    - signature
              required:
              - network
              - unsigned_transaction_serialized
              - signed_messages
              example:
                network: preprod
                unsigned_transaction_serialized: 84a50081825820870fdc8c57849ac1038e22578eae6d0c0f5be5bf64a1c1cd39a0644c6594717800018182583900e0e033ce353e02b7c17bc1bd9df35ce5d89ddb50c1e334f07e21ed7884acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2f1b0000000253e61e4b021a0002ad55048183028200581c84acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2f581c8ed5ab11e76094fa2a2ab29fc3a57498d07e68f6fde6f326162eea880e82581ce0e033ce353e02b7c17bc1bd9df35ce5d89ddb50c1e334f07e21ed78581c84acd54ca2f8ed6c953c055d93c9c4b28a44f8b12569e761b2160e2fa0f5f6
                signed_messages:
                - publicKey: 372425b3404e0bfae60b33c9563ae012d826066eecb3ddca16678
                  signature:
                    fullSig: dca8342d19e00ba20e5070c378184222d97bb024496cddbf6d2905bdd503e252ec65fcee1da8b0a023f383cae7e17a87694447ec
        required: true
  "/cardano/broadcast":
    post:
      summary: Broadcast Transaction
      tags:
      - Cardano
      operationId: cardano-broadcast-transaction
      parameters: []
      responses:
        '201':
          description: Broadcast Transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      tx_hash:
                        type: string
                        example: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
                        description: Transaction hash
                example:
                  data:
                    tx_hash: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
        '400':
          description: Bad Request
        '422':
          description: Unprocessable Content
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Signed Transaction
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                signed_transaction:
                  type: string
                  example: 84a500818258205b740bb52ad83d9215bc29d6f3722957e5eb259a2c457901e932babef6aa3476000181825839004341e2150af2a533abcb9104f18fd89c7386c2f2c27914988efc502994857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b1b0000000253dab14d021a0002ad55048183028200581c94857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b581cba2edef7d8bceb725ac92dde87900116a458a32667fe27bb412c49e50e82581c4341e2150af2a533abcb9104f18fd89c7386c2f2c27914988efc5029581c94857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5ba100818258209ae0eab30411b9b3157e0928379958fc0ad93bf9102215531e65d1582e9f68445840b23a1e2f697ac38f71acd21562c67bb227c73302eb82ddb0ee275f728aae67da33990a0807967a1547ce12a99443e678b7df94c6e5d0afb4b8d5aaf395b72409f5f6
                  description: The unsigned transaction, serialized with the signature.
              required:
              - network
              - signed_transaction
  "/cardano/epochs/{epoch_number}":
    get:
      summary: Epoch
      tags:
      - Cardano
      operationId: cardano-epoch
      parameters:
      - name: epoch_number
        in: path
        schema:
          type: string
          example: latest
        required: true
        description: Epoch number or "latest" for the latest epoch
      - name: network
        in: query
        schema:
          type: string
          example: preprod
          enum:
          - preprod
          - mainnet
        required: true
        description: Network name (mainnet or preprod)
      responses:
        '200':
          description: Returns successful epoch information
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    properties:
                      epoch:
                        type: integer
                        example: 263
                      start_time:
                        type: integer
                        example: 1767657600
                      end_time:
                        type: integer
                        example: 1768089600
                      first_block_time:
                        type: integer
                        example: 1767657602
                      last_block_time:
                        type: integer
                        example: 1767908074
                      block_count:
                        type: integer
                        example: 9163
                      tx_count:
                        type: integer
                        example: 7959
                      output:
                        type: string
                        example: '2948355933234693'
                      fees:
                        type: string
                        example: '3314569711'
                      active_stake:
                        type: string
                        example: '467156126908100'
        '404':
          description: Not Found
        '400':
          description: Bad Request
        '429':
          description: when it reaches the rate limit
        '422':
          description: Unprocessable Entity
  "/cardano/pools":
    get:
      summary: Pools
      tags:
      - Cardano
      operationId: cardano-pools
      parameters:
      - name: network
        in: query
        schema:
          type: string
          example: preprod
          enum:
          - preprod
          - mainnet
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - pools
                properties:
                  pools:
                    type: array
                    items:
                      type: object
                      properties:
                        pool_id:
                          type: string
                          example: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                        live_stake:
                          type: string
                          example: '77952719419020'
                          description: It considers active and pending stakes
                        live_saturation:
                          type: number
                          format: float
                          example: 102.01
                          description: It considers active and pending stakes
                        active_stake:
                          type: string
                          example: '77941719419016'
                          description: It considers active stakes only
                        active_saturation:
                          type: number
                          format: float
                          example: 99.0
                          description: It considers active stakes only
                        public:
                          type: boolean
                          description: true if public pool, false if white labeled
                            pool
                          example: true
                    example:
                    - pool_id: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                      live_stake: '77952719419020'
                      live_saturation: 102.01
                      active_stake: '77941719419016'
                      active_saturation: 99.0
                      public: true
                    - pool_id: pool19yzqr3meksnvzdxh5xf6aknfhldyqdj7eaquxgcjva4mzt5kg3v
                      live_stake: '49009362050188'
                      live_saturation: 64.141
                      active_stake: '49008262050188'
                      active_saturation: 60.0
                      public: true
                    - pool_id: pool15v22rpfg6qx9l0gx0m955gfv7tes0jpa9sy0gjs3a04lv6x9jdr
                      live_stake: '40698810068260'
                      live_saturation: 53.12
                      active_stake: '40588810068260'
                      active_saturation: 51.1
                      public: true
        '429':
          description: when it reaches the rate limit
        '422':
          description: Unprocessable Entity
  "/cardano/rewards_withdrawals":
    get:
      summary: Rewards Withdrawals
      tags:
      - Cardano
      operationId: cardano-rewards-withdrawals
      parameters:
      - name: network
        in: query
        schema:
          type: string
          example: preprod
          enum:
          - preprod
          - mainnet
        required: false
        description: Network to get the rewards withdrawals from. Default is mainnet.
      - name: tx_hash
        in: query
        schema:
          type: string
          example: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
        required: false
        description: Transaction hash of the rewards withdrawal.
      responses:
        '200':
          description: Returns the rewards withdrawals
          content:
            application/json:
              schema:
                type: object
                required:
                - rewards_withdrawals
                properties:
                  rewards_withdrawals:
                    type: array
                    items:
                      type: object
                      properties:
                        timestamp:
                          type: string
                          example: '2026-01-16 21:35:47'
                          description: timestamp of the transaction in UTC
                        amount_quantity:
                          type: string
                          example: '38529434'
                        amount_units:
                          type: string
                          example: lovelace
                        pool_id:
                          type: string
                          example: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                          description: pool id of the pool where the rewards are withdrawn
                            from
                        delegator_address:
                          type: string
                          example: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                          description: The address of the delegator who is withdrawing
                            the rewards
                        destination_address:
                          type: string
                          example: addr_1qzmwrkqkr7g5qyyvxwteqhkqs4wwy9k5fpx6j2q7x2q2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfja2tt
                          description: The target address where the rewards are sent
                            to
                        tx_hash:
                          type: string
                          example: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
                        tx_status:
                          type: string
                          example: confirmed
                          enum:
                          - not_found
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          description: |
                            The current status of the transfer transaction.
                            - **confirmed**: Tansaction has been confirmed.
                            - **in_progress**: Transaction is pending for confirmation.
                            - **failed**: Transaction has failed and will not be confirmed.
                            - **expired**: Transaction has expired and will not be confirmed.
                            - **not_found**: Transaction was not found.
                    example:
                    - timestamp: '2026-01-16 21:35:47'
                      amount_quantity: '38529434'
                      amount_units: lovelace
                      tx_status: confirmed
                      pool_id: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                      delegator_address: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                      destination_address: addr_1qzmwrkqkr7g5qyyvxwteqhkqs4wwy9k5fpx6j2q7x2q2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfja2tt
                      tx_hash: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
                  meta:
                    "$ref": "#/components/schemas/pagination"
  "/cardano/delegate":
    post:
      summary: Delegate
      tags:
      - Cardano
      operationId: cardano-delegate
      parameters: []
      responses:
        '201':
          description: Delegate Transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: preprod
                        enum:
                        - mainnet
                        - preprod
                        description: Network to stake on.
                      unsigned_transaction_serialized:
                        type: string
                        example: unsigned_transaction_serialized
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        example: signing_payload
                        description: Signing payload
                example:
                  data:
                    network: preprod
                    unsigned_transaction_serialized: unsigned_transaction_serialized
                    signing_payload: signing_payload
        '400':
          description: Bad Request
        '422':
          description: Unsupported Network
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Register + Delegate
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                  description: Network to stake on.
                delegator_address:
                  type: string
                  example: delegator_address
                  description: Delegator address
                validator_address:
                  type: string
                  example: validator_address
                  description: Validator address / Pool ID
              required:
              - delegator_address
              - validator_address
              - network
        required: true
  "/cardano/transfer":
    post:
      summary: Transfer
      tags:
      - Cardano
      operationId: cardano-transfer
      parameters: []
      responses:
        '201':
          description: Transfer Transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: preprod
                        enum:
                        - mainnet
                        - preprod
                        description: Network of the transfer
                      unsigned_transaction_serialized:
                        type: string
                        example: unsigned_transaction_serialized
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        example: signing_payload
                        description: Signing payload
                example:
                  data:
                    network: preprod
                    unsigned_transaction_serialized: unsigned_transaction_serialized
                    signing_payload: signing_payload
        '400':
          description: Bad Request
        '422':
          description: Unsupported Network
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Transfer
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                  description: Network of the transfer
                from:
                  type: string
                  example: from
                  description: From account address
                to:
                  type: string
                  example: to
                  description: To account address
                amount:
                  type: integer
                  example: 10
                  description: Amount to transfer
              required:
              - from
              - to
              - amount
              - network
        required: true
  "/cardano/transfers":
    get:
      summary: Transfers
      tags:
      - Cardano
      operationId: cardano-transfers
      parameters:
      - name: network
        in: query
        schema:
          type: string
          example: preprod
          enum:
          - preprod
          - mainnet
        required: false
      - name: tx_hash
        in: query
        schema:
          type: string
          example: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - transfers
                properties:
                  transfers:
                    type: array
                    items:
                      type: object
                      properties:
                        from:
                          type: string
                          example: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                        to:
                          type: string
                          example: addr_1qzmwrkqkr7g5qyyvxwteqhkqs4wwy9k5fpx6j2q7x2q2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfja2tt
                        amount_quantity:
                          type: string
                          example: '1000000000000000000'
                        amount_units:
                          type: string
                          example: lovelace
                        tx_epoch:
                          type: integer
                          example: 998
                          description: epoch in which the transaction was included
                        active_epoch:
                          type: integer
                          example: 1000
                          description: epoch in which the transfered ADA will become
                            eligible for rewards
                        pool_id:
                          type: string
                          example: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                          description: pool id of the pool that the transaction was
                            sent to
                        tx_hash:
                          type: string
                          example: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
                        tx_status:
                          type: string
                          example: confirmed
                          enum:
                          - not_found
                          - in_progress
                          - confirmed
                          - failed
                          - expired
                          description: |
                            The current status of the transfer transaction.
                            - **confirmed**: Tansaction has been confirmed.
                            - **in_progress**: Transaction is pending for confirmation.
                            - **failed**: Transaction has failed and will not be confirmed.
                            - **expired**: Transaction has expired and will not be confirmed.
                            - **not_found**: Transaction was not found.
                        timestamp:
                          type: string
                          example: '2025-10-29T23:18:56.000Z'
                          description: timestamp of the transaction in UTC
                    example:
                    - from: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                      to: addr_1qzmwrkqkr7g5qyyvxwteqhkqs4wwy9k5fpx6j2q7x2q2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfja2tt
                      amount_quantity: '1000000000000000000'
                      amount_units: lovelace
                      tx_epoch: 998
                      active_epoch: 1000
                      pool_id: pool13h08lf24fjmxxg0mmuattjv8dvy0r6fc4hrqg4qmj38xsweexrv
                      tx_hash: 3cbf058b236a1814f558f4c98416efa7920a53fb0bba40f3706812af188311a7
                      tx_status: confirmed
                      timestamp: '2025-10-29T23:18:56.000Z'
  "/cardano/unstake":
    post:
      summary: Unstake
      tags:
      - Cardano
      operationId: cardano-unstake
      parameters: []
      responses:
        '201':
          description: Unstake Transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: preprod
                        enum:
                        - mainnet
                        - preprod
                        description: Network to stake on.
                      unsigned_transaction_serialized:
                        type: string
                        example: unsigned_transaction_serialized
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        example: signing_payload
                        description: Signing payload
                example:
                  data:
                    network: preprod
                    unsigned_transaction_serialized: unsigned_transaction_serialized
                    signing_payload: signing_payload
        '400':
          description: Bad Request
        '422':
          description: Unsupported Network
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Unstake + Deregister
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                  description: Network to stake on.
                delegator_address:
                  type: string
                  example: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                  description: Delegator address
              required:
              - delegator_address
              - network
        required: true
  "/cardano/withdraw_rewards":
    post:
      summary: Withdraw Rewards
      tags:
      - Cardano
      operationId: cardano-withdraw-rewards
      parameters: []
      responses:
        '201':
          description: Withdraw Rewards Transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: preprod
                        enum:
                        - mainnet
                        - preprod
                        description: Network to stake on.
                      unsigned_transaction_serialized:
                        type: string
                        example: 84a4008182582055e97e4581db985557fd6f3eb0cbd3637d82e9ad1abb3e676cd594f193c19e35010181825839004341e2150af2a533abcb9104f18fd89c7386c2f2c27914988efc502994857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b1b0000000253a9a4c2021a00029d2d05a1581de094857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b00a0f5f6
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        example: 8af4e801d3023835fd709c1623df3a6103bc682871a5ab5b9563815cb2c30340
                        description: Signing payload
                      amount:
                        type: string
                        example: '307120.360000'
                        description: Amount of rewards to withdraw in ADA
                example:
                  data:
                    network: preprod
                    unsigned_transaction_serialized: 84a4008182582055e97e4581db985557fd6f3eb0cbd3637d82e9ad1abb3e676cd594f193c19e35010181825839004341e2150af2a533abcb9104f18fd89c7386c2f2c27914988efc502994857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b1b0000000253a9a4c2021a00029d2d05a1581de094857be3e9281e1b394125b069bedd8cd9ef63d2f237ce79484dfd5b00a0f5f6
                    signing_payload: 8af4e801d3023835fd709c1623df3a6103bc682871a5ab5b9563815cb2c30340
                    amount: '307120.360000'
        '400':
          description: Bad Request
        '422':
          description: Unsupported Network
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Withdraw Rewards
              properties:
                network:
                  type: string
                  example: preprod
                  enum:
                  - mainnet
                  - preprod
                  description: Network to stake on.
                delegator_address:
                  type: string
                  example: addr_1235rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m34k2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfjaabc
                  description: Delegator address that will receive the rewards if
                    no target address is provided
                target_address:
                  type: string
                  example: addr_test1qpp5rcs4pte22vatewgsfuv0mzw88pkz7tp8j9yc3m79q2v5s4a786fgrcdnjsf9kp5mahvvm8hk85hjxl88jjzdl4dsfja2tt
                  description: "(Optional) Address to withdraw rewards to. If no target
                    address is provided, the rewards will be sent to the delegator
                    address."
              required:
              - delegator_address
              - network
        required: true
  "/cosmos/broadcast":
    post:
      summary: Broadcast Tx
      tags:
      - Cosmos
      operationId: broadcast-cosmos-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      transaction_hash:
                        type: string
                        description: Transaction hash
                example:
                  data:
                    transaction_hash: 8d775ab05ff98fbdbfe78aef86c2684b3e744dcc4ed15de244c0a1789e587a7f
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Signed Transaction
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                signed_transaction:
                  type: string
                  example: 928c9268b8a8112c61a60000000003004c8eda6ca02e45000000203b4cab4a012095c3a64ae5b0a900000000a8ed3232182095c3a64ae5b0a9a0860100000000000441000000000000004c8eda6ca02e45000000007475bd3e012095c3a64ae5b0a900000000a8ed3232182095c3a64ae5b0a9a0860100000000000441000000000000004c8eda6ca02e457015d289deaa32dd012095c3a64ae5b0a900000000a8ed3232192095c3a64ae5b0a900000000000000000110b29a19ab9c255b00
                  description: The unsigned transaction, serialized with the signature.
              required:
              - network
              - signed_transaction
  "/cosmos/claim_rewards":
    post:
      summary: Claim Rewards
      tags:
      - Cosmos
      operationId: createCosmosClaimRewardsTransaction
      parameters: []
      responses:
        '201':
          description: Claim rewards transaction created
        '400':
          description: Bad request
        '422':
          description: Unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Cosmos network to build transaction for
                delegator_address:
                  type: string
                  example: cosmos1xgfzh9cs5hu4y9pzgclrwgz4ecsjwy2xzd22m4
                  description: The address of the delegator claiming rewards
                validator_addresses:
                  type: array
                  items:
                    type: string
                  example:
                  - cosmosvaloper1zc82yrr9vq2mktzg9en8n64xrrhycnx58pa874
                  description: Validator addresses to claim rewards from.
                pubkey:
                  type: string
                  example: '0277487b80b53698b2ea71a81704770b6fa1702a7f24ff46e73ad854cc0453b087'
                  description: Pubkey value will be retrieved from the chain but if
                    you're using a fresh account (that does not have any outgoing
                    activity) then this information is not available and it requires
                    the user to pass it.
                pubkey_type:
                  type: string
                  enum:
                  - secp256k1
                  - multisig
                  example: secp256k1
                  description: Type of public key of the delegator.
                gas_limit:
                  type: string
                  example: '100000'
                  description: Gas limit for the transaction. This is required if
                    pubkey_type is multisig.
                gas_price:
                  type: string
                  example: '0.0025'
                  description: Gas price for the transaction. This is required if
                    pubkey_type is multisig.
              required:
              - network
              - delegator_address
        required: true
  "/cosmos/delegate":
    post:
      summary: Delegate
      tags:
      - Cosmos
      operationId: createCosmosDelegateTransaction
      parameters: []
      responses:
        '201':
          description: Delegate transaction created
        '400':
          description: Bad request
        '422':
          description: Unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Cosmos network to build transaction for
                delegator_address:
                  type: string
                  example: cosmos1t4f40n05zgrr9y5e6lrpkx2lt7fgs75w5uvu9j
                  description: The address of the delegator
                validator_address:
                  type: string
                  example: cosmosvaloper1zc82yrr9vq2mktzg9en8n64xrrhycnx58pa874
                  description: The address of the validator
                amount:
                  type: string
                  example: '1'
                  description: Amount to delegate
                pubkey:
                  type: string
                  example: '0277487b80b53698b2ea71a81704770b6fa1702a7f24ff46e73ad854cc0453b087'
                  description: Pubkey value will be retrieved from the chain but if
                    you're using a fresh account (that does not have any outgoing
                    activity) then this information is not available and it requires
                    the user to pass it.
                pubkey_type:
                  type: string
                  enum:
                  - secp256k1
                  - multisig
                  example: secp256k1
                  description: Type of public key of the delegator.
                gas_limit:
                  type: string
                  example: '100000'
                  description: Gas limit for the transaction. This is required if
                    pubkey_type is multisig.
                gas_price:
                  type: string
                  example: '0.0025'
                  description: Gas price for the transaction. This is required if
                    pubkey_type is multisig.
              required:
              - network
              - delegator_address
              - validator_address
              - amount
        required: true
  "/cosmos/transfer":
    post:
      summary: Transfer
      tags:
      - Cosmos
      operationId: createCosmosTransferTransaction
      parameters: []
      responses:
        '201':
          description: Transfer transaction created
        '400':
          description: Bad request
        '422':
          description: Unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Cosmos network to build transaction for
                from_account_address:
                  type: string
                  example: cosmos1xgfzh9cs5hu4y9pzgclrwgz4edhywy2xzd22m4
                  description: The address sending the funds
                to_account_address:
                  type: string
                  example: cosmos1yy84cezg6he54uklmr32kysalfhua9n3t8nwpg
                  description: The address receiving the funds
                amount:
                  type: string
                  example: '1'
                  description: Amount to transfer
                pubkey:
                  type: string
                  example: '0277487b80b53698b2ea71a81704770b6fa1702a7f24ff46e73ad854cc0453b087'
                  description: Pubkey value will be retrieved from the chain but if
                    you're using a fresh account (that does not have any outgoing
                    activity) then this information is not available and it requires
                    the user to pass it.
                pubkey_type:
                  type: string
                  enum:
                  - secp256k1
                  - multisig
                  example: secp256k1
                  description: Type of public key of the sender.
                gas_limit:
                  type: string
                  example: '100000'
                  description: Gas limit for the transaction. This is required if
                    pubkey_type is multisig.
                gas_price:
                  type: string
                  example: '0.0025'
                  description: Gas price for the transaction. This is required if
                    pubkey_type is multisig.
              required:
              - network
              - from_account_address
              - to_account_address
              - amount
        required: true
  "/cosmos/undelegate":
    post:
      summary: Undelegate
      tags:
      - Cosmos
      operationId: createCosmosUndelegateTransaction
      parameters: []
      responses:
        '201':
          description: Undelegate transaction created
        '400':
          description: Bad request
        '422':
          description: Unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Cosmos network to build transaction for
                delegator_address:
                  type: string
                  example: cosmos1t4f40n05zgrr9y5e6lrpkx2lt7fgs75w5uvu9j
                  description: The address of the delegator
                validator_address:
                  type: string
                  example: cosmosvaloper1zc82yrr9vq2mktzg9en8n64xrrhycnx58pa874
                  description: The address of the validator
                amount:
                  type: string
                  example: '1'
                  description: Amount to undelegate
                pubkey:
                  type: string
                  example: '0277487b80b53698b2ea71a81704770b6fa1702a7f24ff46e73ad854cc0453b087'
                  description: Public key of the delegator
                pubkey_type:
                  type: string
                  enum:
                  - secp256k1
                  - multisig
                  example: secp256k1
                  description: Type of public key of the delegator.
                gas_limit:
                  type: string
                  example: '100000'
                  description: Gas limit for the transaction. Required if pubkey type
                    is multisig.
                gas_price:
                  type: string
                  example: '0.0025'
                  description: Gas price for the transaction. Required if pubkey type
                    is multisig.
              required:
              - network
              - delegator_address
              - validator_address
              - amount
              - pubkey
        required: true
  "/injective/transactions/broadcast":
    post:
      summary: Broadcast a transaction
      tags:
      - Transactions
      parameters: []
      responses:
        '200':
          description: transaction broadcasted
        '400':
          description: invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - mainnet
                  - testnet
                  example: mainnet
                transaction_payload:
                  type: string
                  description: Signed hex-encoded transaction payload
              required:
              - network
              - transaction_payload
        required: true
  "/near/broadcast":
    post:
      summary: Broadcast Tx
      tags:
      - Near
      operationId: near-broadcast-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      transaction_hash:
                        type: string
                        description: Transaction hash
                example:
                  data:
                    transaction_hash: 8d775ab05ff98fbdbfe78aef86c2684b3e744dcc4ed15de244c0a1789e587a7f
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                title: Signed Transaction
                properties:
                  network:
                    type: string
                    example: mainnet
                    enum:
                    - mainnet
                    - testnet
                    description: Network to broadcast transaction on
                  signed_transaction:
                    type: string
                    example: 928c9268b8a8112c61a60000000003004c8eda6ca02e45000000203b4cab4a012095c3a64ae5b0a900000000a8ed3232182095c3a64ae5b0a9a0860100000000000441000000000000004c8eda6ca02e45000000007475bd3e012095c3a64ae5b0a900000000a8ed3232182095c3a64ae5b0a9a0860100000000000441000000000000004c8eda6ca02e457015d289deaa32dd012095c3a64ae5b0a900000000a8ed3232192095c3a64ae5b0a900000000000000000110b29a19ab9c255b00
                    description: Unsigned transaction, serialized with the signature.
                required:
                - network
                - signed_transaction
              - type: object
                title: Unsigned Transaction + Signature
                properties:
                  network:
                    type: string
                    example: mainnet
                    enum:
                    - mainnet
                    - testnet
                    description: Network to broadcast transaction on
                  unsigned_transaction_serialized:
                    type: string
                    example: '0x02f902d7050f8459682f008459682f9083010fb59494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946dc0'
                    description: Unsigned transaction received from the staking endpoint.
                  signature:
                    type: string
                    example: 001f5402db8b788d3170d8ced5dc82b7cd70a3e85d0890bbf7a4083a05d4a15948274e1e680284bd980e9075ee6da726dde03e642f64d1511de7e74aa899b193f48c
                    description: Signature corresponding to the unsigned transaction.
                required:
                - network
                - unsigned_transaction_serialized
                - signature
  "/near/delegate":
    post:
      summary: Delegate
      tags:
      - Near
      operationId: near-delegate
      parameters: []
      responses:
        '201':
          description: Delegate transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        description: Network the transaction was built for
                      unsigned_transaction_serialized:
                        type: string
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        description: Signing payload
        '400':
          description: Slate networks error
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Network to build transaction for
                delegator_address:
                  type: string
                  example: 614b201c102a17b3b75343d801797df13d2a5707acb315d344d92224a19ff91e
                  description: Address of the delegator
                validator_address:
                  type: string
                  example: gargoyle.pool.f863973.m0
                  description: Address of the validator
                amount:
                  type: string
                  example: '1'
                  description: Amount to delegate
                delegator_pubkey:
                  type: string
                  example: ed25519:Fna6vdGiLHi5ibP59f8cBYjQhjbDxD9gbgsfqYUs1q4z
                  description: Public key of the delegator
              required:
              - network
              - delegator_address
              - validator_address
              - amount
              - delegator_pubkey
        required: true
  "/near/stakes":
    get:
      summary: Get Stakes
      tags:
      - Near
      operationId: near-get-stakes
      parameters:
      - name: network
        in: query
        schema:
          type: string
          example: testnet
          enum:
          - testnet
          - mainnet
          description: Network
        required: true
      responses:
        '200':
          description: Near Stakes
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    "$ref": "#/components/schemas/pagination"
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Stake ID
                          example: 123e4567-e89b-12d3-a456-426614174000
                        epoch:
                          type:
                          - integer
                          - 'null'
                          description: NEAR epoch the balances were captured at
                          example: 4801
                        delegator_address:
                          type: string
                          description: Wallet address used to stake
                          example: wallet-address.testnet
                        validator_address:
                          type: string
                          description: Validator address
                          example: validator.pool.a763272.a0
                        balance_time_stamp:
                          type: string
                          format: datetime
                          description: Timestamp of last balance update
                          example: '2021-01-01T00:00:00Z'
                        balances:
                          type: object
                          properties:
                            staked:
                              type: string
                              description: Staked balance in yoctoNEAR
                              example: '200000000985912653361207'
                            deactivating:
                              type: string
                              description: Unstaked balance that is not yet available
                                to withdraw, in yoctoNEAR
                              example: '0'
                            withdrawable:
                              type: string
                              description: Unstaked balance ready to be withdrawn,
                                in yoctoNEAR
                              example: '972959114646034077150446'
                            total:
                              type: string
                              description: Total balance in yoctoNEAR
                              example: '1172959115631946730511653'
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
  "/near/undelegate":
    post:
      summary: Undelegate
      tags:
      - Near
      operationId: near-undelegate
      parameters: []
      responses:
        '201':
          description: Undelegate
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        description: Network the transaction was built for
                      unsigned_transaction_serialized:
                        type: string
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        description: Signing payload
        '400':
          description: Invalid Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  enum:
                  - testnet
                  - mainnet
                  example: testnet
                  description: Network to build transaction for
                delegator_address:
                  type: string
                  example: 614b201c102a17b3b75343d801797df13d2a5707acb315d344d92224a19ff91e
                  description: Address of the delegator
                validator_address:
                  type: string
                  example: gargoyle.pool.f863973.m0
                  description: Address of the validator
                amount:
                  type: string
                  example: '1'
                  description: Amount to undelegate
                delegator_pubkey:
                  type: string
                  example: ed25519:Fna6vdGiLHi5ibP59f8cBYjQhjbDxD9gbgsfqYUs1q4z
                  description: Public key of the delegator
              required:
              - network
              - delegator_address
              - validator_address
              - amount
              - delegator_pubkey
              - network
        required: true
  "/near/withdraw":
    post:
      summary: Withdraw
      tags:
      - Near
      operationId: near-withdraw
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        description: Network withdrawn from
                      unsigned_transaction_serialized:
                        type: string
                        description: Unsigned transaction serialized
                      signing_payload:
                        type: string
                        description: Signing payload
        '400':
          description: Invalid parameters
        '422':
          description: Unprocessable Entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_address:
                  type: string
                  example: 614b201c102a17b3b75343d801797df13d2a5707acb315d344d92224a19ff91e
                  description: Address to withdraw from
                validator_address:
                  type: string
                  example: gargoyle.pool.f863973.m0
                  description: Validator address to withdraw from
                delegator_pubkey:
                  type: string
                  example: ed25519:Fna6vdGiLHi5ibP59f8cBYjQhjbDxD9gbgsfqYUs1q4z
                  description: Delegator public key
                amount:
                  type: string
                  example: '10.0'
                  description: Amount to withdraw in NEAR
                network:
                  type: string
                  example: testnet
                  enum:
                  - testnet
                  - mainnet
                  description: Network withdraw is on.
              required:
              - delegator_address
              - validator_address
              - delegator_pubkey
              - amount
              - network
              example:
                data:
                  address: 614b201c102a17b3b75343d801797df13d2a5707acb315d344d92224a19ff91e
                  amount: '10.0'
                  network: mainnet
        required: true
  "/opentrade/vaults/{vault_address}/approve":
    parameters:
    - name: vault_address
      in: path
      description: Vault address
      example: '0xe1b1252652A2FF0CC3A4214eE73d9FeD1FEa5b4f'
      required: true
      schema:
        type: string
    post:
      summary: Approve
      tags:
      - Stablecoins
      operationId: opentrade-approve-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      signing_payload:
                        type: string
                        example: '0x4e9e36c3032c59ff3dc186713ca6faad075c2c328182b207cda3b064ebd05690'
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: '0x02f87183aa36a781c38459682f008459682f1a8301b77494fd4f11a2aae86165050688c85ec9ed6210c427a980b844095ea7b3000000000000000000000000d1f0774ccff0ce4f36dea57b6a28ab7feb0a01b00000000000000000000000000000000000000000000000000000000005f5e100c0'
                        description: Hex encoding of the built transaction
                      network:
                        type: string
                        example: mainnet
                        description: Network name
        '422':
          description: Existing USDT allowance is non-zero
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: The record is invalid
                      details:
                        type: array
                        items:
                          type: object
                          required:
                          - param
                          - message
                          - context
                          - code
                          properties:
                            param:
                              type: string
                              example: example_field
                            message:
                              type: string
                              example: The example_field property has an incorrect
                                value. Must be one of X, Y, or Z.
                            code:
                              type:
                              - integer
                              - string
                              example: 1000
                            context:
                              type: object
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                depositor_address:
                  type: string
                  example: '0xF54F2Ddb122F52456E9344d0Ac2F72C7DeB048D3'
                  description: Address of the depositor
                amount:
                  type: string
                  example: '1000'
                  description: Amount to approve, in the vault currency. Accepts whole
                    numbers or decimals (e.g. 1000 or 1000.20). Pass 0 to reset an
                    existing allowance to zero — required before re-approving a USDT
                    vault if the previous request returned USDT_ALLOWANCE_RESET_REQUIRED
                network:
                  type: string
                  example: mainnet
                  description: Network to approve on
  "/opentrade/vaults/{vault_address}/balances/{address}":
    parameters:
    - name: vault_address
      in: path
      description: Vault address
      example: '0xe1b1252652A2FF0CC3A4214eE73d9FeD1FEa5b4f'
      required: true
      schema:
        type: string
    - name: address
      in: path
      description: Address of the depositor
      example: '0xf54f2ddb122f52456e9344d0ac2f72c7deb048d3'
      required: true
      schema:
        type: string
    get:
      summary: Balances
      tags:
      - Stablecoins
      operationId: opentrade-get-address-balance
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      token_balance:
                        type: string
                        example: '114781689324'
                        description: Vault shares held by the account
                      asset_balance:
                        type: string
                        example: '119399097449'
                        description: Underlying asset value of vault shares
                      asset_symbol:
                        type: string
                        example: MUSDC
                        description: Symbol of the underlying asset
                      requested_shares_of:
                        type: string
                        example: '2014000600'
                        description: Shares requested for withdrawal
                      requested_assets_of:
                        type: string
                        example: '2091559517'
                        description: Assets requested for withdrawal
                      exchange_rate:
                        type: string
                        example: '1040227741482692591'
                        description: Exchange rate between shares and assets
        '422':
          description: Invalid address
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '404':
          description: Vault not found
  "/opentrade/vaults/{vault_address}/deposit":
    parameters:
    - name: vault_address
      in: path
      description: Vault address
      example: '0xe1b1252652A2FF0CC3A4214eE73d9FeD1FEa5b4f'
      required: true
      schema:
        type: string
    post:
      summary: Deposit
      tags:
      - Stablecoins
      operationId: opentrade-deposit-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      signing_payload:
                        type: string
                        example: '0xd7461f48930e9619e09ac0bb972638cd177dc665e4cda24b737e2aca802ca5fd'
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: '0x02f87183aa36a781c38459682f008459682f1a8304e43d94d1f0774ccff0ce4f36dea57b6a28ab7feb0a01b080b8446e553f65000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000f54f2ddb122f52456e9344d0ac2f72c7deb048d3c0'
                        description: Hex encoding of the built transaction
                      network:
                        type: string
                        example: mainnet
                        description: Network name
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                depositor_address:
                  type: string
                  example: '0xF54F2Ddb122F52456E9344d0Ac2F72C7DeB048D3'
                  description: Address of the depositor
                assets:
                  type: string
                  example: '1000'
                  description: Amount of USDC to deposit. Accepts whole numbers or
                    decimals (e.g. 1000 or 1000.20)
                network:
                  type: string
                  example: mainnet
                  description: Network to deposit on
  "/opentrade/vaults/{vault_address}/redeem":
    parameters:
    - name: vault_address
      in: path
      description: Vault address
      example: '0xe1b1252652A2FF0CC3A4214eE73d9FeD1FEa5b4f'
      required: true
      schema:
        type: string
    post:
      summary: Redeem
      tags:
      - Stablecoins
      operationId: opentrade-redeem-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      signing_payload:
                        type: string
                        example: '0xea7cfc66127908a67dd48553d330151f0e437601659d69532ec8f9b9170e6bd0'
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: '0x02f85083aa36a781c38459682f008459682f1a830802c894d1f0774ccff0ce4f36dea57b6a28ab7feb0a01b080a4aa2f892d00000000000000000000000000000000000000000000000000000000386dbda8c0'
                        description: Hex encoding of the built transaction
                      network:
                        type: string
                        example: mainnet
                        description: Network name
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                depositor_address:
                  type: string
                  example: '0xF54F2Ddb122F52456E9344d0Ac2F72C7DeB048D3'
                  description: Address of the depositor
                assets:
                  type: string
                  example: '100'
                  description: Amount of USDC to redeem. Accepts whole numbers or
                    decimals (e.g. 100 or 100.20)
                network:
                  type: string
                  example: mainnet
                  description: Network to redeem on
  "/solana/merge":
    post:
      summary: Merge
      tags:
      - Solana
      operationId: build-solana-merge-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: devnet
                        description: Solana network to build transaction for
                        enum:
                        - mainnet
                        - testnet
                        - devnet
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoded transaction payload
                      unsigned_tx_serialized_hex:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoded transaction payload
                      unsigned_tx_serialized_base64:
                        type: string
                        example: 0xSerializedTransaction
                        description: Base64 encoded transaction payload
                      last_valid_block_height:
                        type: number
                        example: 359339325
                        nullable: true
                        description: Block height after which the transaction payload
                          will be expired
                      nonce_value:
                        type: string
                        nullable: true
                        example: GNP8nFAjKFBxL6Bfmti9gBGxCRF7gMaGmEiKfJKpJAaG
                        description: The nonce value used as the transaction's blockhash.
                          Present when nonce_account is provided.
                      is_durable_nonce:
                        type: boolean
                        nullable: true
                        description: True when a durable nonce is used. last_valid_block_height
                          will be null.
        '422':
          description: Invalid request
        '400':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: devnet
                  description: Solana network to build transaction for
                  enum:
                  - mainnet
                  - testnet
                  - devnet
                source_stake_account:
                  type: string
                  example: 4N8VxfxDqHpsPT6w73TzV4qVjp9SGqAfLPAfJsQZCegS
                  description: Source stake account pubkey
                destination_stake_account:
                  type: string
                  example: XW5uYizJd7wQBtVv6dGXFb5emxp8Vh5Vhxqtq9cNsKc
                  description: Destination stake account pubkey
                funding_account_pubkey:
                  type: string
                  example: 77Q11RZr3an6xwPs2gEXkpz2CeZ8bsCmYs9VYviAU6jf
                  description: Pubkey of the account that will fund the transaction.
                    Defaults to the stake authority of the source stake account.
                nonce_account:
                  type: string
                  example: your-nonce-account-pubkey
                  nullable: true
                  description: Pubkey of the on-chain nonce account. Enables offline
                    signing without the 60–90s blockhash expiry.
                nonce_authority:
                  type: string
                  example: your-nonce-authority-pubkey
                  nullable: true
                  description: Pubkey of the account authorized to advance the nonce.
                    Defaults to the fee payer if omitted.
              required:
              - network
              - source_stake_account
              - destination_stake_account
  "/solana/split":
    post:
      summary: Split
      tags:
      - Solana
      operationId: build-solana-split-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: devnet
                        description: Solana network to build transaction for
                        enum:
                        - mainnet
                        - testnet
                        - devnet
                      signing_payload:
                        type: string
                        example: 0xSigningPayload
                        description: Hex encoded payload to sign
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoded transaction payload
                      unsigned_tx_serialized_hex:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoded transaction payload
                      unsigned_tx_serialized_base64:
                        type: string
                        example: 0xSerializedTransaction
                        description: Base64 encoded transaction payload
                      destination_stake_account_pubkey:
                        type: string
                        example: 4ca4gDieqrADT2LwvwK2M6qz9WBSJcP6Q2J2MA6PBfzC
                        description: Pubkey of the destination stake account
                      last_valid_block_height:
                        type: number
                        example: 359339325
                        nullable: true
                        description: Block height after which the transaction payload
                          will be expired
                      nonce_value:
                        type: string
                        nullable: true
                        example: GNP8nFAjKFBxL6Bfmti9gBGxCRF7gMaGmEiKfJKpJAaG
                        description: The nonce value used as the transaction's blockhash.
                          Present when nonce_account is provided.
                      is_durable_nonce:
                        type: boolean
                        nullable: true
                        description: True when a durable nonce is used. last_valid_block_height
                          will be null.
        '422':
          description: Invalid request
        '400':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: devnet
                  description: Solana network to build transaction for
                  enum:
                  - mainnet
                  - testnet
                  - devnet
                stake_account:
                  type: string
                  example: 4N8VxfxDqHpsPT6w73TzV4qVjp9SGqAfLPAfJsQZCegS
                  description: Source stake account pubkey
                funding_account_pubkey:
                  type: string
                  example: 4N8VxfxDqHpsPT6w73TzV4qVjp9SGqAfLPAfJsQZCegS
                  description: Pubkey of the account that will fund the transaction.
                    Defaults to the stake authority of the source stake account.
                amount_sol:
                  type: number
                  example: 10.5
                  description: Amount of SOL to split to the new stake account
                nonce_account:
                  type: string
                  example: your-nonce-account-pubkey
                  nullable: true
                  description: Pubkey of the on-chain nonce account. Enables offline
                    signing without the 60–90s blockhash expiry.
                nonce_authority:
                  type: string
                  example: your-nonce-authority-pubkey
                  nullable: true
                  description: Pubkey of the account authorized to advance the nonce.
                    Defaults to the fee payer if omitted.
              required:
              - network
              - amount_sol
              - stake_account
  "/sui/broadcast":
    post:
      summary: Broadcast Tx
      tags:
      - Sui
      operationId: broadcast-sui-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      transaction_hash:
                        type: string
                        description: Transaction hash
                example:
                  data:
                    transaction_hash: 8d775ab05ff98fbdbfe78aef86c2684b3e744dcc4ed15de244c0a1789e587a7f
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: Invalid params
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: Unsigned Transaction + Signature
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - testnet
                unsigned_transaction_serialized:
                  type: string
                  example: '0x02f902d7050f8459682f008459682f9083010fb59494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946dc0'
                  description: The unsigned transaction received from the staking
                    endpoint.
                signature:
                  type: string
                  example: 001f5402db8b788d3170d8ced5dc82b7cd70a3e85d0890bbf7a4083a05d4a15948274e1e680284bd980e9075ee6da726dde03e642f64d1511de7e74aa899b193f48c
                  description: The signature corresponding to the unsigned transaction.
              required:
              - network
              - unsigned_transaction_serialized
              - signature
  "/sui/stake":
    post:
      summary: Stake
      tags:
      - Sui
      operationId: build-sui-stake-tx
      parameters: []
      responses:
        '201':
          description: transaction created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: mainnet
                        description: Sui network to build transaction for, mainnet
                          or testnet
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                      signing_payload:
                        type: string
                        example: ''
                        optional: true
                example:
                  data:
                    network: mainnet
                    unsigned_transaction_serialized: '0000020008002f68590000000001010000000000000000000000000000000000000000000000000000000000000005010000000000000011002022b35a7481fb136e5585c43421cf8ab49d0e219e902dedc40c2778acdcc7bc9c020200010100000000000000000000000000000000000000000000000000000000000000000000030a7375695f73797374656d11726571756573745f6164645f7374616b6500030101000300000000010200dab0f88cdcc6281a1b74fa3c446d7998c0661c5a3caf37aad9251084aac6704d0344884f0461ab5e78d6690949921757b5c4fe19a081870fda3e597df1c66d630b8811d01400000000209aea917ded43a1145b2f857de7e43b0cf80eca2521bb8ee2e42f1dfaea17ad9b9348579e59a296d072b82d689826b8fc9aa5d910131bbb17d9ae5b63b29c485c8011d014000000002005ef066056d418d07485520e95768c0e5534817fbb35c9ca74d3bf3cc3756679a04f3df578ee6b82df8f6bec1ebef360d373ca4dcdfabbc4362a009d41cccd8b8011d0140000000020c11e6d6cb8d6f7c447bc3a4643e7fab83eeefa4f52257278c543807f4ec916f7dab0f88cdcc6281a1b74fa3c446d7998c0661c5a3caf37aad9251084aac6704de80300000000000000e1f5050000000000'
                    signing_payload: ''
        '422':
          description: Invalid request
        '400':
          description: Invalid request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - testnet
                  - mainnet
                  description: Sui network to build transaction for, mainnet or testnet
                delegator_address:
                  type: string
                  example: '0x5abfae57b89d93ddaa8f39b52ea2ea7b2b93d967e3eb6f4d3c194f3b67756123'
                  description: Signer address
                validator_address:
                  type: string
                  example: '0xdabfae57b89d93ddaa8f39b52ea2ea7b2b93d967e3eb6f4d3c194f3b67756123'
                  description: Validator address
                amount:
                  type: string
                  example: '10.0'
                  description: Amount of Sui to delegate
                gas_budget:
                  type: string
                  example: '0.1'
                  description: Gas budget in Sui for the transaction. Default is 0.1
                  optional: true
                  default: '0.1'
              required:
              - network
              - delegator_address
              - validator_address
              - amount
  "/sui/stakes":
    get:
      summary: Get Stakes
      tags:
      - Sui
      operationId: sui-get-stakes
      parameters:
      - name: network
        in: query
        schema:
          type: string
          example: testnet
          enum:
          - testnet
          - mainnet
          description: Network stake is on.
        required: true
      - name: delegator_address
        in: query
        schema:
          type: string
          description: Wallet address used to stake
        required: true
      responses:
        '200':
          description: Sui Stakes
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    "$ref": "#/components/schemas/pagination"
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        stake_id:
                          type: string
                          description: Stake ID of the staking record
                        delegator_address:
                          type: string
                          description: Wallet address used to stake
                        validator_address:
                          type: string
                          description: Validator address to withdraw from
                        network:
                          type: string
                          description: Network stake is on
                        status:
                          type: string
                          description: Status of the Sui stake
                        tx_hash:
                          type: string
                          description: Transaction hash of the delegation on Sui chain
                        amount:
                          type: float
                          description: Staked amount in Sui
                example:
                  data:
                  - stake_id: '0xabc8822e0aadb358697f049f51c734bf02e992fa8864e13eded521d0f58b0123'
                    delegator_address: '0xabcfae57b89d93ddaa8f39b52ea2ea7b2b93d967e3eb6f4d3c194f3b67756123'
                    validator_address: '0xabc1b319e23495995fc837dafd28fc6af8b645edddff0fc1467f1ad631362123'
                    network: mainnet
                    status: active
                    tx_hash: 4Se1rgNoA5GXDY5A5dqPqyGnKuizMju3dp6jvJmPaabc
                    amount: 3.5
        '422':
          description: Invalid network
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
  "/sui/withdraw":
    post:
      summary: Withdraw Tx
      tags:
      - Sui
      operationId: sui-withdraw-tx
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                        example: mainnet
                        description: Network withdrawn from
                      unsigned_transaction_serialized:
                        type: string
                        example: 0xSerializedTransaction
                        description: Hex encoding of the built transaction
                      signing_payload:
                        type: string
                        example: ''
                        optional: true
                example:
                  data:
                    network: mainnet
                    unsigned_transaction_serialized: '0000020008002f68590000000001010000000000000000000000000000000000000000000000000000000000000005010000000000000011002022b35a7481fb136e5585c43421cf8ab49d0e219e902dedc40c2778acdcc7bc9c020200010100000000000000000000000000000000000000000000000000000000000000000000030a7375695f73797374656d11726571756573745f6164645f7374616b6500030101000300000000010200dab0f88cdcc6281a1b74fa3c446d7998c0661c5a3caf37aad9251084aac6704d0344884f0461ab5e78d6690949921757b5c4fe19a081870fda3e597df1c66d630b8811d01400000000209aea917ded43a1145b2f857de7e43b0cf80eca2521bb8ee2e42f1dfaea17ad9b9348579e59a296d072b82d689826b8fc9aa5d910131bbb17d9ae5b63b29c485c8011d014000000002005ef066056d418d07485520e95768c0e5534817fbb35c9ca74d3bf3cc3756679a04f3df578ee6b82df8f6bec1ebef360d373ca4dcdfabbc4362a009d41cccd8b8011d0140000000020c11e6d6cb8d6f7c447bc3a4643e7fab83eeefa4f52257278c543807f4ec916f7dab0f88cdcc6281a1b74fa3c446d7998c0661c5a3caf37aad9251084aac6704de80300000000000000e1f5050000000000'
                    signing_payload: ''
        '400':
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_address:
                  type: string
                  example: '0x3abfae57b89d93ddaa8f39b52ea2ea7b2b93d967e3eb6f4d3c194f3b67756123'
                  description: Address of the wallet that created the stake
                stake_id:
                  type: string
                  example: '0x13a0a2dbd053366fa3938035aa013ba4791ae22ab85f12a29717bd34062da123'
                  description: ID of stake to withdraw
                network:
                  type: string
                  example: testnet
                  enum:
                  - mainnet
                  - testnet
                  description: Network withdraw is on.
              required:
              - delegator_address
              - stake_id
              - network
              example:
                data:
                  address: '0x3abfae57b89d93ddaa8f39b52ea2ea7b2b93d967e3eb6f4d3c194f3b67756123'
                  stake_id: '0x13a0a2dbd053366fa3938035aa013ba4791ae22ab85f12a29717bd34062da123'
                  network: testnet
        required: true
  "/cardano/rewards_all":
    post:
      summary: Rewards
      tags:
      - Cardano
      operationId: get-cardano-rewards
      parameters: []
      responses:
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        delegator_address:
                          type: string
                          description: Address of the delegator
                        pool_id:
                          type: string
                          description: Pool ID (validator address)
                        stake_key_hash:
                          type: string
                          description: Stake key hash
                        epoch:
                          type: integer
                          example: 450
                          description: Epoch when reward occurred
                        timestamp:
                          type: string
                          example: '2024-10-11'
                          description: Date when reward occurred
                        rewards:
                          type: array
                          description: Rewards received (member and/or leader)
                          items:
                            type: object
                            properties:
                              text:
                                type: string
                                example: '1.0'
                                description: Formatted reward amount as string in
                                  ADA
                              currency:
                                type: string
                                example: ADA
                                description: Currency of the reward
                              numeric:
                                type: integer
                                example: 1000000
                                description: Numerical representation of reward in
                                  Lovelace
                              type:
                                type: string
                                enum:
                                - member
                                - leader
                                example: member
                                description: Type of reward
                              exp:
                                type: integer
                                example: 6
                                description: The exponent to use for converting numeric
                                  value to ADA
                        balances:
                          type: array
                          description: Account balances
                          items:
                            type: object
                            properties:
                              text:
                                type: string
                                example: '1000.0'
                                description: Formatted balance amount as string in
                                  ADA
                              currency:
                                type: string
                                example: ADA
                                description: Currency of the balance
                              numeric:
                                type: integer
                                example: 1000000
                                description: Numerical representation of balance in
                                  Lovelace
                              exp:
                                type: integer
                                example: 6
                                description: The exponent to use for converting numeric
                                  value to ADA
                  meta:
                    type: object
                    properties:
                      network:
                        type: string
                        example: mainnet
                        description: Network where rewards occurred
                      time_rollup:
                        type: string
                        example: epoch
                        description: Time aggregation level
        '400':
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                start:
                  type:
                  - string
                  - integer
                  example: 2024-10-10 or 8
                  description: Rewards received on or after this date (YYYY-MM-DD)
                    or epoch (integer)
                end:
                  type:
                  - string
                  - integer
                  example: 2024-10-16 or 11
                  description: Rewards received on or before this date (YYYY-MM-DD)
                    or epoch (integer)
                delegator_addresses:
                  type: array
                  items:
                    type: string
                  example:
                  - "'addr1...'"
                  - "'addr2...'"
                  description: Optional list of delegator addresses to filter by
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  - preprod
                  description: Select preprod Network if you want to test with mock
                    data
                  default: mainnet
              required:
              - start
              - end
        required: true
  "/ethereum/rewards_net":
    post:
      summary: Net Rewards
      tags:
      - Rewards
      operationId: get-ethereum-net-rewards
      parameters: []
      responses:
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        wallet:
                          type: string
                          description: Address the rewards were received on
                        timestamp:
                          type: string
                          description: Date reward was received on
                        rewards:
                          type: array
                          description: Execution and Consensus rewards received by
                            address
                          items:
                            oneOf:
                            - type: object
                              properties:
                                type:
                                  type: string
                                  example: execution
                                  description: type of reward
                                pubkey:
                                  type: string
                                  example: '0x9027ebabf426534ae093b552880616acf5c487a89fb6de124785387200719f17c4161a07a933c335a16b38b2ce907e7f'
                                  description: Pubkey of validator
                                index:
                                  type: integer
                                  example: 2345
                                  description: Index of validator
                                tx_hash:
                                  type: string
                                  example: '0x3a340300942ea74c8d8029dc82160609f36c27196e9daf7dd3e69dae81447463'
                                  description: TxHash of reward transaction
                                timestamp:
                                  type: string
                                  example: '2024-10-24T00:01:00Z'
                                  description: Timestamp when reward happend
                                block:
                                  type: integer
                                  example: 2000034
                                  description: Block number reward occured at
                                payees:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      address:
                                        type: string
                                        description: Address payout was sent to
                                      amount:
                                        type: string
                                        description: Amount in WEI of payout
                                network:
                                  type: string
                                  example: hoodi
                                  description: Network where reward occurred
                            - type: object
                              properties:
                                type:
                                  type: string
                                  example: withdrawal
                                  description: type of reward
                                pubkey:
                                  type: string
                                  example: '0x9027ebabf426534ae093b552880616acf5c487a89fb6de124785387200719f17c4161a07a933c335a16b38b2ce907e7f'
                                  description: Pubkey of validator
                                index:
                                  type: integer
                                  example: 2345
                                  description: Index of validator
                                amount:
                                  type: string
                                  description: Amount in WEI of payout
                                withdrawal_address:
                                  type: string
                                  example: '0xe86154635fd73979fef12b65a5683f06054ae8a3'
                                  description: Address payout was sent to
                                block:
                                  type: integer
                                  example: 2000034
                                  description: Block number reward occured at
                                epoch:
                                  type: integer
                                  example: 2345
                                  description: Epoch when reward occurred
                                slot:
                                  type: integer
                                  example: 234
                                  description: Slot when reward occurred
                                network:
                                  oneOf:
                                  - type: string
                                  - type: 'null'
                                  example: hoodi
                                  description: Network where reward occurred
        '400':
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                  description: Network to stake on.
                start:
                  type: string
                  example: '2024-10-10'
                  description: Rewards received after this date
                end:
                  type: string
                  example: '2024-10-16'
                  description: Rewards received before this date
              required:
              - network
              - start
              - end
        required: true
  "/opentrade/rewards":
    post:
      summary: Rewards
      tags:
      - Stablecoins
      operationId: get-opentrade-rewards
      parameters: []
      responses:
        '401':
          description: Invalid API key
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: string
                          description: Address that received rewards
                        vault:
                          type: string
                          description: Vault address that received rewards
                        currency:
                          type: string
                          example: USDC
                          enum:
                          - USDC
                          - USDT
                          description: Vault currency the reward is denominated in
                        reward:
                          type: number
                          example: 0.02
                          description: Reward amount in the vault currency
                        reward_usd:
                          type: number
                          example: 0.02
                          description: Reward amount in USD
                        total_staked:
                          type: number
                          example: 2.0
                          description: Total staked to the vault, in the vault currency
                        timestamp:
                          type: string
                          example: '2024-10-24T00:01:00Z'
                          description: Timestamp when reward happened
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  description: Network Rewards are on.
                start:
                  type: string
                  example: '2024-10-10'
                  description: Rewards received on or after this date
                end:
                  type: string
                  example: '2024-10-16'
                  description: Rewards received on or before this date
              required:
              - network
              - start
              - end
        required: true
  "/opentrade/{vault_address}/apr":
    get:
      summary: Annual Percentage Rate
      tags:
      - Stablecoins
      operationId: opentrade-apr
      parameters:
      - name: vault_address
        in: path
        schema:
          type: string
        description: The vault address to get APR for
        example: '0xe1b1252652A2FF0CC3A4214eE73d9FeD1FEa5b4f'
        required: true
      - name: avg
        in: query
        schema:
          type: string
          enum:
          - 30d
          - 90d
          - ytd
          default: 30d
        description: 'The yield period: 30d (30-day trailing), 90d (90-day trailing),
          ytd (year-to-date). Defaults to 30d.'
        example: 30d
        required: false
      - name: decimal
        in: query
        schema:
          type: integer
          default: 2
        description: Number of decimal places in the value (2–5). Defaults to 2.
        example: 2
        required: false
      responses:
        '401':
          description: Invalid API key
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          description: Date of the yield metrics
                        value:
                          type: string
                          nullable: true
                          description: Annualized simple yield for the chosen period
                example:
                  data:
                  - date: '2026-03-30'
                    value: '5.53'
  "/polkadot/rewards":
    post:
      summary: DOT Rewards
      tags:
      - Polkadot
      operationId: polkadot-rewards
      description: Returns Polkadot rewards for the given stash accounts and time
        range.
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        stash_account:
                          type: string
                          example: 13GzuCvjeTPi8EESc5HxgSqrzFgwiGEgSPt6q3HgU5UT4vZo
                          description: Returns the stash account or validator that
                            received the rewards.
                        validator:
                          type: string
                          example: 138QdRbUTB9eNY94Q4Mj5r39FkgMiyHCAy8UFMNA5gvtrfSB
                          description: The validator that distributed the rewards
                        era:
                          type: string
                          example: '845'
                          description: The era number.
                        active_era:
                          type: integer
                        timestamp:
                          type: string
                          example: '2023-07-21T00:00:00Z'
                          description: The timestamp of the end of the era.
                        rewards:
                          type: array
                          items:
                            type: object
                            properties:
                              text:
                                type: string
                                description: The textual version of the other fields
                                  in the rewards object.
                                example: '3.6694634053'
                              currency:
                                type: string
                                description: Currency code (e.g. DOT)
                                example: DOT
                              numeric:
                                type: integer
                                description: Raw reward amount in planck (smallest
                                  unit)
                                example: 36694634053
                              exp:
                                type: integer
                                description: Subunit exponent
                                example: 10
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp).
                        balances:
                          type: array
                          items:
                            type: object
                            properties:
                              text:
                                type: string
                                description: The textual version of the other fields
                                  in the rewards object.
                                example: '211509.8626318288'
                              currency:
                                type: string
                                description: Currency code (e.g. DOT)
                                example: DOT
                              numeric:
                                type: integer
                                description: Raw account balance in planck (smallest
                                  unit)
                                example: 211509.8626318288
                              exp:
                                type: integer
                                description: Subunit exponent
                                example: 10
                            description: The account's staked balance to the validator.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: polkadot
                        description: The name of the protocol queried.
                      network:
                        type: string
                        example: mainnet
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: era
                        description: The unit of the rollup.
        '422':
          description: Unprocessable Entity
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stash_accounts:
                  type: array
                  items:
                    type: string
                    example: 12m7XtVWZQuxTirqtzm2dm5J4r16vSQruPmahThMnskG8Bcp
                  description: Stash accounts addresses.
                start:
                  type: integer
                  description: Either era (number) or timestamps (strings formatted
                    like "YYYY-MM-DD").
                  example: 1115
                end:
                  type: integer
                  description: Either era (number) or timestamps (strings formatted
                    like "YYYY-MM-DD").
                  example: 1145
                time_rollup:
                  type: string
                  enum:
                  - era
                  - daily
                  default: era
                  description: Aggregation unit
              required:
              - stash_accounts
              - start
              - end
        required: true
  "/injective/rewards":
    post:
      summary: Rewards
      tags:
      - Rewards
      operationId: get-injective-rewards
      parameters: []
      responses:
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: string
                          description: Address that received rewards
                        validator:
                          type: string
                          description: Validator address
                        timestamp:
                          type: string
                          example: '2024-10-24T00:01:00Z'
                          description: Timestamp when reward happend
                        reward:
                          type: float
                          example: 0.008
                          description: Reward amount
                        reward_usd:
                          type: float
                          example: 0.02
                          description: Reward amount in USD
                        total_staked:
                          type: float
                          example: 2.0
                          description: Total staked to injective
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  description: Network Rewards are on.
                start:
                  type: string
                  example: '2024-10-10'
                  description: Rewards received on or after this date
                end:
                  type: string
                  example: '2024-10-16'
                  description: Rewards received on or before this date
              required:
              - network
              - start
              - end
        required: true
  "/sui/rewards":
    post:
      summary: Rewards
      tags:
      - Rewards
      operationId: get-sui-rewards
      parameters: []
      responses:
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: string
                          description: Address that received rewards
                        validator:
                          type: string
                          description: Validator's staking pool address
                        timestamp:
                          type: string
                          example: '2024-10-24T00:01:00Z'
                          description: Timestamp when reward happend
                        reward:
                          type: float
                          example: 0.008
                          description: Reward amount
                        reward_usd:
                          type: float
                          example: 0.02
                          description: Reward amount in USD
                        total_staked:
                          type: float
                          example: 2.0
                          description: Total staked to sui
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  description: Network Rewards are on.
                start:
                  type: string
                  example: '2024-10-10'
                  description: Rewards received on or after this date
                end:
                  type: string
                  example: '2024-10-16'
                  description: Rewards received on or before this date
              required:
              - network
              - start
              - end
        required: true
  "/avalanche/rewards":
    post:
      summary: Rewards
      tags:
      - Rewards
      operationId: get-avalanche-rewards
      parameters: []
      responses:
        '200':
          description: Got rewards
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        address:
                          type: string
                          description: Address that received rewards
                        validator:
                          type: string
                          description: Validator address
                        timestamp:
                          type: string
                          example: '2024-10-24T00:01:00Z'
                          description: Timestamp when reward happend
                        reward:
                          type: float
                          example: 0.008
                          description: Reward amount
                        reward_usd:
                          type: float
                          example: 0.02
                          description: Reward amount in USD
                        total_staked:
                          type: float
                          example: 2.0
                          description: Total staked to avalanche
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  enum:
                  - mainnet
                  description: Network Rewards are on.
                start:
                  type: string
                  example: '2024-10-10'
                  description: Rewards received on or after this date
                end:
                  type: string
                  example: '2024-10-16'
                  description: Rewards received on or before this date
              required:
              - network
              - start
              - end
        required: true
  "/sui/rewards_rates":
    get:
      summary: Rewards Rates
      tags:
      - Rewards
      operationId: get-sui-rewards-rates
      parameters:
      - name: avg
        in: query
        schema:
          type: string
          enum:
          - 7d
          default: 7d
        description: If 7d, returns the 7 days moving average. If not, returns the
          daily spot rates.
        example: 7d
        required: false
      - name: decimal
        in: query
        schema:
          type: integer
          default: 2
        description: Specifies the number of desired decimal to be returned. Accepts
          values between 2 (default) and 5.
        example: 2
        required: false
      responses:
        '401':
          description: Invalid API key
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          description: Date of the rewards rate
                        value:
                          type: string
                          description: SRR moving average value based on avg parameter
                example:
                  data:
                  - date: '2023-08-05'
                    value: '3.49'
  "/cardano/rewards_rates":
    get:
      summary: Rewards Rates
      tags:
      - Rewards
      operationId: get-cardano-rewards-rates
      parameters:
      - name: avg
        in: query
        schema:
          type: string
          enum:
          - 7d
          default: 7d
        description: If 7d, returns the 7 days moving average. If not, returns the
          daily spot rates.
        example: 7d
        required: false
      - name: decimal
        in: query
        schema:
          type: integer
          default: 2
        description: Specifies the number of desired decimal to be returned. Accepts
          values between 2 (default) and 5.
        example: 2
        required: false
      responses:
        '401':
          description: Invalid API key
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          description: Date of the rewards rate
                        value:
                          type: string
                          description: SRR moving average value based on avg parameter
                example:
                  data:
                  - date: '2023-08-05'
                    value: '3.49'
  "/aptos/stakes":
    post:
      summary: Get staking transaction
      tags:
      - Aptos
      operationId: aptos-stake
      parameters: []
      responses:
        '201':
          description: Successfully got staking tx
          content:
            application/json:
              schema:
                type: object
                properties:
                  signing_payload:
                    type: string
                  transaction_payload:
                    type: string
                example:
                  transaction_payload: '0xabf1e1fd0791abd362a97525da8b5f5169379d06bb66d7e507180c9f557879a302000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c096164645f7374616b650002200a4113560d0b18ba38797f2a899c4b27e0c5b0476be5d8f6be68fba8b1861ed0080065cd1d00000000400d03000000000064000000000000007b2e6766000000000200'
                  signing_payload: '0xb5e97db07fa0bd0e5598aa3643a9bc6f6693bddc1a9fec9e674a461eaa00b193abf1e1fd0791abd362a97525da8b5f5169379d06bb66d7e507180c9f557879a302000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c096164645f7374616b650002200a4113560d0b18ba38797f2a899c4b27e0c5b0476be5d8f6be68fba8b1861ed0080065cd1d00000000400d03000000000064000000000000007b2e67660000000002'
        '422':
          description: Invalid API key usage
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '400':
          description: invalid arguments
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: mainnet
                  description: Which Aptos network to stake on.
                  required: true
                signer_address:
                  type: string
                  example: '0xabf1e1fd0791abd362a97525da8b5f5169379d06bb66d7e507180c9f557879a3'
                  description: address of wallet to stake.
                  required: true
                amount:
                  type: integer
                  example: 500000
                  description: Amount of APT to stake.
                  required: true
        required: true
  "/ethereum/addresses/pubkeys/{pubkey}":
    delete:
      summary: Untrack Validator
      tags:
      - Ethereum
      operationId: untrack-validator
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: pubkey
        in: path
        required: true
        example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
        description: The pubkey for the validator. Must be prefixed with `0x`.
        schema:
          type: string
      responses:
        '200':
          description: Untracked
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/tracked_validator"
                example:
                  data:
                    id: 031af36c-508a-4f3d-84dd-f46d9e59428f
                    network: hoodi
                    pubkey: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
        '404':
          description: Not found
        '422':
          description: Cannot untrack validator
        '401':
          description: Invalid API key
  "/ethereum/validators/0x02":
    post:
      summary: Create Pectra Validators
      tags:
      - Ethereum
      operationId: create-pectra-validators
      parameters: []
      responses:
        '201':
          description: Created validators
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/validator_provision_response"
                  meta:
                    "$ref": "#/components/schemas/validators_create_meta_aggregated_pectra"
                example:
                  data:
                  - network: hoodi
                    pubkey: '0x8fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad'
                    status: provisioned
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    region: ca-central-1
                    deposit_data:
                      deposit_data_root: '0xfd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4b'
                      deposit_message_root: '0xae8ccf82724a48014e7f694c3ee329210e435059d73a4fa4da2bcd825ced381e'
                      fork_version: '0x01017000'
                      signature: '0x802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a29'
                      figment_signature: '0x308188024200e8a18a258b03149255a0fc4a62a6c51b99ce38c8a33b91b57d76ca1f37484a18d1efa2c2bc6182ad284ff8aad076248f27af179c0b86a6542fa67185aa1cc9f50e02420147dacbaf9cdae0638d44b824f199d9f8047d5eb9ae4ee3dfe9d1860ba7582ac4be464d46647d7ed3adac83789ec88f2b6d4ac426d90126076589291d83735c63a3'
                      deposit_cli_version: 2.7.0
                      amount: 32000000000
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2024-02-22T14:14:07.848Z'
                    status_estimates:
                      estimated_active_at:
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                    staking_request:
                      id: f9764269-ddb8-451f-9f81-fd460e3e2f14
                      created_at: '2024-02-22T14:14:07.848Z'
                  - network: hoodi
                    pubkey: '0xaafc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67c3e'
                    status: provisioned
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    region: ca-central-1
                    deposit_data:
                      deposit_data_root: '0xfd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4c'
                      deposit_message_root: '0xae8ccf82724a48014e7f694c3ee329210e435059d73a4fa4da2bcd825ced381f'
                      fork_version: '0x01017000'
                      signature: '0x802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a29'
                      figment_signature: '0x308188024200e8a18a258b03149255a0fc4a62a6c51b99ce38c8a33b91b57d76ca1f37484a18d1efa2c2bc6182ad284ff8aad076248f27af179c0b86a6542fa67185aa1cc9f50e02420147dacbaf9cdae0638d44b824f199d9f8047d5eb9ae4ee3dfe9d1860ba7582ac4be464d46647d7ed3adac83789ec88f2b6d4ac426d90126076589291d83735c63a3'
                      deposit_cli_version: 2.7.0
                      amount: 33000000000
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2024-02-22T14:14:07.848Z'
                    status_estimates:
                      estimated_active_at:
                      estimated_exit_at:
                      estimated_withdrawal_at:
                    on_demand_exit:
                      requested_at:
                      approved_at:
                      submitted_at:
                      request_id:
                    exit_message:
                    staking_request:
                      id: f9764269-ddb8-451f-9f81-fd460e3e2f14
                      created_at: '2024-02-22T14:14:07.848Z'
                  meta:
                    staking_request:
                      id: f9764269-ddb8-451f-9f81-fd460e3e2f14
                      created_at: '2024-02-22T14:14:07.848Z'
                      amounts:
                      - '32'
                      - '33'
                      withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                      network: hoodi
                      region: ca-central-1
                    staking_transaction:
                      from: '0xE40F80618324C814cD444434670a44ba4583aE38'
                      to: '0xA627f94a8F94E4713d38F52aC3a6377B0a111d47'
                      amount_wei: '65000000000000000000'
                      contract_call_data: '0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a290000000000000000000000000000000000000000000000000000000000000001fd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4b'
                      unsigned_transaction_hashed: '0x3ac39ee1d324ed9816a8de4fc5f41d071bb2e522bac1fa9ea85684f6911977c4'
                      unsigned_transaction_serialized: '0x02f902d9824268058459682f0084ce33ae928305dc8f94a627f94a8f94e4713d38f52ac3a6377b0a111d478901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308fc7b098767d6b45f431ac820f6884f6f74bbebee4e6f30456bbcf48a280248307a8260f2913a27c076f2f0c64c67aad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060802bec470e333c380a0c530361e76cfa27f662a411d993a663aa080070601411aae1263ccbd8f812199b1fff091e20fc0b7e793c1d0313d36d27040588d578fd8b6029be264cf79533132d1df0d40dc9ce5ba159fe4c936e9c4b4c9bf2988a290000000000000000000000000000000000000000000000000000000000000001fd997ecea9711498990181f0e3f8426b1c9528e61a8fbcc999db5fb3b3d6ca4bc0'
                      max_gas_wei: '1328940220021646'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: 0x02 Validators (Pectra)
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                  description: The network on which validators will be created.
                amounts:
                  type: array
                  items:
                    type: string
                  example:
                  - '32'
                  - '33'
                  - '64'
                  description: Per-validator deposit amounts in ETH, one array entry
                    per validator to create. Each entry is a numeric string between
                    32 and 2048. Send separate array elements, one per validator —
                    e.g. `["32", "32", "64"]` for three validators. Do not pass a
                    single comma-joined string such as `["32, 32, 64"]`.
                withdrawal_address:
                  type: string
                  example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                  description: An ETH wallet address used for the withdrawals credentials
                    of the validators. This is the address that will receive consensus
                    rewards and unstaked ETH after exiting.
                funding_address:
                  type: string
                  example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                  description: An ETH wallet address that holds the ETH to be staked
                    and that will sign the staking transaction. If not specified,
                    `withdrawal_address` will be used.
                fee_recipient_address:
                  type: string
                  example: '0xE40F80618324C814cD444434670a44ba4583aE38'
                  description: An ETH wallet address that will receive the execution
                    layer rewards. If not specified, `withdrawal_address` will be
                    used.
                region:
                  type: string
                  example: ca-central-1
                  description: The geographic region where the validators will be
                    created.
                  enum:
                  - ca-central-1
                  - eu-west-1
              required:
              - network
              - withdrawal_address
              - amounts
  "/ethereum/consolidation":
    post:
      summary: Consolidation Transaction
      tags:
      - Ethereum
      operationId: ethereum-consolidation-transaction
      parameters: []
      responses:
        '201':
          description: Created Consolidation transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                      signing_payload:
                        type: string
                      unsigned_transaction_serialized:
                        type: string
                      contract_call_data:
                        type: string
        '400':
          description: Bad Request
        '422':
          description: Unprocessable Content
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                source:
                  type: string
                  example: '0xa043ddb3499ecfa845d39e855a12964c0280ee0b12ee90b762a700a6937af868f3d3a761fb65c9a0c63c0af247058775'
                  description: Source validator pubkey
                target:
                  type: string
                  example: '0x92897962d46a800423aea934efe915fed7d41c68d704dba1647f43719f0bee3fb6b5b6f1a1d2b7a9e8c936293b94430a'
                  description: Target validator pubkey
              required:
              - network
              - source
              - target
              example:
                data:
                  network: hoodi
                  unsigned_transaction_serialized: '0x02f88c83088bb0588459682f00845a980e068305dc8f940000bbddc7ce488642fb579f8b00f3a59000725101b860a043ddb3499ecfa845d39e855a12964c0280ee0b12ee90b762a700a6937af868f3d3a761fb65c9a0c63c0af24705877592897962d46a800423aea934efe915fed7d41c68d704dba1647f43719f0bee3fb6b5b6f1a1d2b7a9e8c936293b94430ac0'
                  signing_payload: '0x6d3f976a94449ffe5cfe77d26d566b11ddfe8705bf8555d01ac65c0accfd81ba'
  "/ethereum/withdrawal":
    post:
      summary: Withdrawal Transaction
      tags:
      - Ethereum
      operationId: ethereum-withdrawal-transaction
      parameters: []
      responses:
        '201':
          description: Created Withdrawal transaction
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      network:
                        type: string
                      signing_payload:
                        type: string
                      unsigned_transaction_serialized:
                        type: string
                      contract_call_data:
                        type: string
        '400':
          description: Bad Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: hoodi
                  enum:
                  - mainnet
                  - hoodi
                amount:
                  type: string
                  example: '1.5'
                  description: Amount to withdraw in ETH
                pubkey:
                  type: string
                  example: '0x84c1259553d2a343a38218856efb25daabdc7b4c118c59776a79412a96af522ceee0d483713d76e489865378f6eeeb48'
              required:
              - network
              - amount
              - pubkey
              example:
                data:
                  network: hoodi
                  unsigned_transaction_serialized: '0x02f901d983088bb0108459682f0084d8fd629e8305dc8f9400000000219ab540356cbb839cbe05303d7705fa880de0b6b3a7640000b901a422895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012027e313b2fda3f1f5e127be21ac5c9fa63f95987441e12840ec574e5b8c8e4bdf00000000000000000000000000000000000000000000000000000000000000308d3ba26f9cd79150463588326e4d7259581558bc8345f27abb3e7d7f0bc573df8d54e59583ce667707100119937d22e500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0'
                  signing_payload: '0x3911c019f633312e1e4509ca3d5a8ec9e8620de96166cf6c4bc5b4ae99cca062'
                  contract_call_data: '0x787a73e32e6029687ed9f07530e37af9dae42c6e01b83884c1259553d2a343a38218856efb25daabdc7b4c118c59776a79412a96af522ceee0d483713d76e489865378f6eeeb48000000003b9aca00c0'
  "/ethereum/validators/{pubkey}":
    get:
      summary: Get Validator
      tags:
      - Ethereum
      operationId: get-validator
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: pubkey
        in: path
        required: true
        example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
        description: The pubkey for the validator. Must be prefixed with `0x`.
        schema:
          type: string
      - name: include_fields
        in: query
        required: false
        style: form
        explode: false
        schema:
          type: array
          description: A comma-separated list of additional objects to include in
            the response.
          items:
            type: string
            enum:
            - deposit_data
            - status_history
            - status_estimates
            - on_demand_exit
            - exit_message
            - staking_request
            - balances
          example:
          - deposit_data
          - status_history
          - status_estimates
          - on_demand_exit
          - exit_message
          - staking_request
          - balances
      responses:
        '200':
          description: A single validator
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/validator"
                example:
                  data:
                    id: 8a075b89-c1f7-4381-a158-8ee866bf68bc
                    network: hoodi
                    pubkey: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
                    withdrawal_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    withdrawal_credentials: '0x010000000000000000000000e40f80618324c814cd444434670a44ba4583ae38'
                    net_fee_payout_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    fee_recipient_address: '0xE40F80618324C814cD444434670a44ba4583aE38'
                    status: withdrawal_done
                    region: ca-central-1
                    staking_request:
                      id: a428d279-27b3-482b-82f4-510e7b52adb5
                      created_at: '2023-10-17T18:17:11Z'
                    status_history:
                      events:
                      - status: provisioned
                        changed_at: '2023-10-17T18:17:11Z'
                      - status: deposited_not_finalized
                        changed_at: '2023-10-17T20:39:36Z'
                      - status: deposited
                        changed_at: '2023-10-17T20:51:36Z'
                      - status: pending_queued
                        changed_at: '2023-10-18T13:29:36Z'
                      - status: active_ongoing
                        changed_at: '2023-10-19T06:27:12Z'
                      - status: active_exiting
                        changed_at: '2023-10-20T17:26:24Z'
                      - status: exited_unslashed
                        changed_at: '2023-10-20T17:52:00Z'
                      - status: withdrawal_possible
                        changed_at: '2023-10-21T21:10:24Z'
                      - status: withdrawal_done
                        changed_at: '2023-10-23T06:08:00Z'
                    deposit_data:
                      signature: '0xb6db15d9859eb657dc7836ca8b45775a4e064c0651958425ba57bbe51cd5d75319fe9642d3b170503ad48dc2212bcde70ae0e14d8b2ef9833dcb852a0b9c0a7ad8cb908a507426be77e5e549d6008484ef8c831cd707dff88888fa614bf03f87'
                      figment_signature: '0x308188024201f5ab9f11e1543adaefb94884c2128fa3261550562df9bf27aed076c0115f9879e0e919cc5e4283bb37e7b1df51314f1d349d95108f8a2a81f0d138d4c284f3f095024201b5a416d40579256070795d1c6cea2a02ad65bcd088d8152c0c62ea9dfe90e00e750c01c8ea14420d64a739055bad95f8d0ffa4d35d4c02bb96fc8bb9b8135d0223'
                      deposit_data_root: '0x86c1627b3353edd7aa56d84418b8a258820be0761a765c74920269297042df0d'
                      deposit_message_root: '0x648c94f84c8f14ea4edd1b35557dd5715bba282cae987ca34eb2bafe6fdea792'
                      fork_version: '0x01017000'
                      amount: 32000000000
                      deposit_cli_version: 2.7.0
                    status_estimates:
                      estimated_active_at: '2023-10-19T10:09:36Z'
                      estimated_exit_at: '2023-10-19T10:08:00Z'
                      estimated_withdrawal_at: '2023-10-23T14:49:36Z'
                    on_demand_exit:
                      requested_at: '2023-10-20T17:10:52Z'
                      approved_at: '2023-10-20T17:11:05Z'
                      submitted_at: '2023-10-20T17:22:00Z'
                      request_id: 9b41a113-44c5-4b6a-8493-78e6046b830e
                    exit_message:
                      encrypted_value: gk+W8XGB9bXtueP02sHh2kz4gSsj8T06sd/yXRnJM0oUAo0pvmKNf2pk3rqcLMWfPTrTZmx32BzN/8JRN+WpfyUrdtPVuSYMsyVWxWGIYeLXvBSuZoyzYfPMOXf8eg6CLz0RPZovoYood2M9aTFT2/3StyWO/Pq6aZus0luhksijwPftuAkErQgC09NHRgeb7vyhd3ZYiHPKKYUAjEIR3wllcxhFavTAFA8f1ImbZIZGRVkoykiswhcVjIjAFMSAah18IXSWRL2rDSKZvbDN6ZgKHg+J33LF55SihheOPaCNJe0j2xGczWGzXP4HzqOnlSS1aiz2XGtcaHg99be7wOduKVS4+cEaTX8JmMxKKc1L5kJ1kdOrqP9VRKa7pIkOhZr3OCDtrDaN5Mr3e+dfk4EsN8oMcqif2sLBVZoe1end0bR/3nhjGE24trrs4x8ljqE+xjMEM6JBLyWI4IhXZMxR6N3IXoHT1NPnq9lWYdKnqpOkhRkcUMNVuyHbXdh9ZD3VRLoL6eFpI+6GIbmlwOlbHMGf1pfND20NEEyyfa8F6krh+uhrga5FYg9W7/fuA+FjDEQCqe2ZU7usWQBWjJ4fCw3KHV3eMcH9jhxICHudicoxz8CQmcC32+iCYi6/ri+OCNkdEbqLkeJuFHZv1gsXEApjRdde9xq1wmm+Uvg=
                      fork_version: '0x01017000'
                    balances:
                      actual: '32.5'
                      pending_deposit: '0.0'
                      pending_topups: '0.0'
                      pending_withdrawals: '0.0'
        '404':
          description: Not found
        '401':
          description: Invalid API key
  "/partners/ethereum/validators":
    get:
      summary: List Ethereum Validators
      tags:
      - Partners - Ethereum
      operationId: partner_ethereum_validators
      parameters:
      - name: network
        in: query
        schema:
          type: string
          enum:
          - mainnet
          - hoodi
        example: hoodi
        required: true
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      responses:
        '200':
          description: Tracked validators list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/partners_tracked_validator"
                  meta:
                    "$ref": "#/components/schemas/pagination"
        '401':
          description: Invalid API key
  "/polkadot/nomination_proxy":
    post:
      summary: Add Nomination proxy
      tags:
      - Polkadot
      operationId: polkadot-add-nomination-proxy
      parameters: []
      responses:
        '202':
          description: Successfully accepted request
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
        '401':
          description: Invalid API key
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/nomination_proxy"
        required: true
  "/polkadot/nomination_proxy/revoke_proxy":
    post:
      summary: Revoke Nomination Proxy
      tags:
      - Polkadot
      operationId: polkadot-revoke-nomination-proxy
      parameters: []
      responses:
        '202':
          description: Success sent revoke request
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
        '401':
          description: Invalid API key
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/revoke_proxy"
        required: true
  "/statements":
    get:
      summary: Statements
      tags:
      - Statements
      operationId: get-statements
      parameters:
      - name: month
        in: query
        schema:
          type: string
        example: 2024-04
        required: true
      - name: page
        in: query
        required: false
        style: deepObject
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              minimum: 1
              description: The page number.
            size:
              type: integer
              example: 10
              minimum: 1
              maximum: 100
              description: Number of items to include in the response.
      responses:
        '200':
          description: List of statements for the given month.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/monthly_statement"
                  meta:
                    "$ref": "#/components/schemas/pagination"
                example:
                  data:
                  - id: 61989868-2cfc-4027-b350-e239ddb1e10d
                    type: staking_rewards
                    month: 2024-04
                    csv_data: |
                      ID,ACCOUNT_ID,ORGANIZATION_ID,CUSTOMER,PROTOCOL,ADDRESS,DATE,PRICE,TOTAL_STAKED,REWARDS_IN_PERIOD,GROSS_INFLATIONARY_REWARD,GROSS_TRANSACTION_REWARD,GROSS_REWARDS,ON_CHAIN_COMMISSION,FIGMENT_COMMISSION,NET_REWARDS,NET_REWARDS_USD,STAKING_INFO,REBATE
                      12,0015f00000CPz54AAD,{organization_1_id},ABC Investments,SOL,fdbfzf9drfjguufjggphz3sx4lqwe1l4q77s7j4hsxg7,2023-06-01,19.144465898736700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                      13,0015f00000CPz54AAD,{organization_1_id},ABC Investments,SOL,fdbfzf9drfjguufjggphz3sx4lqwe1l4q77s7j4hsxg7,2023-06-01,19.144465898736700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                      14,abc123,{organization_2_id},Org Number 2,DOT,djnbg7yjcwmwcdxje67k7mjcy5f6wcakowy7y8n1jtbq,2023-06-01,21.312226788443700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                  - id: 51c46bc9-76c6-4b86-9d5f-64878c2f7739
                    type: revenue_share
                    month: 2024-04
                    csv_data: |
                      ID,ACCOUNT_ID,ORGANIZATION_ID,CUSTOMER,PROTOCOL,ADDRESS,DATE,PRICE,TOTAL_STAKED,REWARDS_IN_PERIOD,GROSS_INFLATIONARY_REWARD,GROSS_TRANSACTION_REWARD,GROSS_REWARDS,ON_CHAIN_COMMISSION,FIGMENT_COMMISSION,NET_REWARDS,NET_REWARDS_USD,STAKING_INFO,REBATE
                      12,0015f00000CPz54AAD,{organization_1_id},ABC Investments,SOL,fdbfzf9drfjguufjggphz3sx4lqwe1l4q77s7j4hsxg7,2023-06-01,19.144465898736700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                      13,0015f00000CPz54AAD,{organization_1_id},ABC Investments,SOL,fdbfzf9drfjguufjggphz3sx4lqwe1l4q77s7j4hsxg7,2023-06-01,19.144465898736700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                      14,abc123,{organization_2_id},Org Number 2,DOT,djnbg7yjcwmwcdxje67k7mjcy5f6wcakowy7y8n1jtbq,2023-06-01,21.312226788443700000,1946.996521134,0.848480079,0.9123441709677420,0.9123441709677420,0.9123441709677420,0.0638640919677419,0.06386409196774190,0.848480079,16.24369793817290,,
                  meta:
                    pagination:
                      current_page: 1
                      total_pages: 1
                      total_item_count: 2
        '422':
          description: Invalid month
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/error"
        '401':
          description: Invalid API key
  "/cardano/rewards":
    post:
      summary: ADA Rewards
      operationId: ada-rewards
      tags:
      - Cardano
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        delegator_addresses:
                          type: string
                          example: stake1uxcmc9r2t7cxs0zw8qm8ztg3twvxryzghsc8eszek6kuwms23gya4
                          description: The delegator address that received the reward.
                        validator:
                          type: string
                          example: pool1fqwnqk3phwa2s5thgym8dw34pv0z67m526uqprnjh93cvzxymef
                          description: The address of the validator which distributed
                            the rewards
                        epoch:
                          type: string
                          example: '417'
                          description: The epoch number
                        timestamp:
                          type: string
                          example: '2023-07-21T00:00:00Z'
                          description: The timestamp of the end of the epoch
                        rewards:
                          type: array
                          items:
                            type: object
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp). It also
                              includes a type field which can be either member or
                              leader.
                            properties:
                              text:
                                type: string
                                example: 823.370257 ADA
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                                example: ADA
                              numeric:
                                type: integer
                                example: 823370257
                              exp:
                                type: integer
                                example: 6
                              type:
                                type: string
                                enum:
                                - member
                                - leader
                                example: member
                        balances:
                          type: array
                          items:
                            type: object
                            description: The account's staked balance to the pool
                              for the epoch.
                            properties:
                              text:
                                type: string
                                example: '0'
                                description: The textual version of the other fields
                                  in the balances object.
                              currency:
                                type: string
                                example: ADA
                              numeric:
                                type: integer
                                example: 0
                              exp:
                                type: integer
                                example: 6
                        stake_key_hash:
                          type: string
                          description: The stake key hash portion of the stake address.
                            This is the bech32 decoded stake address with the first
                            byte stripped and then hex encoded. It’s a common alternative
                            way to search for a stake address.
                          example: b1bc146a5fb0683c4e3836712d115b98619048bc307cc059b6adc76e
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: cardano
                        description: The name of the protocol queried.
                      network:
                        type: string
                        example: mainnet
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: epoch
                        description: The time rollup unit of the rewards.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_addresses:
                  type: array
                  description: Delegator address for which to fetch rewards
                  items:
                    type: string
                    example: stake1uxcmc9r2t7cxs0zw8qm8ztg3twvxryzghsc8eszek6kuwms23gya4
                start:
                  type: string
                  example: '2023-07-20'
                  description: Epoch numbers (as integers) or timestamps (as strings
                    "YYYY-MM-DD")
                end:
                  type: string
                  example: '2023-07-21'
                  description: Epoch numbers (as integers) or timestamps (as strings
                    "YYYY-MM-DD")
              required:
              - delegator_addresses
              - start
              - end
  "/cosmos/rewards":
    post:
      summary: ATOM Rewards
      operationId: atom-rewards
      tags:
      - Cosmos
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        delegator_address:
                          type: string
                          example: cosmos14p4dle9aastqyy8hasq2zev3hdkqj9crwfguf7
                          description: The delegator address that received the reward.
                        validator:
                          type: string
                          example: cosmosvaloper1wqy2s6nwnxj57l0l5rdjxxr646p3al6y70435m
                          description: The validator which distributed the rewards.
                        timestamp:
                          type: string
                          example: '2023-07-21T00:00:00Z'
                          description: The timestamp of the end of the reward distribution
                            period.
                        rewards:
                          type: array
                          items:
                            type: object
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp).
                            properties:
                              text:
                                type: string
                                example: '0.61414845761237760744712'
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                                example: ATOM
                              numeric:
                                type: integer
                                example: 614148457612377607447120
                              exp:
                                type: integer
                                example: 24
                        balances:
                          type: array
                          items:
                            type: object
                            description: The account's current balance.
                            properties:
                              text:
                                type: string
                                example: '1000.07592'
                                description: The textual version of the other fields
                                  in the balances object.
                              currency:
                                type: string
                                example: ATOM
                              numeric:
                                type: integer
                                example: 1000075920
                              exp:
                                type: integer
                                example: 6
                                description: The exponent used to calculate the final
                                  ATOM amount.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: cosmos
                        description: The name of the protocol queried.
                      network:
                        type: string
                        example: cosmoshub-4
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: daily
                        description: The time rollup unit of the rewards.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_addresses:
                  type: array
                  description: The delegator addresses for which you want to see rewards.
                  items:
                    type: string
                    example: cosmos14p4dle9aastqyy8hasq2zev3hdkqj9crwfguf7
                start:
                  type: string
                  example: '2023-07-20'
                  description: Timestamps (as strings "YYYY-MM-DD")
                end:
                  type: string
                  example: '2023-07-21'
                  description: Timestamps (as strings "YYYY-MM-DD")
              required:
              - delegator_addresses
              - start
              - end
  "/near/rewards":
    post:
      summary: NEAR Rewards
      operationId: near-rewards
      tags:
      - NEAR
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        delegator_address:
                          type: string
                          example: ccb593f13a9ee3eaba2b063265c5960406e1de3758d9d9d9eb87701e5c9dd8ed
                          description: delegator address that received the rewards.
                        validator:
                          type: string
                          example: figment.poolv1.near
                          description: The validator that distributed the rewards
                        epoch:
                          type: string
                          example: '75743490'
                          description: The epoch number (only present when time_rollup
                            is "epoch").
                        timestamp:
                          type: string
                          example: '2023-07-21T00:00:00Z'
                          description: The timestamp of the end of the epoch or date
                            in the daily time_rollup.
                        rewards:
                          type: array
                          items:
                            type: object
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp).
                            properties:
                              text:
                                type: string
                                example: '0.000000000000000000001453'
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                                example: NEAR
                              numeric:
                                type: integer
                                example: 1453
                              exp:
                                type: integer
                                example: 24
                                description: The exponent used to calculate the textual
                                  NEAR amount.
                        balances:
                          type: array
                          items:
                            type: object
                            description: The account's staked balance to the validator
                              for the period.
                            properties:
                              text:
                                type: string
                                example: '0.000000000548826223520098'
                                description: The textual version of the account's
                                  staked balance to the validator for the period.
                              currency:
                                type: string
                                example: NEAR
                              numeric:
                                type: integer
                                example: 548826223520098
                                description: The account's staked balance to the validator
                                  for the period.
                              exp:
                                type: integer
                                example: 24
                                description: The exponent used to calculate the textual
                                  NEAR amount.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: near
                        description: The name of the protocol queried.
                      network:
                        type: string
                        example: mainnet
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: epoch
                        description: The unit of the time_rollup.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_addresses:
                  type: array
                  description: Delegator accounts addresses.
                  items:
                    type: string
                    example: figment.near
                start:
                  type: string
                  example: '2023-07-20'
                  description: Epoch numbers (as integers) or timestamps (as strings
                    "YYYY-MM-DD")
                end:
                  type: string
                  example: '2023-07-21'
                  description: Epoch numbers (as integers) or timestamps (as strings
                    "YYYY-MM-DD")
                time_rollup:
                  type: string
                  description: Allows you to get rewards by day (if daily is passed).
                  enum:
                  - daily
              required:
              - delegator_addresses
              - time_rollup
              - start
              - end
  "/polkadot/rewards_rates":
    get:
      tags:
      - Polkadot
      summary: DOT Reward Rates
      operationId: polkadot-rewards-rates
      parameters:
      - in: query
        name: figment
        schema:
          type: boolean
          default: false
        required: false
        description: If true is passed, we will return the reward rate for Figment
          validators only. If omitted or any other value is passed, we will return
          the reward rate of the network as a whole.
      - in: query
        name: avg
        schema:
          type: string
          enum:
          - 7d
          default: 7d
        required: false
        description: Returns the 7 day moving average. The only value accepted is
          7d, if no value is passed, the original behavior of returning a single day
          average ARR is used.
      - in: query
        name: decimal
        schema:
          type: integer
          default: 2
        required: false
        description: Adds decimal places to the returned values. Accepts values 2,
          3, 4, 5. If nothing is passed, it will default to 2.
      responses:
        '200':
          description: Rewards rates
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          example: '2023-07-05'
                          description: Specific date associated with value (staking
                            reward rates).
                        value:
                          type: string
                          example: '11.03'
                          description: Staking reward rates, in %.
              example:
                data:
                - date: '2023-08-29'
                  value: '10.26'
                - date: '2023-08-28'
                  value: '10.37'
                - date: '2023-08-27'
                  value: '10.37'
                - date: '2023-08-26'
                  value: '10.37'
                - date: '2023-08-25'
                  value: '10.26'
                - date: '2023-08-24'
                  value: '10.26'
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
  "/polygon/rewards":
    post:
      summary: MATIC Rewards
      operationId: matic-rewards
      tags:
      - Polygon
      parameters: []
      responses:
        '200':
          description: A rewards result set with metadata.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        delegator_address:
                          type: string
                          example: '0xA722e1F10Bc95c102251A13c2bbCB61A67257003'
                          description: The account that received the reward. This
                            is a checksummed ethereum address including lower case
                            and capital letters.
                        validator:
                          type: string
                          example: '0xF9e9b98dd99114C6C1B5C28Ae101849880E9542f'
                          description: The "owner address" of the validator which
                            distributed the rewards.
                        checkpoint:
                          type: string
                          example: '45500'
                          description: The checkpoint number.
                        timestamp:
                          type: string
                          example: '2023-07-21T00:00:00Z'
                          description: The timestamp of the end of the checkpoint.
                        rewards:
                          type: array
                          items:
                            type: object
                            description: The formula to compute the final rewards
                              in the currency unit is numeric x 10^(-exp).
                            properties:
                              text:
                                type: string
                                example: '0.000817335418355351'
                                description: The textual version of the other fields
                                  in the rewards object.
                              currency:
                                type: string
                                example: MATIC
                              numeric:
                                type: integer
                                example: 817335418355351
                              exp:
                                type: integer
                                example: 18
                        balances:
                          type: array
                          items:
                            type: object
                            description: The account's current balance.
                            properties:
                              text:
                                type: string
                                example: '302.56'
                                description: The textual version of the other fields
                                  in the balances object.
                              currency:
                                type: string
                                example: MATIC
                              numeric:
                                type: integer
                                example: 302560000000000000000
                              exp:
                                type: integer
                                example: 18
                                description: The exponent used to calculate the final
                                  MATIC amount.
                  meta:
                    type: object
                    properties:
                      protocol:
                        type: string
                        example: polygon
                        description: The name of the protocol queried.
                      network:
                        type: string
                        example: mainnet
                        description: The name of the network queried.
                      time_rollup:
                        type: string
                        example: checkpoint
                        description: The unit of the period.
        '400':
          description: Parameter error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/rewards_error"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                delegator_addresses:
                  type: array
                  description: Delegator addresses.
                  items:
                    type: string
                    example: '0xA722e1F10Bc95c102251A13c2bbCB61A67257003'
                start:
                  type: integer
                  example: 45500
                  description: Either checkpoint (number) or timestamps (strings formatted
                    like "YYYY-MM-DD").
                end:
                  type: integer
                  example: 45501
                  description: Either checkpoint (number) or timestamps (strings formatted
                    like "YYYY-MM-DD").
              required:
              - delegator_addresses
              - start
              - end
  "/cardano/blockfrost_projects":
    get:
      summary: Get Blockfrost Projects
      tags:
      - Blockfrost Projects
      operationId: get-blockfrost-projects
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: object
          properties:
            number:
              type: integer
              example: 2
              description: Current page number
            size:
              type: integer
              example: 10
              description: Number of results per page
      responses:
        '200':
          description: List of Blockfrost projects
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    "$ref": "#/components/schemas/meta"
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/blockfrost_project"
        '400':
          description: User error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/staking_api_error"
        '401':
          description: Invalid API key
    post:
      summary: Add Blockfrost Project
      tags:
      - Blockfrost Projects
      operationId: add-blockfrost-project
      parameters: []
      responses:
        '201':
          description: Added
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    "$ref": "#/components/schemas/blockfrost_project"
        '422':
          description: Unprocessable
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/staking_api_error"
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/staking_api_error"
        '401':
          description: Invalid API key
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  example: preprod
                project_id:
                  type: string
                  example: my-project-id
  "/cardano/blockfrost_projects/{id}":
    delete:
      summary: Remove Blockfrost Project
      tags:
      - Blockfrost Projects
      operationId: remove-blockfrost-projects
      parameters:
      - name: id
        in: path
        required: true
        example: 123
        schema:
          type: string
      responses:
        '204':
          description: Removed
        '500':
          description: System error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/staking_api_error"
        '401':
          description: Invalid API key
  "/flows":
    post:
      summary: Start new Flow
      tags:
      - Staking Flows
      operationId: create-flow
      parameters: []
      responses:
        '201':
          description: Flow created
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/flow"
        '400':
          description: User error
          content:
            application/json:
              schema:
                type: object
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                type: object
        '401':
          description: Invalid API key
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                flow:
                  type: object
                  properties:
                    protocol:
                      type: string
                    network:
                      type: string
                    operation:
                      type: string
                  required:
                  - protocol
                  - network
                  - operation
    get:
      summary: Get flows
      tags:
      - Staking Flows
      operationId: get-flows
      responses:
        '200':
          description: Flows retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    "$ref": "#/components/schemas/meta"
                  data:
                    type: array
                    items:
                      "$ref": "#/components/schemas/flow"
  "/flows/{id}":
    get:
      summary: Get flow
      tags:
      - Staking Flows
      operationId: get-flow
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Flow retrieved
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/flow"
  "/flows/{id}/next":
    put:
      summary: Transition Flow
      tags:
      - Staking Flows
      operationId: flow-next
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Flow transitioned
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/flow"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                inputs:
                  type: object
        required: true
  "/x402/supported":
    get:
      summary: Supported
      tags:
      - x402
      responses:
        '200':
          description: Supported kinds enumerated by the facilitator.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SupportedResponse"
        '500':
          description: Unexpected enumeration failure.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
  "/x402/verify":
    post:
      summary: Verify
      description: Protocol-level rejections return HTTP 200 with `{isValid:false}`.
        Only malformed envelopes return 4xx. Scheme-specific payload shape is enforced
        by the registered scheme, not at the HTTP layer.
      tags:
      - x402
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ProtocolBody"
            examples:
              svm-exact:
                summary: Solana, `exact` scheme
                value:
                  x402Version: 2
                  paymentPayload:
                    x402Version: 2
                    resource:
                      url: https://example.com/protected-resource
                      description: Example protected resource being paid for.
                    accepted:
                      scheme: exact
                      network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
                      amount: '1000000'
                      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      payTo: MerchantAddr11111111111111111111111111111111
                      maxTimeoutSeconds: 120
                      extra:
                        feePayer: FacilitatorSigner1111111111111111111111111
                    payload:
                      transaction: AQAB...base64-encoded-partially-signed-solana-tx...
                  paymentRequirements:
                    scheme: exact
                    network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
                    amount: '1000000'
                    asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    payTo: MerchantAddr11111111111111111111111111111111
                    maxTimeoutSeconds: 120
                    extra:
                      feePayer: FacilitatorSigner1111111111111111111111111
      responses:
        '200':
          description: Verification result (valid or invalid).
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/VerifyResponse"
        '400':
          description: Malformed request body.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
  "/x402/settle":
    post:
      summary: Settle
      description: Screens payer + payee, reserves a dedup key, broadcasts the transaction,
        and records the settlement. Protocol-level failures return HTTP 200 with `{success:false,
        errorReason}`.
      tags:
      - x402
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ProtocolBody"
            examples:
              svm-exact:
                summary: Solana, `exact` scheme
                value:
                  x402Version: 2
                  paymentPayload:
                    x402Version: 2
                    resource:
                      url: https://example.com/protected-resource
                      description: Example protected resource being paid for.
                    accepted:
                      scheme: exact
                      network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
                      amount: '1000000'
                      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      payTo: MerchantAddr11111111111111111111111111111111
                      maxTimeoutSeconds: 120
                      extra:
                        feePayer: FacilitatorSigner1111111111111111111111111
                    payload:
                      transaction: AQAB...base64-encoded-partially-signed-solana-tx...
                  paymentRequirements:
                    scheme: exact
                    network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
                    amount: '1000000'
                    asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    payTo: MerchantAddr11111111111111111111111111111111
                    maxTimeoutSeconds: 120
                    extra:
                      feePayer: FacilitatorSigner1111111111111111111111111
      responses:
        '200':
          description: Settlement result (success or protocol-level failure).
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SettleResponse"
        '400':
          description: Malformed request body.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
  "/x402/partner_analytics":
    get:
      summary: Partner Analytics
      description: Returns settlement counts and USDC volume grouped by merchant +
        endpoint for the partner org identified. This is a Figment-added endpoint,
        so responses use the `{data, meta}` envelope, not a bare protocol body.
      tags:
      - x402
      parameters:
      - schema:
          type: string
          enum:
          - 1d
          - 7d
          - 30d
          - 90d
          description: Lookback window. Defaults to `7d`.
          example: 7d
        required: false
        name: range
        in: query
      - schema:
          type: string
          description: Required. CAIP-2 network filter, or the alias solana-mainnet
            / solana-devnet.
          example: solana-mainnet
        required: true
        name: network
        in: query
      responses:
        '200':
          description: Usage rows for the partner, newest window first.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/PartnerAnalyticsResponse"
        '400':
          description: Unsupported `range` value, or missing/invalid `network`.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
        '403':
          description: Missing or malformed tenant header (staging/production).
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
  "/x402/settlement_reports":
    get:
      summary: Settlement Reports
      description: Pull your organization's settled payments as a daily rollup, grouped
        by buyer, merchant address, network, and token.
      tags:
      - x402
      parameters:
      - schema:
          type: string
          description: YYYY-MM-DD, inclusive. Omit to read your whole settlement history.
            There is no limit on how far back it may reach.
          example: '2026-05-10'
        required: false
        name: start_date
        in: query
      - schema:
          type: string
          description: YYYY-MM-DD, inclusive. Defaults to today (UTC).
          example: '2026-07-09'
        required: false
        name: end_date
        in: query
      - schema:
          type: string
          description: Your own comma-separated merchant wallet addresses.
          example: 3fX8pQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9Pus
        required: false
        name: merchant_addresses
        in: query
      - schema:
          type: string
          description: CAIP-2 network filter, or the alias solana-mainnet / solana-devnet.
          example: solana-mainnet
        required: false
        name: network
        in: query
      - schema:
          type: string
          description: Payment token ticker, e.g. USDC.
          example: USDC
        required: false
        name: token
        in: query
      responses:
        '200':
          description: Daily settlement rollup rows for the tenant, newest day first.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SettlementReportResponse"
        '400':
          description: Invalid date, network, or token filter.
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FigmentError"
servers:
- url: https://api.figment.io
components:
  schemas:
    broadcast_transaction:
      type: object
      properties:
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
          description: Network name
        transaction_hash:
          type: string
          example: '0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3'
          description: The transaction hash from the onchain broadcast.
    ethereum_broadcast_transaction:
      type: object
      properties:
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
          description: Network name
        transaction_hash:
          type: string
          example: '0xae96cb28f012f20a63118cf34f60de63c9884a483cc742d5f41a1aee6f5cd5f3'
          description: The transaction hash from the onchain broadcast.
        activity:
          type:
          - object
          - 'null'
          description: The staking activity recorded for this broadcast. Typed (stake/delegation/consolidation/undelegation)
            when the transaction is a recognized staking action; `type` is null otherwise.
          properties:
            id:
              type: string
              format: uuid
              example: 3f1c9b2a-8e4d-4a6b-9c1e-2d5f7a8b0c3d
              description: Activity UUID.
            type:
              type:
              - string
              - 'null'
              enum:
              - stake
              - delegation
              - consolidation
              - undelegation
              - unstake
              - upgrade
              -
              example: stake
              description: Activity type, or null when the transaction was not a recognized
                staking action.
            status:
              type: string
              enum:
              - pending
              - complete
              - failed
              example: pending
              description: Activity-life status.
            network:
              type: string
              enum:
              - mainnet
              - hoodi
              example: hoodi
            protocol:
              type: string
              example: ethereum
            amount:
              type: number
              example: 32.0
              description: Amount in the asset major unit.
            currency:
              type:
              - string
              - 'null'
              example: ETH
            timestamp:
              type:
              - string
              - 'null'
              example: '2024-03-12T00:00:00.000Z'
            estimated_completed_at:
              type:
              - string
              - 'null'
            delegation_address:
              type:
              - string
              - 'null'
            tx:
              type: object
              description: On-chain transaction axis. Distinct from the activity-life
                `status`.
              properties:
                hash:
                  type:
                  - string
                  - 'null'
                  example: 0xae96cb…
                status:
                  type:
                  - string
                  - 'null'
                  enum:
                  - in_progress
                  - confirmed
                  - failed
                  - expired
                  -
                  example: in_progress
            details:
              type:
              - object
              - 'null'
    broadcast_exit_message:
      type: object
      properties:
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
          description: Network name
        epoch:
          type: string
          example: '182738'
          description: Epoch as stated in the PSET
        validator_index:
          type: string
          example: '483128'
          description: The validator's index as stated in the PSET
        signature:
          type: string
          example: '0x97f0dde45b0be31fd9a76a60a25216c7b7a14f6fd21a8232cdd8cba8c419c0a618589e98ff8b8a253c9975adc11746de0f34a4d223c7927b8547d19035aeaa48f980e8e510e5278b6a901665aa24d6c54d332d39924ba3d263861a5f1fc3234d'
          description: Signature as stated in the PSET
    nomination_proxy:
      type: object
      properties:
        stash_account_address:
          type: string
          example: 5CUwmRuV8e5yV15eaktTwW4AMkBnf2anJvehKNq9ZugXBvUh
          description: A valid Polkadot address.
        controller_account_address:
          type: string
          example: 5FH7R79Ph88uC4xJaWv3UXRxVrYVfuRPcPuQiiRJ5B8zKbCd
          description: A valid Polkadot address.
        proxy_account_address:
          type: string
          example: 5CDTPiGKvMFikx83G5vZz6jQMt7EokMDpkZ5ErSvG6ea27SS
          description: A valid Polkadot address.
        qtx_dot_bonded:
          type: string
          example: '10'
          description: An amount in DOT
        network:
          type: string
          example: polkadot
          enum:
          - polkadot
          - westend
      required:
      - stash_account_address
      - controller_account_address
      - proxy_account_address
      - qtx_dot_bonded
      - network
    revoke_proxy:
      type: object
      properties:
        stash_account_address:
          type: string
          example: 5CUwmRuV8e5yV15eaktTwW4AMkBnf2anJvehKNq9ZugXBvUh
          description: A valid Polkadot address.
        controller_account_address:
          type: string
          example: 5FH7R79Ph88uC4xJaWv3UXRxVrYVfuRPcPuQiiRJ5B8zKbCd
          description: A valid Polkadot address.
        network:
          type: string
          example: polkadot
          enum:
          - polkadot
          - westend
      required:
      - stash_account_address
      - controller_account_address
      - network
    validator:
      type: object
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the validator.
        index:
          type: integer
          example: '123456'
          description: Validator's onchain index
          nullable: true
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        pubkey:
          type: string
          example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
          description: The pubkey for the validator. Prefixed with `0x`.
        withdrawal_address:
          type: string
          example: '0xE40F80618324C814cD444434670a44ba4583aE38'
        status:
          type: string
          nullable: true
          example: funding_requested
          description: The current status of the validator.
        withdrawal_credentials:
          type: string
          nullable: true
          example: '0x010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1'
          description: Withdrawal credentials for the validator funds to be withdrawn
            upon exit.
        fee_recipient_address:
          type: string
          nullable: true
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The fee recipient address that receives Execution Layer fees.
            For Figment-operated validators only.
        net_fee_payout_address:
          type: string
          nullable: true
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The net payout address that receives the customer's share of
            Execution Layer fees. For Figment-operated validators only.
        region:
          type: string
          nullable: true
          example: ca-central-1
          description: The geographic region in which the validator operates. For
            Figment-operated validators only.
        deposit_data:
          type: object
          nullable: true
          description: Data for funding the validator.
          properties:
            amount:
              type: integer
              nullable: true
              description: An amount of ETH in GWEI required to deposit
              example: 32000000000
            signature:
              type: string
              nullable: true
              example: '0xaab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49'
              description: A "proof of possession" which signs over pubkey, withdrawal_credentials,
                and amount using the validator private key.
            figment_signature:
              type: string
              nullable: true
              example: 0xZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi
              description: A base64 encoded signature of the validator's public key,
                signed by a private key maintained by Figment.
            deposit_data_root:
              type: string
              nullable: true
              example: b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422
              description: The deposit data.
            deposit_message_root:
              type: string
              nullable: true
              example: 026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44
              description: The deposit message.
            fork_version:
              type: string
              nullable: true
              example: '0x00000000'
              description: The genesis fork version.
            deposit_cli_version:
              type: string
              nullable: true
              example: 1.2.0
              description: The version of the CLI software used when making the deposit.
        status_history:
          type: object
          nullable: true
          description: Details of the status history.
          properties:
            events:
              type: array
              items:
                type: object
                properties:
                  status:
                    type: string
                    example: funding_requested
                  changed_at:
                    type: string
                    example: '2023-07-01T00:00:00.000Z'
                    description: When the status changed.
        status_estimates:
          type: object
          nullable: true
          description: Estimates for the validator.
          properties:
            estimated_active_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will become active and start
                earning rewards.
            estimated_exit_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will exit and stop earning
                rewards.
            estimated_withdrawal_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the principal will be withdrawable.
            activation_epoch:
              type: integer
              nullable: true
              example: 12345
              description: Raw beacon chain epoch at which the validator activated.
                Known during pending_queued.
            exit_epoch:
              type: integer
              nullable: true
              example: 67890
              description: Raw beacon chain epoch at which the validator exited. Known
                during active_exiting.
            withdrawable_epoch:
              type: integer
              nullable: true
              example: 68146
              description: Raw beacon chain epoch at which the validator becomes withdrawable.
                A lower bound — actual withdrawal depends on the sweep queue.
        on_demand_exit:
          type: object
          nullable: true
          description: Details of the on-demand exit.
          properties:
            requested_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the customer request to exit this
                validator, either through the Figment app or Staking API.
            approved_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the time at which the customer
                exit request was approved by Figment.
            submitted_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the time at which the validator's
                exit transaction was submitted to Ethereum's consensus layer.
            request_id:
              type: string
              format: uuid
              nullable: true
              example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              description: The unique request ID (which may be the Staking API flow
                ID) used to request an exit for this validator.
        exit_message:
          type: object
          nullable: true
          description: Details of the exit message.
          properties:
            fork_version:
              type: string
              nullable: true
              example: '0x04001020'
              description: A pre-signed exit message fork version.
            encrypted_value:
              type: string
              nullable: true
              example: |-
                -----BEGIN PGP MESSAGE-----
                Version: 2023-03-03 (159679)
                Comment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202

                wV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew
                /cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT
                0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY
                zLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1
                vaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe
                T3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q
                oYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD
                kQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6
                7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==
                =DiMO
                -----END PGP MESSAGE-----
              description: A pre-signed exit message encrypted with the public encryption
                key you've stored with Figment. See https://docs.figment.io/docs/exiting-eth-validator.
        staking_request:
          type: object
          nullable: true
          properties:
            id:
              type: string
              example: f8bd4623-39ed-46ec-8518-991792665e56
              description: The ID of the staking position.
            created_at:
              type: string
              example: '2023-07-01T00:00:00.000Z'
              description: The time at which the staking request was created.
        balances:
          type: object
          nullable: true
          description: Balance information for the validator.
          properties:
            actual:
              type: string
              example: '32.0'
              description: Current staked balance in ETH
            pending_deposit:
              type: string
              example: '0.0'
              description: Pending deposit amount in ETH
            pending_topups:
              type: string
              example: '1.5'
              description: Sum of pending delegation activities in ETH
            pending_withdrawals:
              type: string
              example: '0.5'
              description: Sum of pending undelegation activities in ETH
    validators_index:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              protocol:
                type: string
                example: solana
                description: Protocol the validator runs on.
              network:
                type: string
                example: mainnet
                description: Network within the protocol.
              address:
                type: string
                example: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
                description: Canonical public identifier for the validator on this
                  protocol.
              type:
                type: string
                example: solana_vote
                description: Identifier type for the address (e.g. solana_vote, operator,
                  validator, finality_provider).
              public:
                type: boolean
                example: true
                description: True for public validators open to all Figment customers;
                  false for white label and reserved validators.
              commission:
                type: string
                nullable: true
                example: '0.07'
                description: Current on-chain commission rate as a decimal fraction
                  (0.07 = 7%). Null when unknown.
        meta:
          type: object
          properties:
            pagination:
              type: object
              properties:
                current_page:
                  type: integer
                  example: 1
                total_pages:
                  type: integer
                  example: 10
                total_item_count:
                  type: integer
                  example: 1000
                has_next:
                  type: boolean
                  example: true
    validator_provision_response:
      type: object
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the validator.
        index:
          type: integer
          example: '123456'
          description: Validator's onchain index
          nullable: true
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        pubkey:
          type: string
          example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
          description: The pubkey for the validator. Prefixed with `0x`.
        withdrawal_address:
          type: string
          example: '0xE40F80618324C814cD444434670a44ba4583aE38'
          nullable: false
        status:
          type: string
          nullable: false
          example: funding_requested
          description: The current status of the validator.
        withdrawal_credentials:
          type: string
          nullable: false
          example: '0x010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1'
          description: Withdrawal credentials for the validator funds to be withdrawn
            upon exit.
        fee_recipient_address:
          type: string
          nullable: false
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The fee recipient address that receives Execution Layer fees.
            For Figment-operated validators only.
        net_fee_payout_address:
          type: string
          nullable: false
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The net payout address that receives the customer's share of
            Execution Layer fees. For Figment-operated validators only.
        region:
          type: string
          nullable: false
          example: ca-central-1
          description: The geographic region in which the validator operates. For
            Figment-operated validators only.
        deposit_data:
          type: object
          nullable: false
          description: Data for funding the validator.
          properties:
            amount:
              type: integer
              nullable: true
              description: An amount of ETH in GWEI required to deposit
              example: 32000000000
            signature:
              type: string
              nullable: true
              example: '0xaab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49'
              description: A "proof of possession" which signs over pubkey, withdrawal_credentials,
                and amount using the validator private key.
            figment_signature:
              type: string
              nullable: true
              example: 0xZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi
              description: A base64 encoded signature of the validator's public key,
                signed by a private key maintained by Figment.
            deposit_data_root:
              type: string
              nullable: true
              example: b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422
              description: The deposit data.
            deposit_message_root:
              type: string
              nullable: true
              example: 026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44
              description: The deposit message.
            fork_version:
              type: string
              nullable: true
              example: '0x00000000'
              description: The genesis fork version.
            deposit_cli_version:
              type: string
              nullable: true
              example: 1.2.0
              description: The version of the CLI software used when making the deposit.
        status_history:
          type: object
          nullable: false
          description: Details of the status history.
          properties:
            events:
              type: array
              items:
                type: object
                properties:
                  status:
                    type: string
                    example: funding_requested
                  changed_at:
                    type: string
                    example: '2023-07-01T00:00:00.000Z'
                    description: When the status changed.
        status_estimates:
          type: object
          nullable: false
          description: Estimates for the validator.
          properties:
            estimated_active_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will become active and start
                earning rewards.
            estimated_exit_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will exit and stop earning
                rewards.
            estimated_withdrawal_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the principal will be withdrawable.
            activation_epoch:
              type: integer
              nullable: true
              example: 12345
              description: Raw beacon chain epoch at which the validator activated.
                Known during pending_queued.
            exit_epoch:
              type: integer
              nullable: true
              example: 67890
              description: Raw beacon chain epoch at which the validator exited. Known
                during active_exiting.
            withdrawable_epoch:
              type: integer
              nullable: true
              example: 68146
              description: Raw beacon chain epoch at which the validator becomes withdrawable.
                A lower bound — actual withdrawal depends on the sweep queue.
        on_demand_exit:
          type: object
          nullable: false
          description: Details of the on-demand exit.
          properties:
            requested_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the customer request to exit this
                validator, either through the Figment app or Staking API.
            approved_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the time at which the customer
                exit request was approved by Figment.
            submitted_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the time at which the validator's
                exit transaction was submitted to Ethereum's consensus layer.
            request_id:
              type: string
              format: uuid
              nullable: true
              example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              description: The unique request ID (which may be the Staking API flow
                ID) used to request an exit for this validator.
        exit_message:
          type: object
          nullable: true
          description: Details of the exit message.
          properties:
            fork_version:
              type: string
              nullable: true
              example: '0x04001020'
              description: A pre-signed exit message fork version.
            encrypted_value:
              type: string
              nullable: true
              example: |-
                -----BEGIN PGP MESSAGE-----
                Version: 2023-03-03 (159679)
                Comment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202

                wV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew
                /cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT
                0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY
                zLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1
                vaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe
                T3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q
                oYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD
                kQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6
                7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==
                =DiMO
                -----END PGP MESSAGE-----
              description: A pre-signed exit message encrypted with the public encryption
                key you've stored with Figment. See https://docs.figment.io/docs/exiting-eth-validator.
        staking_request:
          type: object
          nullable: false
          properties:
            id:
              type: string
              example: f8bd4623-39ed-46ec-8518-991792665e56
              description: The ID of the staking position.
            created_at:
              type: string
              example: '2023-07-01T00:00:00.000Z'
              description: The time at which the staking request was created.
        balances:
          type: object
          nullable: true
          description: Balance information for the validator.
          properties:
            actual:
              type: string
              example: '32.0'
              description: Current staked balance in ETH
            pending_deposit:
              type: string
              example: '0.0'
              description: Pending deposit amount in ETH
            pending_topups:
              type: string
              example: '1.5'
              description: Sum of pending delegation activities in ETH
            pending_withdrawals:
              type: string
              example: '0.5'
              description: Sum of pending undelegation activities in ETH
    validators_create_meta:
      type: object
      properties:
        staking_request:
          type: object
          properties:
            id:
              type: string
              example: f8bd4623-39ed-46ec-8518-991792665e56
            amount_wei:
              type: string
              example: '32000000000000000000'
            withdrawal_address:
              type: string
              example: '0xE40F80618324C814cD444434670a44ba4583aE38'
            network:
              type: string
              example: hoodi
            region:
              type: string
              example: ca-central-1
            created_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
        staking_transaction:
          type: object
          properties:
            from:
              type: string
              example: '0xE40F80618324C814cD444434670a44ba4583aE38'
            to:
              type: string
              example: '0x94a2da805867c962148d3832d9afc512034a62c5'
            amount_wei:
              type: string
              example: '32000000000000000000'
            contract_call_data:
              type: string
              example: '0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946d'
            unsigned_transaction_serialized:
              type: string
              example: '0x02f902d7050f8459682f008459682f9083010fb59494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946dc0'
            unsigned_transaction_hashed:
              type: string
              example: '0x738bfbcda2048c9f521343be845bcd01d6cb4885e3609a0065bb94b3f22df768'
            max_gas_wei:
              type: string
              example: '104335510016208'
    validators_create_meta_aggregated_pectra:
      type: object
      properties:
        staking_request:
          type: object
          properties:
            id:
              type: string
              example: f8bd4623-39ed-46ec-8518-991792665e56
            amounts:
              type: array
              example:
              - '32'
              - '33'
            withdrawal_address:
              type: string
              example: '0xE40F80618324C814cD444434670a44ba4583aE38'
            network:
              type: string
              example: hoodi
            region:
              type: string
              example: ca-central-1
            created_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
        staking_transaction:
          type: object
          properties:
            from:
              type: string
              example: '0xE40F80618324C814cD444434670a44ba4583aE38'
            to:
              type: string
              example: '0x94a2da805867c962148d3832d9afc512034a62c5'
            amount_wei:
              type: string
              example: '32000000000000000000'
            contract_call_data:
              type: string
              example: '0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946d'
            unsigned_transaction_serialized:
              type: string
              example: '0x02f902d7050f8459682f008459682f9083010fb59494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000308dc141dc3a91a5b09dca7e9eb1c0f1f6cac2cad68ffc478956b741b1d9318285f31434fbcd7b3ae31697d772ba9d767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000f60e717ce428e7d1d61e147aa34f1595caa56669000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b29edc85070d565b7a5e4f1d86443979231b4152be44b03cfe94c5b96101f51e70eaa488030dd5a8ae10412ae0c64d9716fb7248cc9e94adb8b62e9025de645a46f05b767d9100ef5587c3bc0ebb78f12ff3b821417e97e36dcd8ff2376ca9c400000000000000000000000000000000000000000000000000000000000000010cf3e3a73ec22d7278d7b54ba88ae24013e5370bc263e4b3a26fef09b1b1946dc0'
            unsigned_transaction_hashed:
              type: string
              example: '0x738bfbcda2048c9f521343be845bcd01d6cb4885e3609a0065bb94b3f22df768'
            max_gas_wei:
              type: string
              example: '104335510016208'
    validator_to_exit:
      type: object
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the validator.
        index:
          type: integer
          example: '123456'
          description: Validator's onchain index
          nullable: true
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        pubkey:
          type: string
          example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
          description: The pubkey for the validator. Prefixed with `0x`.
        withdrawal_address:
          type: string
          example: '0xE40F80618324C814cD444434670a44ba4583aE38'
        status:
          type: string
          nullable: true
          example: active_ongoing
          description: The current status of the validator.
        withdrawal_credentials:
          type: string
          nullable: true
          example: '0x010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1'
          description: Withdrawal credentials for the validator funds to be withdrawn
            upon exit.
        fee_recipient_address:
          type: string
          nullable: true
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The fee recipient address that receives Execution Layer fees.
            For Figment-operated validators only.
        net_fee_payout_address:
          type: string
          nullable: true
          example: '0x781462762B706AA7c1DA71FBA1a545724928b81f'
          description: The net payout address that receives the customer's share of
            Execution Layer fees. For Figment-operated validators only.
        region:
          type: string
          nullable: true
          example: ca-central-1
          description: The geographic region in which the validator operates. For
            Figment-operated validators only.
        deposit_data:
          type: object
          nullable: true
          description: Data for funding the validator.
          properties:
            amount:
              type: integer
              nullable: true
              description: An amount of ETH in GWEI required to deposit
              example: 32000000000
            signature:
              type: string
              nullable: true
              example: '0xaab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49'
              description: A "proof of possession" which signs over pubkey, withdrawal_credentials,
                and amount using the validator private key.
            figment_signature:
              type: string
              nullable: true
              example: 0xZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi
              description: A base64 encoded signature of the validator's public key,
                signed by a private key maintained by Figment.
            deposit_data_root:
              type: string
              nullable: true
              example: b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422
              description: The deposit data.
            deposit_message_root:
              type: string
              nullable: true
              example: 026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44
              description: The deposit message.
            fork_version:
              type: string
              nullable: true
              example: '0x00000000'
              description: The genesis fork version.
            deposit_cli_version:
              type: string
              nullable: true
              example: 1.2.0
              description: The version of the CLI software used when making the deposit.
        status_history:
          type: object
          nullable: true
          description: Details of the status history.
          properties:
            events:
              type: array
              items:
                type: object
                properties:
                  status:
                    type: string
                    example: funding_requested
                  changed_at:
                    type: string
                    example: '2023-07-01T00:00:00.000Z'
                    description: When the status changed.
                example:
                - status: provisioned
                  changed_at: '2023-07-01T00:00:00.000Z'
                - status: funding_requested
                  changed_at: '2023-07-01T00:00:00.000Z'
                - status: deposited
                  changed_at: '2023-07-01T00:00:00.000Z'
                - status: active_ongoing
                  changed_at: '2023-07-01T00:00:00.000Z'
        status_estimates:
          type: object
          nullable: true
          description: Estimates for the validator.
          properties:
            estimated_active_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will become active and start
                earning rewards.
            estimated_exit_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the validator will exit and stop earning
                rewards.
            estimated_withdrawal_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: Estimate of when the principal will be withdrawable.
            activation_epoch:
              type: integer
              nullable: true
              example: 12345
              description: Raw beacon chain epoch at which the validator activated.
                Known during pending_queued.
            exit_epoch:
              type: integer
              nullable: true
              example: 67890
              description: Raw beacon chain epoch at which the validator exited. Known
                during active_exiting.
            withdrawable_epoch:
              type: integer
              nullable: true
              example: 68146
              description: Raw beacon chain epoch at which the validator becomes withdrawable.
                A lower bound — actual withdrawal depends on the sweep queue.
        on_demand_exit:
          type: object
          nullable: true
          description: Details of the on-demand exit.
          properties:
            requested_at:
              type: string
              nullable: true
              example: '2023-07-01T00:00:00.000Z'
              description: A timestamp representing the customer request to exit this
                validator, either through the Figment app or Staking API.
            approved_at:
              type: string
              nullable: true
              example:
              description: A timestamp representing the time at which the customer
                exit request was approved by Figment.
            submitted_at:
              type: string
              nullable: true
              example:
              description: A timestamp representing the time at which the validator's
                exit transaction was submitted to Ethereum's consensus layer.
            request_id:
              type: string
              format: uuid
              nullable: true
              example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
              description: The unique request ID (which may be the Staking API flow
                ID) used to request an exit for this validator.
        exit_message:
          type: object
          nullable: true
          description: Details of the exit message.
          properties:
            fork_version:
              type: string
              nullable: true
              example: '0x04001020'
              description: A pre-signed exit message fork version.
            encrypted_value:
              type: string
              nullable: true
              example: |-
                -----BEGIN PGP MESSAGE-----
                Version: 2023-03-03 (159679)
                Comment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202

                wV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew
                /cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT
                0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY
                zLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1
                vaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe
                T3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q
                oYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD
                kQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6
                7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==
                =DiMO
                -----END PGP MESSAGE-----
              description: A pre-signed exit message encrypted with the public encryption
                key you've stored with Figment. See https://docs.figment.io/docs/exiting-eth-validator.
        staking_request:
          type: object
          nullable: true
          properties:
            id:
              type: string
              example: f8bd4623-39ed-46ec-8518-991792665e56
              description: The ID of the staking position.
            created_at:
              type: string
              example: '2023-07-01T00:00:00.000Z'
              description: The time at which the staking request was created.
        balances:
          type: object
          nullable: true
          description: Balance information for the validator.
          properties:
            actual:
              type: string
              example: '32.0'
              description: Current staked balance in ETH
            pending_deposit:
              type: string
              example: '0.0'
              description: Pending deposit amount in ETH
            pending_topups:
              type: string
              example: '1.5'
              description: Sum of pending delegation activities in ETH
            pending_withdrawals:
              type: string
              example: '0.5'
              description: Sum of pending undelegation activities in ETH
    validators_summary:
      type: object
      properties:
        data:
          type: object
          properties:
            validator_counts:
              type: object
              properties:
                total:
                  type: integer
                  description: Total number of validators
                by_status:
                  type: object
                  description: Totals for validators in each status
                  properties:
                    provisioned:
                      type: integer
                    funding_requested:
                      type: integer
                    deposited_not_finalized:
                      type: integer
                    deposited:
                      type: integer
                    pending_initialized:
                      type: integer
                    pending_queued:
                      type: integer
                    active_ongoing:
                      type: integer
                    active_exiting:
                      type: integer
                    active_slashed:
                      type: integer
                    exited_slashed:
                      type: integer
                    exited_unslashed:
                      type: integer
                    withdrawal_possible:
                      type: integer
                    withdrawal_done:
                      type: integer
    tracked_validator:
      type: object
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the validator.
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        pubkey:
          type: string
          example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
          description: The pubkey for the validator. Prefixed with `0x`.
        withdrawal_address:
          type: string
          example: '0xE40F80618324C814cD444434670a44ba4583aE38'
    partners_tracked_validator:
      type: object
      properties:
        pubkey:
          type: string
          example: '0xd1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb'
          description: The pubkey for the validator. Must be prefixed with `0x`.
        withdrawal_address:
          type: string
          example: '0xE40F80618324C814cD444434670a44ba4583aE38'
    tracked_solana_stake_account:
      type: object
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the stake account.
        network:
          type: string
          example: devnet
          enum:
          - mainnet
          - testnet
          - devnet
        stake_account:
          type: string
        status:
          type: string
        vote_account:
          type: string
          nullable: true
        stake_authority:
          type: string
          nullable: true
        withdraw_authority:
          type: string
          nullable: true
        balance:
          type: string
          nullable: true
        active_balance:
          type: string
          nullable: true
        inactive_balance:
          type: string
          nullable: true
        balance_usd:
          type: string
          nullable: true
        active_balance_usd:
          type: string
          nullable: true
        inactive_balance_usd:
          type: string
          nullable: true
    solana_transaction:
      type: object
      properties:
        unsigned_transaction_serialized:
          type: string
          example: 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d845490355ff6299455677fe89a2ed65e74330b9d21200e5d6b66e0959cafda22e7447a11ce519ed8243e85b8aadded47943b6f79235f8beaa1dcd0e7cecdb030200080a5ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356869b8e0bdb0624debb7c1dab0365fae980eb8e612fc6627ac0dd1c693a5015bef600000000000000000000000000000000000000000000000000000000000000000306466fe5211732ffecadba72c39be7bc8ce5bbc5f7126b2c439b3a40000000ddf42a04800a54de2e583f94f17b089725b772d1333526271241532776d2ffc606a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a1d817a502050b680791e6ce6db88e1e5b7150f61fc6790a4eb4d10000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b210000000006a7d517192c5c51218cc94c3d4af17f58daee089ba1fd44e3dbd98a0000000006a7d517193584d0feed9bb3431d13206be544281b57b8566cc5375ff4000000cfba7719d3267f0cb2f320ab3ec5a415ba51b8e2067327e593044a360c169c8104020200013400000000c0c62d0000000000c80000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc0000000000502010874000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356865ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a35686000000000000000000000000000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a3568603000903204e00000000000005060104070906000402000000
          description: The unsigned transaction payload serialized in hex format
        unsigned_tx_serialized_hex:
          type: string
          example: 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d845490355ff6299455677fe89a2ed65e74330b9d21200e5d6b66e0959cafda22e7447a11ce519ed8243e85b8aadded47943b6f79235f8beaa1dcd0e7cecdb030200080a5ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356869b8e0bdb0624debb7c1dab0365fae980eb8e612fc6627ac0dd1c693a5015bef600000000000000000000000000000000000000000000000000000000000000000306466fe5211732ffecadba72c39be7bc8ce5bbc5f7126b2c439b3a40000000ddf42a04800a54de2e583f94f17b089725b772d1333526271241532776d2ffc606a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a1d817a502050b680791e6ce6db88e1e5b7150f61fc6790a4eb4d10000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b210000000006a7d517192c5c51218cc94c3d4af17f58daee089ba1fd44e3dbd98a0000000006a7d517193584d0feed9bb3431d13206be544281b57b8566cc5375ff4000000cfba7719d3267f0cb2f320ab3ec5a415ba51b8e2067327e593044a360c169c8104020200013400000000c0c62d0000000000c80000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc0000000000502010874000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356865ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a35686000000000000000000000000000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a3568603000903204e00000000000005060104070906000402000000
          description: The unsigned transaction payload serialized in hex format
        unsigned_tx_serialized_base64:
          type: string
          example: MDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw\nMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw\nMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGQ4NDU0\nOTAzNTVmZjYyOTk0NTU2NzdmZTg5YTJlZDY1ZTc0MzMwYjlkMjEyMDBlNWQ2\nYjY2ZTA5NTljYWZkYTIyZTc0NDdhMTFjZTUxOWVkODI0M2U4NWI4YWFkZGVk\nNDc5NDNiNmY3OTIzNWY4YmVhYTFkY2QwZTdjZWNkYjAzMDIwMDA4MGE1YWM5\nOWNkYzYzMTM5Y2E2Y2ZhYTllYmNmMmI4ZTU2ZGE5OWViMDFkNDQ1YzgxODA4\nODk3NmRhY2QxYTM1Njg2OWI4ZTBiZGIwNjI0ZGViYjdjMWRhYjAzNjVmYWU5\nODBlYjhlNjEyZmM2NjI3YWMwZGQxYzY5M2E1MDE1YmVmNjAwMDAwMDAwMDAw\nMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw\nMDAwMDAwMDAwMzA2NDY2ZmU1MjExNzMyZmZlY2FkYmE3MmMzOWJlN2JjOGNl\nNWJiYzVmNzEyNmIyYzQzOWIzYTQwMDAwMDAwZGRmNDJhMDQ4MDBhNTRkZTJl\nNTgzZjk0ZjE3YjA4OTcyNWI3NzJkMTMzMzUyNjI3MTI0MTUzMjc3NmQyZmZj\nNjA2YTFkODE3OTEzNzU0MmE5ODM0MzdiZGZlMmE3YWIyNTU3ZjUzNWM4YTc4\nNzIyYjY4YTQ5ZGMwMDAwMDAwMDAwNmExZDgxN2E1MDIwNTBiNjgwNzkxZTZj\nZTZkYjg4ZTFlNWI3MTUwZjYxZmM2NzkwYTRlYjRkMTAwMDAwMDAwMDZhN2Q1\nMTcxOGM3NzRjOTI4NTY2Mzk4NjkxZDVlYjY4YjVlYjhhMzliNGI2ZDVjNzM1\nNTViMjEwMDAwMDAwMDA2YTdkNTE3MTkyYzVjNTEyMThjYzk0YzNkNGFmMTdm\nNThkYWVlMDg5YmExZmQ0NGUzZGJkOThhMDAwMDAwMDAwNmE3ZDUxNzE5MzU4\nNGQwZmVlZDliYjM0MzFkMTMyMDZiZTU0NDI4MWI1N2I4NTY2Y2M1Mzc1ZmY0\nMDAwMDAwY2ZiYTc3MTlkMzI2N2YwY2IyZjMyMGFiM2VjNWE0MTViYTUxYjhl\nMjA2NzMyN2U1OTMwNDRhMzYwYzE2OWM4MTA0MDIwMjAwMDEzNDAwMDAwMDAw\nYzBjNjJkMDAwMDAwMDAwMGM4MDAwMDAwMDAwMDAwMDAwNmExZDgxNzkxMzc1\nNDJhOTgzNDM3YmRmZTJhN2FiMjU1N2Y1MzVjOGE3ODcyMmI2OGE0OWRjMDAw\nMDAwMDAwMDUwMjAxMDg3NDAwMDAwMDAwNWFjOTljZGM2MzEzOWNhNmNmYWE5\nZWJjZjJiOGU1NmRhOTllYjAxZDQ0NWM4MTgwODg5NzZkYWNkMWEzNTY4NjVh\nYzk5Y2RjNjMxMzljYTZjZmFhOWViY2YyYjhlNTZkYTk5ZWIwMWQ0NDVjODE4\nMDg4OTc2ZGFjZDFhMzU2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw\nMDAwMDVhYzk5Y2RjNjMxMzljYTZjZmFhOWViY2YyYjhlNTZkYTk5ZWIwMWQ0\nNDVjODE4MDg4OTc2ZGFjZDFhMzU2ODYwMzAwMDkwMzIwNGUwMDAwMDAwMDAw\nMDAwNTA2MDEwNDA3MDkwNjAwMDQwMjAwMDAwMA==\n
          description: The unsigned transaction payload serialized in base64 format
        signing_payload:
          type: string
          example: '0200080a5ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356869b8e0bdb0624debb7c1dab0365fae980eb8e612fc6627ac0dd1c693a5015bef600000000000000000000000000000000000000000000000000000000000000000306466fe5211732ffecadba72c39be7bc8ce5bbc5f7126b2c439b3a40000000ddf42a04800a54de2e583f94f17b089725b772d1333526271241532776d2ffc606a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a1d817a502050b680791e6ce6db88e1e5b7150f61fc6790a4eb4d10000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b210000000006a7d517192c5c51218cc94c3d4af17f58daee089ba1fd44e3dbd98a0000000006a7d517193584d0feed9bb3431d13206be544281b57b8566cc5375ff4000000cfba7719d3267f0cb2f320ab3ec5a415ba51b8e2067327e593044a360c169c8104020200013400000000c0c62d0000000000c80000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc0000000000502010874000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a356865ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a35686000000000000000000000000000000005ac99cdc63139ca6cfaa9ebcf2b8e56da99eb01d445c818088976dacd1a3568603000903204e00000000000005060104070906000402000000'
          description: The message from the unsigned transaction payload in serialized
            in hex format
        last_valid_block_height:
          type: integer
          example: 291621448
          nullable: true
          description: Block height that the transaction payload is valid until (null
            for durable nonce transactions)
        stake_account:
          type: string
          example: tfUTBG4BH5Cg9PdhNHiohL1fjXWkEyi6S9qZsBdT2HLQ
          description: Stake Account Pubkey generated for a staking transaction
        network:
          type: string
          example: devnet
          description: Network for the transaction
        nonce_value:
          type: string
          nullable: true
          example: GNP8nFAjKFBxL6Bfmti9gBGxCRF7gMaGmEiKfJKpJAaG
          description: The nonce value used as the transaction's blockhash. Present
            only when `nonce_account` was provided in the request.
        is_durable_nonce:
          type: boolean
          nullable: true
          description: Indicates that this transaction uses a durable nonce. When
            `true`, `last_valid_block_height` will be `null`.
    staking_activity_stake:
      type: object
      title: Stake
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the staking activity.
        action:
          type: string
          example: staked
          description: The staking activity deposit action.
        timestamp:
          type: string
          example: '2023-07-01T00:00:00.000Z'
          description: A timestamp representing the staking activitiy deposit.
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        currency:
          type: string
          example: ETH
          description: The currency of the staking activity.
        tx_hash:
          type: string
          description: Hash of the transaction.
        status:
          type: string
          example: deposited
          enum:
          - initialized
          - unfinalized
          - deposited
          - activating
          - activated
          description: The status of the staking activitiy deposit.
        amount:
          type: integer
    staking_activity_unstake:
      type: object
      title: Unstake
      properties:
        id:
          type: string
          example: 031af36c-508a-4f3d-84dd-f46d9e59428f
          description: A unique UUID for the staking activity.
        action:
          type: string
          example: unstaked
          description: The staking activity exit_request action.
        timestamp:
          type: string
          example: '2023-07-01T00:00:00.000Z'
          description: A timestamp representing the staking activitiy exit request.
        network:
          type: string
          example: hoodi
          enum:
          - mainnet
          - hoodi
        currency:
          type: string
          example: ETH
          description: The currency of the staking activity.
        status:
          type: string
          example: exiting
          enum:
          - exit_requested
          - exiting
          - pending_withdrawal
          - completed
          description: The status of the staking activitiy exit request.
        amount:
          type: integer
    monthly_statement:
      type: object
      properties:
        id:
          type: string
          example: 61989868-2cfc-4027-b350-e239ddb1e10d
          description: A unique UUID for the monthly statement.
        type:
          type: string
          example: staking_rewards
          enum:
          - staking_rewards
          - revenue_share
          - white_label_validator
        month:
          type: string
          example: 2024-04
          description: Year and month of the monthly statement.
        csv_data:
          type: string
          description: The monthly statement data in CSV format.
    ethereum_transaction:
      type: object
      properties:
        unsigned_transaction_serialized:
          type: string
          example: '0x02f90135824268248459682f008501b0f8d21a8308667b949741f8e49ffa322714511b5d17bd052698eafa43843b9aca00b901049a0d79ad0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000c0'
          description: The unsigned transaction payload serialized in hex format
        unsigned_transaction_hash:
          type: string
          example: '0x7de4a33e6cb731239cbf58c915b666cb9680cf14cc2d144d0bad5d7140c84fa7'
          description: keccak256 hash of the serialized unsigned transaction payload
        max_transaction_cost:
          type: integer
          example: 3999034319785598
          description: Max transaction cost in gwei
        calldata:
          type: string
          example: '0x9a0d79ad0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000'
          description: Calldata for the transaction.
    addresses_index:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              address:
                type: string
                example: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
                description: The parent address terms attach to. Query by child address
                  to resolve to its parent.
              protocol:
                type: string
                example: solana
              network:
                type: string
                example: mainnet
              address_type:
                type: string
                enum:
                - delegator
                - stake_authority
                - stake_key
                - wallet
                - withdrawal_address
                example: stake_authority
                description: Role the address plays for this protocol.
              added_at:
                type: string
                format: date-time
                description: When Figment first saw this address. Not when it entered
                  your book.
              changed_at:
                type: string
                format: date-time
                description: 'Greatest of: address first seen, current staking assignment
                  recorded, current rev-share assignment recorded. Use with `changed_since`
                  to sync.'
              customer:
                type: object
                nullable: true
                description: The organization holding the deal, by id. Names are never
                  returned. Null on the same terms as `contract`.
                properties:
                  id:
                    type: string
                    format: uuid
              contract:
                type: object
                nullable: true
                description: Terms of the currently effective staking deal. Null when
                  no deal is in effect for this address, and on an address you hold
                  no deal on — tracking an address does not disclose the terms of
                  someone else's deal.
                properties:
                  contracted_with:
                    type: string
                    nullable: true
                    example: customer
                    description: Who Figment holds the contract with. Open enum —
                      new values may be added without notice.
                  responsible_for_invoicing:
                    type: string
                    nullable: true
                    enum:
                    - figment
                    - partner
                    example: partner
                    description: Which party invoices the end customer.
                  effective_from:
                    type: string
                    format: date
                    nullable: true
                    example: '2026-01-01'
                  effective_to:
                    type: string
                    format: date
                    nullable: true
                    example:
                    description: End of the deal term. A past date means the contract
                      has ended; the address still appears.
              fees:
                type: array
                nullable: true
                description: Configured fees, not fees actually applied. Null on the
                  same terms as `contract`.
                example:
                - reward_type: inflation_and_mev
                  percentage: '0.08'
                  on_chain: false
                  dynamic: false
                  effective_from: '2026-02-01'
                - reward_type: priority_fees
                  percentage: '0.06'
                  on_chain: false
                  dynamic: true
                  effective_from: '2026-02-01'
                items:
                  type: object
                  properties:
                    reward_type:
                      type: string
                      enum:
                      - all
                      - inflation_and_mev
                      - priority_fees
                      example: priority_fees
                      description: Reward stream this fee prices. `all` where a protocol
                        does not split its rewards.
                    percentage:
                      type: string
                      nullable: true
                      example: '0.06'
                      description: Configured base-tier rate as a decimal fraction.
                        Null when the fee is taken on chain.
                    on_chain:
                      type: boolean
                      example: false
                      description: Whether the fee is taken on chain. On-chain rates
                        are not served here.
                    dynamic:
                      type: boolean
                      example: true
                      description: Whether the rate can change due to dynamic deal
                        tiers.
                    effective_from:
                      type: string
                      format: date
                      nullable: true
                      example: '2026-02-01'
              rev_share:
                type: object
                nullable: true
                description: Revenue-share terms where a rev-share deal is in effect.
                  Null unless you hold that rev-share deal — holding the staking deal
                  alone does not disclose it.
                properties:
                  effective_from:
                    type: string
                    format: date
                    nullable: true
                    example: '2026-01-01'
                  effective_to:
                    type: string
                    format: date
                    nullable: true
                    example:
                  shares:
                    type: array
                    example:
                    - reward_type: inflation_and_mev
                      partner_share: '0.3'
                    - reward_type: priority_fees
                      partner_share: '0.5'
                    items:
                      type: object
                      properties:
                        reward_type:
                          type: string
                          example: inflation_and_mev
                        partner_share:
                          type: string
                          nullable: true
                          example: '0.6'
                          description: The partner's share of the reward stream, as
                            a decimal fraction.
        meta:
          type: object
          properties:
            pagination:
              type: object
              properties:
                current_page:
                  type: integer
                  example: 1
                total_pages:
                  type: integer
                  example: 10
                total_item_count:
                  type: integer
                  example: 1000
                has_next:
                  type: boolean
                  example: true
    pagination:
      type: object
      properties:
        pagination:
          type: object
          properties:
            current_page:
              type: integer
              example: 1
            total_pages:
              type: integer
              example: 10
            total_item_count:
              type: integer
              example: 1000
            has_next:
              type: boolean
              example: true
    error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              example: The record is invalid
            details:
              type: array
              items:
                type: object
                required:
                - param
                - message
                - context
                - code
                properties:
                  param:
                    type: string
                    example: example_field
                  message:
                    type: string
                    example: The example_field property has an incorrect value. Must
                      be one of X, Y, or Z.
                  code:
                    type:
                    - integer
                    - string
                    example: 1000
                  context:
                    type: object
    rewards_error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              example: An error has occurred.
    sol_rewards_req_common:
      type: object
      properties:
        start:
          type: integer
          example: 447
          description: Either epoch (number) or timestamps (strings formatted like
            "YYYY-MM-DD").
        end:
          type: integer
          example: 458
          description: Either epoch (number) or timestamps (strings formatted like
            "YYYY-MM-DD").
      required:
      - start
      - end
    sol_rewards_req_by_stake_account:
      allOf:
      - "$ref": "#/components/schemas/sol_rewards_req_common"
      - type: object
        title: Search by stake account
        properties:
          stake_accounts:
            type: array
            description: Stake Account addresses.
            items:
              type: string
              example: 4GCemsBJbwpG7AjczRw1YqG6BBpamAW75UkRtnmapqkF
        required:
        - stake_accounts
    sol_rewards_req_by_groups:
      allOf:
      - "$ref": "#/components/schemas/sol_rewards_req_common"
      - type: object
        title: Search by groups
        properties:
          groups:
            type: string
            description: Filter using comma-separated group uuids.
            example: be982d21-ff93-4092-b56a-f40bac865400,a0ba2333-c541-41f0-ad89-e29a268a3ee5
        required:
        - groups
    sol_rewards_req_by_stake_authority:
      allOf:
      - "$ref": "#/components/schemas/sol_rewards_req_common"
      - type: object
        title: Search by stake authority
        properties:
          stake_authorities:
            type: array
            description: Stake authority addresses.
            items:
              type: string
              example: 4GCemsBJbwpG7AjczRw1YqG6BBpamAW75UkRtnmapqkF
        required:
        - stake_authorities
    sol_rewards_req_by_withdraw_authority:
      allOf:
      - "$ref": "#/components/schemas/sol_rewards_req_common"
      - type: object
        title: Search by withdraw authority
        properties:
          withdraw_authorities:
            type: array
            description: Withdraw authority addresses.
            items:
              type: string
              example: 4GCemsBJbwpG7AjczRw1YqG6BBpamAW75UkRtnmapqkF
        required:
        - withdraw_authorities
    staking_api_error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              nullable: false
            details:
              type: array
              items:
                type: object
                properties:
                  param:
                    type: string
                  message:
                    type: string
                  context:
                    type: object
          required:
          - message
      required:
      - error
    blockfrost_project:
      type: object
      properties:
        id:
          type: string
          nullable: false
        network:
          type: string
          nullable: false
        project_id:
          type: string
          nullable: false
        created:
          type: string
          nullable: false
    meta:
      type: object
      properties:
        pagination:
          type: object
          properties:
            current_page:
              type: integer
              example: 1
            total_pages:
              type: integer
              example: 10
            total_item_count:
              type: integer
              example: 100
    flow:
      type: object
      properties:
        id:
          type: string
          nullable: false
        protocol:
          type: string
          nullable: false
        network:
          type: string
          nullable: false
        operation:
          type: string
        state:
          type: string
        actions:
          type: array
        data:
          type: object
        created_at:
          type: string
        updated_at:
          type: string
    FigmentError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: invalid_request
            message:
              type: string
              example: missing paymentPayload or paymentRequirements
            request_id:
              type: string
              example: 0d2a8c2e-3a7e-4f3d-9c7b-1a2b3c4d5e6f
          required:
          - code
          - message
          - request_id
      required:
      - error
    PaymentPayload:
      type: object
      properties:
        x402Version:
          type: number
          enum:
          - 2
        resource:
          type: object
          properties:
            url:
              type: string
              minLength: 1
            description:
              type: string
            mimeType:
              type: string
            serviceName:
              type: string
              minLength: 1
              maxLength: 32
              pattern: "^[\\x20-\\x7e]+$"
            tags:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 32
                pattern: "^[\\x20-\\x7e]+$"
              maxItems: 5
            iconUrl:
              type: string
              maxLength: 2048
          required:
          - url
        accepted:
          type: object
          properties:
            scheme:
              type: string
              minLength: 1
            network:
              type: string
              minLength: 3
            amount:
              type: string
              minLength: 1
            asset:
              type: string
              minLength: 1
            payTo:
              type: string
              minLength: 1
            maxTimeoutSeconds:
              type: number
              exclusiveMinimum: 0
            extra:
              type:
              - object
              - 'null'
              additionalProperties: {}
          required:
          - scheme
          - network
          - amount
          - asset
          - payTo
          - maxTimeoutSeconds
        payload:
          type: object
          additionalProperties: {}
        extensions:
          type:
          - object
          - 'null'
          additionalProperties: {}
      required:
      - x402Version
      - accepted
      - payload
      description: x402 V2 payment payload envelope. The inner `payload` field is
        scheme-specific; see the examples for each supported (scheme, network) combination.
      example:
        x402Version: 2
        resource:
          url: https://example.com/protected-resource
          description: Example protected resource being paid for.
        accepted:
          scheme: exact
          network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
          amount: '1000000'
          asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
          payTo: MerchantAddr11111111111111111111111111111111
          maxTimeoutSeconds: 120
          extra:
            feePayer: FacilitatorSigner1111111111111111111111111
        payload:
          transaction: AQAB...base64-encoded-partially-signed-solana-tx...
    PaymentRequirements:
      type: object
      properties:
        scheme:
          type: string
          minLength: 1
        network:
          type: string
          minLength: 3
        amount:
          type: string
          minLength: 1
        asset:
          type: string
          minLength: 1
        payTo:
          type: string
          minLength: 1
        maxTimeoutSeconds:
          type: number
          exclusiveMinimum: 0
        extra:
          type:
          - object
          - 'null'
          additionalProperties: {}
      required:
      - scheme
      - network
      - amount
      - asset
      - payTo
      - maxTimeoutSeconds
      description: x402 V2 payment requirements envelope. The `extra` field is scheme-specific;
        see the examples for each supported (scheme, network) combination.
      example:
        scheme: exact
        network: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
        amount: '1000000'
        asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        payTo: MerchantAddr11111111111111111111111111111111
        maxTimeoutSeconds: 120
        extra:
          feePayer: FacilitatorSigner1111111111111111111111111
    VerifyResponse:
      type: object
      properties:
        isValid:
          type: boolean
        invalidReason:
          type: string
        invalidMessage:
          type: string
        payer:
          type: string
        extensions:
          type: object
          additionalProperties: {}
        extra:
          type: object
          additionalProperties: {}
      required:
      - isValid
    SettleResponse:
      type: object
      properties:
        success:
          type: boolean
        errorReason:
          type: string
        errorMessage:
          type: string
        payer:
          type: string
        transaction:
          type: string
        network:
          type: string
          description: CAIP-2-like network identifier in the form `scheme:network`.
          pattern: "^[^:]+:[^:]+$"
          example: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
        amount:
          type: string
        extensions:
          type: object
          additionalProperties: {}
        extra:
          type: object
          additionalProperties: {}
      required:
      - success
      - transaction
      - network
    SupportedKind:
      type: object
      properties:
        x402Version:
          type: number
        scheme:
          type: string
        network:
          type: string
          description: CAIP-2-like network identifier in the form `scheme:network`.
          pattern: "^[^:]+:[^:]+$"
          example: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
        extra:
          type: object
          additionalProperties: {}
      required:
      - x402Version
      - scheme
      - network
    SupportedResponse:
      type: object
      properties:
        kinds:
          type: array
          items:
            "$ref": "#/components/schemas/SupportedKind"
        extensions:
          type: array
          items:
            type: string
        signers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
      required:
      - kinds
      - extensions
      - signers
    PartnerUsageRow:
      type: object
      properties:
        merchantOrganizationId:
          type:
          - string
          - 'null'
        merchantOrganizationName:
          type:
          - string
          - 'null'
        endpoint:
          type: string
          example: https://api.merchant.test/widget
        count:
          type: number
          example: 42
        volumeUsd:
          type: string
          example: '1234.560000'
      required:
      - merchantOrganizationId
      - merchantOrganizationName
      - endpoint
      - count
      - volumeUsd
    PartnerAnalyticsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            "$ref": "#/components/schemas/PartnerUsageRow"
        meta:
          type: object
          properties:
            range:
              type: string
              example: 7d
            network:
              type: string
              example: solana-mainnet
            partnerOrganizationId:
              type: string
              example: 22222222-2222-4222-8222-222222222222
          required:
          - range
          - network
          - partnerOrganizationId
      required:
      - data
      - meta
    SettlementReportRow:
      type: object
      properties:
        date:
          type: string
          description: YYYY-MM-DD, UTC day
          example: '2026-07-01'
        buyer_address:
          type: string
          example: 9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin
        merchant_address:
          type: string
          example: 3fX8pQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9Pus
        network:
          type: string
          example: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
        payment_token_ticker:
          type: string
          example: USDC
        settled_count:
          type: number
          example: 42
        gross_settlement:
          type: string
          example: '1234.560000'
        gross_facilitator_fee_usd:
          type: string
          example: '1.234560'
      required:
      - date
      - buyer_address
      - merchant_address
      - network
      - payment_token_ticker
      - settled_count
      - gross_settlement
      - gross_facilitator_fee_usd
    SettlementReportResponse:
      type: object
      properties:
        data:
          type: array
          items:
            "$ref": "#/components/schemas/SettlementReportRow"
        meta:
          type: object
          properties:
            start_date:
              type: string
              example: '2026-05-10'
            end_date:
              type: string
              example: '2026-07-09'
            network:
              type:
              - string
              - 'null'
              example:
            token:
              type:
              - string
              - 'null'
              example: USDC
            merchant_addresses:
              type:
              - array
              - 'null'
              items:
                type: string
              example:
          required:
          - start_date
          - end_date
          - network
          - token
          - merchant_addresses
      required:
      - data
      - meta
    ProtocolBody:
      type: object
      properties:
        x402Version:
          type: number
          enum:
          - 2
          description: x402 protocol version. Must be 2; this facilitator does not
            accept V1.
        paymentPayload:
          "$ref": "#/components/schemas/PaymentPayload"
        paymentRequirements:
          "$ref": "#/components/schemas/PaymentRequirements"
      required:
      - x402Version
      - paymentPayload
      - paymentRequirements
  parameters: {}
