openapi: 3.0.1 info: title: BitGo Platform Addresses Staking API description: Representative specification of the BitGo Platform REST API v2 for institutional digital-asset custody. Covers wallets, addresses, transactions and transfers, keychains, webhooks, wallet policies, staking, trading and settlement over the Go Network, and enterprise / user surfaces. Most endpoints are namespaced under a coin (for example `btc`, `eth`, `hteth`) via the `{coin}` path parameter. Authentication uses a Bearer access token. Transaction-signing operations that require private-key material are typically issued against a self-hosted BitGo Express proxy. termsOfService: https://www.bitgo.com/legal/terms-of-service/ contact: name: BitGo Support url: https://developers.bitgo.com/ version: '2.0' servers: - url: https://app.bitgo.com/api/v2 description: BitGo production platform - url: https://app.bitgo-test.com/api/v2 description: BitGo test environment - url: http://localhost:3080/api/v2 description: Self-hosted BitGo Express signing proxy (default port) security: - accessToken: [] tags: - name: Staking paths: /{coin}/wallet/{walletId}/staking/requests: post: operationId: createStakingRequest tags: - Staking summary: Create staking request description: Create a stake or unstake request for a supported proof-of-stake asset from a wallet. parameters: - $ref: '#/components/parameters/coin' - $ref: '#/components/parameters/walletId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StakingRequestInput' responses: '200': description: The created staking request. content: application/json: schema: $ref: '#/components/schemas/StakingRequest' get: operationId: listStakingRequests tags: - Staking summary: List staking requests description: List staking and unstaking requests for a wallet. parameters: - $ref: '#/components/parameters/coin' - $ref: '#/components/parameters/walletId' responses: '200': description: A list of staking requests. content: application/json: schema: $ref: '#/components/schemas/StakingRequestList' components: parameters: walletId: name: walletId in: path required: true description: The wallet identifier. schema: type: string coin: name: coin in: path required: true description: The coin or token ticker (for example `btc`, `eth`, `hteth`, `sol`, `matic`). Testnet coins are prefixed with `t` (for example `tbtc`). schema: type: string example: btc schemas: StakingRequestList: type: object properties: requests: type: array items: $ref: '#/components/schemas/StakingRequest' StakingRequest: type: object properties: id: type: string coin: type: string walletId: type: string amount: type: string type: type: string status: type: string enum: - NEW - READY - DELIVERED - PROCESSED - FAILED StakingRequestInput: type: object properties: amount: type: string type: type: string enum: - STAKE - UNSTAKE clientId: type: string required: - amount - type securitySchemes: accessToken: type: http scheme: bearer bearerFormat: accessToken description: 'BitGo access token passed as `Authorization: Bearer `.'