Rocket Pool Megapool API

The Megapool API from Rocket Pool — 3 operation(s) for megapool.

OpenAPI Specification

rocket-pool-megapool-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rocket Pool Protocol API (rocketpool-go) Auction Megapool API
  description: Read-oriented protocol surface exposed by the rocketpool-go Golang library on top of the Rocket Pool smart contracts deployed on Ethereum. The API described here is a logical mapping of rocketpool-go packages — auction, deposit, minipool, network, node, rewards, settings, tokens, dao/protocol, dao/trustednode — onto HTTP-style operations. There is no hosted HTTP endpoint for this API; integrators read the equivalent state via Ethereum JSON-RPC eth_call requests against the deployed contracts using the Go library, the rocketpool-js library, or directly via web3 clients.
  version: 1.0.0
  license:
    name: GPL-3.0
    url: https://github.com/rocket-pool/rocketpool-go/blob/master/LICENSE
  contact:
    name: Rocket Pool
    url: https://github.com/rocket-pool/rocketpool-go
servers:
- url: https://protocol.rocketpool.example/v1
  description: Logical base path — actual access is via Ethereum smart contracts
tags:
- name: Megapool
paths:
  /megapool/status:
    get:
      tags:
      - Megapool
      summary: Get Megapool Status
      operationId: getMegapoolStatus
      responses:
        '200':
          description: Megapool status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MegapoolStatus'
  /megapool/deposit:
    post:
      tags:
      - Megapool
      summary: Create Megapool Validators
      operationId: depositMegapool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MegapoolDepositRequest'
      responses:
        '200':
          description: Deposit submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
  /megapool/exit-queue:
    post:
      tags:
      - Megapool
      summary: Exit Megapool Queue
      operationId: exitMegapoolQueue
      responses:
        '200':
          description: Exit submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
components:
  schemas:
    MegapoolStatus:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/Address'
        validatorCount:
          type: integer
        debt:
          $ref: '#/components/schemas/EthAmount'
        useLatestDelegate:
          type: boolean
        delegateAddress:
          $ref: '#/components/schemas/Address'
        nodeCapital:
          $ref: '#/components/schemas/EthAmount'
        userCapital:
          $ref: '#/components/schemas/EthAmount'
    Address:
      type: string
      pattern: ^0x[a-fA-F0-9]{40}$
      example: '0x0000000000000000000000000000000000000000'
    TransactionResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
        txHash:
          $ref: '#/components/schemas/TransactionHash'
        gasInfo:
          type: object
          properties:
            estGasLimit:
              type: integer
            safeGasLimit:
              type: integer
        error:
          type: string
    EthAmount:
      type: string
      description: Amount expressed in wei (1 ETH = 10^18 wei)
      example: '32000000000000000000'
    TransactionHash:
      type: string
      pattern: ^0x[a-fA-F0-9]{64}$
    MegapoolDepositRequest:
      type: object
      required:
      - validatorCount
      properties:
        validatorCount:
          type: integer
          minimum: 1
        useExpressTicket:
          type: boolean