openapi: 3.0.3 info: title: Rocket Pool Protocol API (rocketpool-go) Auction Minipool 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: Minipool paths: /minipools: get: tags: - Minipool summary: List Minipools operationId: listMinipoolsProtocol parameters: - name: offset in: query schema: type: integer - name: limit in: query schema: type: integer maximum: 1000 responses: '200': description: Page of minipools content: application/json: schema: type: object properties: total: type: integer items: type: array items: $ref: '#/components/schemas/MinipoolDetails' /minipools/{address}: get: tags: - Minipool summary: Get Minipool Details operationId: getMinipool parameters: - $ref: '#/components/parameters/Address' responses: '200': description: Minipool details content: application/json: schema: $ref: '#/components/schemas/MinipoolDetails' /minipool/status: get: tags: - Minipool summary: List Node Minipools operationId: listMinipools responses: '200': description: List of minipools belonging to the node content: application/json: schema: type: array items: $ref: '#/components/schemas/Minipool' /minipool/{address}/stake: post: tags: - Minipool summary: Stake Minipool After Scrub Check operationId: stakeMinipool parameters: - $ref: '#/components/parameters/MinipoolAddress' responses: '200': description: Stake submitted content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' /minipool/{address}/exit: post: tags: - Minipool summary: Exit Minipool From Beacon Chain operationId: exitMinipool parameters: - $ref: '#/components/parameters/MinipoolAddress' responses: '200': description: Exit signed and broadcast content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' /minipool/{address}/close: post: tags: - Minipool summary: Close Minipool operationId: closeMinipool parameters: - $ref: '#/components/parameters/MinipoolAddress' responses: '200': description: Close submitted content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' /minipool/{address}/distribute-balance: post: tags: - Minipool summary: Distribute Minipool Balance operationId: distributeMinipoolBalance parameters: - $ref: '#/components/parameters/MinipoolAddress' responses: '200': description: Distribute submitted content: application/json: schema: $ref: '#/components/schemas/TransactionResponse' components: schemas: Minipool: type: object properties: address: $ref: '#/components/schemas/Address_2' validatorPubkey: $ref: '#/components/schemas/PublicKey_2' status: type: string enum: - Initialized - Prelaunch - Staking - Withdrawable - Dissolved depositType: type: string enum: - None - Full - Half - Empty - Variable nodeDepositBalance: $ref: '#/components/schemas/EthAmount_2' userDepositBalance: $ref: '#/components/schemas/EthAmount_2' nodeFee: type: number format: float description: Node commission rate (0..1) createdTime: type: string format: date-time useLatestDelegate: type: boolean 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 PublicKey_2: type: string pattern: ^0x[a-fA-F0-9]{96}$ description: BLS12-381 validator public key Address: type: string pattern: ^0x[a-fA-F0-9]{40}$ PublicKey: type: string pattern: ^0x[a-fA-F0-9]{96}$ Address_2: type: string pattern: ^0x[a-fA-F0-9]{40}$ example: '0x0000000000000000000000000000000000000000' EthAmount_2: type: string description: Amount expressed in wei (1 ETH = 10^18 wei) example: '32000000000000000000' EthAmount: type: string description: Amount in wei MinipoolDetails: type: object properties: address: $ref: '#/components/schemas/Address' nodeAddress: $ref: '#/components/schemas/Address' validatorPubkey: $ref: '#/components/schemas/PublicKey' status: type: string depositType: type: string nodeDepositBalance: $ref: '#/components/schemas/EthAmount' userDepositBalance: $ref: '#/components/schemas/EthAmount' nodeFee: type: number format: float delegateAddress: $ref: '#/components/schemas/Address' useLatestDelegate: type: boolean finalised: type: boolean TransactionHash: type: string pattern: ^0x[a-fA-F0-9]{64}$ parameters: MinipoolAddress: name: address in: path required: true description: The Ethereum address of the minipool contract schema: $ref: '#/components/schemas/Address_2' Address: name: address in: path required: true schema: $ref: '#/components/schemas/Address'