---
updatedAt: 2026-05-20T06:31:08.000Z
---

Fetch the complete documentation index at: https://docs.blockdaemon.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Generate validator consolidation intent

Generates a signed intent message to consolidate validator balances by transferring
funds from a source validator to a target validator. This operation enables balance
consolidation and can also upgrade withdrawal credentials from Type 1 (0x01) to Type 2 (0x02).

**Consolidation Types:**
- **Type 1 to Type 2**: Upgrades a validator from regular withdrawals (0x01) to compounding (0x02)
- **Type 1 to Type 2**: Consolidates funds from a Type 1 validator to an existing Type 2 validator
- **Type 2 to Type 2**: Consolidates funds between two Type 2 (compounding) validators

**Key Notes:**
- Upgrading from Type 1 to Type 2 is **permanent and irreversible**.
- After Type 2 upgrade:
  - **Max effective balance (MaxEB)** increases to **2048 ETH**.
  - **Partial withdrawals** become available for balances **above 32 ETH**.
- Processing may take **several days** to complete across consensus and execution layers.
- **Consolidation transfers the entire balance** from source to target validator.

**Prerequisites:**
- Source validator must be **active or eligible**.
- Target validator must be **active and valid**.
- Source validator must **not already** use Type 2 withdrawal credentials (for Type 1 to Type 2 upgrades).
- No conflicting pending operations (e.g., exits, withdrawals).

