Luganodes Docs
TwitterLinkedInMedium
  • Luganodes
  • Native ETH Staking
    • Features
      • Stake
      • Portfolio
  • Custodians
    • Fireblocks
    • Ledger
  • Networks
    • Overview
    • Active Networks
      • Aptos
      • Archway
      • Avail
      • Avalanche
      • bitsCruch
      • Canto
      • Cardano
      • Chiliz
      • Composable Finance
      • Concordium
      • Cosmos
      • Covalent
      • dYdX
      • Eigen Layer
      • Ethereum
      • Elixir
      • Flare
      • Gitopia
      • Kava
      • Kroma
      • Kusama
      • Lukso
      • MultiversX
      • Namada
      • Near
      • Neutron
      • Noble
      • Persistence
      • Polkadot
      • Polygon
      • Radix
      • Ronin
      • River
      • Saga
      • Solana
      • Stride
      • Sui
      • Tenet
      • Tron
      • Ton
      • Vanar
      • Walrus
      • Zilliqa
  • Staking APIs
    • Overview
    • Ethereum
      • Staking Guide
      • Authentication
      • Node Provisioning APIs
      • Consolidation & Switch
      • Exits
      • FAQs
  • TOOLS
    • Hyperliquid
      • Hypermon Monitoring Tool
    • Flare
      • FTSOv2 Monitoring Tool
    • Solana
      • Solana Indexer
    • Berachain
      • Auto BGT Boost Tool
      • Berachain Indexer
Powered by GitBook
On this page
  • What is Consolidation and Switching ?
  • API Reference
  • Consolidation Request
  • Switch Request
  1. Staking APIs
  2. Ethereum

Consolidation & Switch

Simplify your validator operations

PreviousNode Provisioning APIsNextExits

Last updated 1 day ago

What is Consolidation and Switching ?

Pectra EIP 7251 enables consolidation of stake from multiple validators into a single validator with a maximum effective balance of 2048 ETH. This operations moves stake from multiple validators into a single validator without having to exit the validators from the network.

Switching operations are performed to convert validators with 0x01 type withdrawal credentials to 0x02 type withdrawal credentials in order to be eligible for auto-compounding and partial withdrawals.

API Reference

Consolidation Request

POST /validators/consolidate

Submits a consolidate request to generate an unsigned transaction. This transaction needs to be signed by the validator withdrawal address and broadcasted to the network to trigger consolidation.

Headers

Name
Type
Description

api-key*

String

API Key provided by Luganodes

Request Body

Name
Type
Description

sourcePubKey*

String

Public address of source validator

targetPubKey*

String

Public address of target validator

{
    "message": "Consolidation request transaction created successfully",
    "consolidationRequestTrx": {
        "data": "0x9838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973b5a2635ef8d420a0c5d23341c638dd11a500aefa8f7d9fc1f726edbf8163f4e0b727f47faa57b91af50c13e863f13142",
        "value": 1,
        "nonce": 54,
        "gasLimit": 100000,
        "maxFeePerGas": "2297448015",
        "maxPriorityFeePerGas": "84044341",
        "type": 2,
        "chainId": "560048"
    },
    "unsignedTx": "0x02f87883088bb0368405026a358488f0464f830186a08001b8609838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973b5a2635ef8d420a0c5d23341c638dd11a500aefa8f7d9fc1f726edbf8163f4e0b727f47faa57b91af50c13e863f13142c0"
}

Consolidation operations can be performed for one source and one target validator at a time.

Sample Request

curl --location '{{url}}/api/validators/consolidate' \
--header 'api-key: ee908371-d13b-43dd-ae33-b854dade5e9d' \
--data '{
    "sourcePubKey": "0x9838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973",
    "targetPubKey": "0xb5a2635ef8d420a0c5d23341c638dd11a500aefa8f7d9fc1f726edbf8163f4e0b727f47faa57b91af50c13e863f13142"
}'

Types

Consolidate Response Object

Property
Description
Type

message

Transaction generation status

String

consolidationRequestTrx

Transaction Object

Object

unsignedTx

Unsigned transaction object which needs to be signed wiith the validator withdrawal address

String

Switch Request

POST /validators/switch

Submits a switch request to generate an unsigned transaction which needs to be signed with the validators withdrawal address and broadcasted to the network. This operation will convert your validators 0x01 withdrawal credentials to 0x02 type.

Headers

Name
Type
Description

api-key*

String

API Key provided by Luganodes

Request Body

Name
Type
Description

pubKey*

String

Public address of validator

{
    "message": "Validator switch request txn created successfully",
    "switchRequestTrx": {
        "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251",
        "data": "0x9838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f9739838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973",
        "value": "11",
        "nonce": 60,
        "gasLimit": 100000,
        "maxFeePerGas": "2267675245",
        "maxPriorityFeePerGas": "87740461",
        "type": 2,
        "chainId": "560048"
    },
    "unsignedTx": "0x02f88c83088bb03c84053ad02d848729fa6d830186a0940000bbddc7ce488642fb579f8b00f3a5900072510bb8609838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f9739838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973c0"
}

Sample Request

curl --location '{{url}}/api/validators/switch' \
--header 'api-key: ee908371-d13b-43dd-ae33-b854dade5e9d' \
--data '{
    "pubKey": "0x9838f66ccbe1dcd40b31e619c8fdd6aa3ce1e4f8c5ba0eb04776202612d4898f9967de72983711297b1af0868c73f973"
}'

Types

Switch Response Object

Property
Description
Type

message

Transaction generation status

String

switchRequestTrx

Transaction Object

Object

unsignedTx

Unsigned transaction object which needs to be signed wiith the validator withdrawal address

String

Consolidation Request
Sample Request
Types
Consolidate Response Object
Switch Request
Sample Request
Types
Switch Response Object