**Costs & Timing:**
- Consolidation requires on-chain transaction; gas fees apply and execution may take hours or days.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Staking API",
    "description": "The Blockdaemon Staking API simplifies and streamlines institutional cryptocurrency staking. The API allows developers to interact with blockchain networks and perform various staking-related operations, such as delegating and undelegating tokens, in a single, unified interface.\n\nWith the Staking API, you can quickly and easily build and deploy applications that automate staking activities and increase efficiency in your blockchain operations.",
    "contact": {
      "name": "Blockdaemon",
      "email": "info@blockdaemon.com",
      "url": "https://blockdaemon.com"
    },
    "x-logo": {
      "url": "https://assets-global.website-files.com/633c5e06513fa35f3391a5f9/645d33beb6fa65f6cfb95eb8_BD%20Logo%20Stack%20-%20Purple.svg",
      "backgroundColor": "#fafafa",
      "altText": "Blockdaemon logo"
    }
  },
  "x-readme": {
    "explorer-enabled": false
  },
  "servers": [
    {
      "url": "https://svc.blockdaemon.com/boss"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "description": "When signing up for a staking account, you are provided with an API key.\n\nTo authenticate a Staking API request, pass your API key in the `X-API-Key` header.",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    },
    "parameters": {
      "EthereumNetwork": {
        "name": "network",
        "in": "path",
        "description": "Ethereum network",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/EthereumNetwork"
        }
      }
    },
    "responses": {
      "InternalServerError": {
        "description": "Internal server error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "InvalidRequest": {
        "description": "Invalid request.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "Error response envelope",
              "required": [
                "code",
                "message"
              ],
              "properties": {
                "code": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Error code",
                  "example": 400
                },
                "message": {
                  "type": "string",
                  "description": "Error Message",
                  "example": "Detailed human-readable diagnostic message regarding any invalid request parameters"
                }
              }
            }
          }
        }
      },
      "NoValidatorsError": {
        "description": "Insufficient validators available to process Stake Intent request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Header 'X-API-Key' missing.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UnauthorizedError"
            }
          }
        }
      }
    },
    "schemas": {
      "CommonConsolidateResponse": {
        "type": "object",
        "required": [
          "customer_id"
        ],
        "properties": {
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          }
        }
      },
      "CustomerId": {
        "type": "string",
        "description": "Unique identifier for a customer",
        "example": "SatoshiNakamoto-xUYJbPw9hw",
        "minimum": 1
      },
      "Error": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 500
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A descriptive error message"
          }
        }
      },
      "EthereumAddress": {
        "type": "string",
        "description": "Hex-encoded Ethereum [account or smart contract address](https://ethereum.org/en/developers/docs/accounts/).",
        "format": "hex",
        "pattern": "^0x[a-fA-F0-9]{40}$",
        "example": "0x00000000219ab540356cBB839Cbe05303d7705Fa"
      },
      "EthereumNetwork": {
        "type": "string",
        "description": "Ethereum network",
        "enum": [
          "mainnet",
          "hoodi"
        ]
      },
      "UnauthorizedError": {
        "type": "object",
        "description": "Error response envelope",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Error code",
            "example": 401
          },
          "message": {
            "type": "string",
            "description": "Error Message",
            "example": "A human-readable diagnostic message detailing any authorization failure"
          }
        }
      },
      "EthereumValidatorPublicKey": {
        "type": "string",
        "description": "Public Key of an asymmetric key-pair.",
        "format": "hex",
        "example": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c"
      },
      "EthereumProtocol": {
        "type": "string",
        "description": "Ethereum protocol",
        "enum": [
          "ethereum"
        ]
      },
      "NewConsolidationIntentEthereum": {
        "type": "object",
        "description": "Required data for Ethereum consolidation intent",
        "required": [
          "source_validator",
          "target_validator"
        ],
        "properties": {
          "source_validator": {
            "$ref": "#/components/schemas/EthereumValidatorPublicKey"
          },
          "target_validator": {
            "$ref": "#/components/schemas/EthereumValidatorPublicKey"
          }
        }
      },
      "EthereumConsolidationIntentResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonConsolidateResponse"
          },
          {
            "type": "object",
            "description": "Result of a new consolidation intent request.",
            "required": [
              "protocol",
              "network"
            ],
            "properties": {
              "protocol": {
                "$ref": "#/components/schemas/EthereumProtocol"
              },
              "network": {
                "$ref": "#/components/schemas/EthereumNetwork"
              },
              "ethereum": {
                "$ref": "#/components/schemas/ConsolidationIntentEthereum"
              }
            }
          }
        ]
      },
      "ConsolidationIntentEthereum": {
        "type": "object",
        "description": "Ethereum Consolidation intent response",
        "required": [
          "source_validator",
          "target_validator",
          "contract_address",
          "unsigned_data"
        ],
        "properties": {
          "source_validator": {
            "$ref": "#/components/schemas/EthereumValidatorPublicKey"
          },
          "target_validator": {
            "$ref": "#/components/schemas/EthereumValidatorPublicKey"
          },
          "contract_address": {
            "$ref": "#/components/schemas/EthereumAddress"
          },
          "unsigned_data": {
            "$ref": "#/components/schemas/EthereumUnsignedDataEthereum"
          }
        }
      },
      "EthereumUnsignedDataEthereum": {
        "type": "string",
        "format": "base64",
        "description": "Generated Ethereum unsigned transaction data",
        "example": "0x91eb7c6836583b3f019eeffd4d0663a996d75f61f93567bd38fa36a78e2f57eb9ba338cbb338a55ccf94171cc9895c400000032000000000"
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/ethereum/{network}/consolidation-intents": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EthereumNetwork"
        }
      ],
      "post": {
        "summary": "Generate validator consolidation intent",
        "operationId": "postEthereumCompoundingIntent",
        "tags": [
          "Ethereum"
        ],
        "description": "Generates a signed intent message to consolidate validator balances by transferring\nfunds from a source validator to a target validator. This operation enables balance\nconsolidation and can also upgrade withdrawal credentials from Type 1 (0x01) to Type 2 (0x02).\n\n**Consolidation Types:**\n- **Type 1 to Type 2**: Upgrades a validator from regular withdrawals (0x01) to compounding (0x02)\n- **Type 1 to Type 2**: Consolidates funds from a Type 1 validator to an existing Type 2 validator\n- **Type 2 to Type 2**: Consolidates funds between two Type 2 (compounding) validators\n\n**Key Notes:**\n- Upgrading from Type 1 to Type 2 is **permanent and irreversible**.\n- After Type 2 upgrade:\n  - **Max effective balance (MaxEB)** increases to **2048 ETH**.\n  - **Partial withdrawals** become available for balances **above 32 ETH**.\n- Processing may take **several days** to complete across consensus and execution layers.\n- **Consolidation transfers the entire balance** from source to target validator.\n\n**Prerequisites:**\n- Source validator must be **active or eligible**.\n- Target validator must be **active and valid**.\n- Source validator must **not already** use Type 2 withdrawal credentials (for Type 1 to Type 2 upgrades).\n- No conflicting pending operations (e.g., exits, withdrawals).\n\n**Costs & Timing:**\n- Consolidation requires on-chain transaction; gas fees apply and execution may take hours or days.\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewConsolidationIntentEthereum"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Intent created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EthereumConsolidationIntentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/NoValidatorsError"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Ethereum",
      "description": "Ethereum endpoints"
    }
  ]
}
```