Skip to main content
Zodia Custody enables you to stake and manage ETH validators directly through the Digital Asset Service Desk API, alongside dashboard and validator reporting endpoints to track balances and rewards. This guide covers ETH staking; for SOL staking, see SOL Staking.

Validator Types

Execution-layer tips and MEV rewards are always paid directly to the fee recipient wallet set at validator creation, regardless of validator type.

Validator Status Reference

See ETH Validator Statuses in the Status Reference section for the full list of validator statuses.

Provider Support Matrix

Staking Operations

Every staking operation is submitted the same way as any other Digital Asset Service Desk product: create the instruction with POST /v3/api/servicedesk/create and a {"serviceId": ..., "payload": ...} body, then submit, confirm and approve it following the same steps described in Signing the Payload and demonstrated end-to-end in Wallet Creation. What follows is what’s specific to each staking operation; see Products & Services for the exact payload template of each one.

Stake (0x0020-008)

Staking ETH creates a new validator. Set isPectra to true to create an Auto-Compounding (0x02) validator, funded with an amount anywhere between 32 and 2048 ETH, or set it to false to create a Regular Payout (0x01) validator instead. Regular Payout validators are always funded with exactly 32 ETH, so amount isn’t required for them.

Unstake (0x0020-009)

To unstake, list the validators you want to exit by their public keys in unstakeValidators. This is required for both validator types: unlike the platform UI, which lets you specify a count of Regular Payout validators to unstake, the API always expects you to name them explicitly. Once the service request is completed, Zodia broadcasts a Pre-Signed Exit Transaction (PSET) for each selected validator. From there, the validator’s status moves through EXIT_BROADCAST, then ACTIVE_EXITING, and finally EXITED_UNSLASHED — it can take up to an hour to move past EXIT_BROADCAST.

Top-up (0x0020-036)

Top-up adds ETH to an existing Auto-Compounding (0x02) validator. The target validatorAddress must already be active, and the amount you add must be at least 1 ETH without pushing the validator’s total balance above the 2048 ETH cap.

Partial Withdrawal (0x0020-037)

Partial Withdrawal lets you pull ETH out of an active 0x02 validator without exiting it. Two conditions apply: the validator must have been active for at least 256 epochs, and the amount withdrawn must leave at least 32 ETH behind.

Consolidation and Transition (0x0020-040)

This single operation covers two related moves, distinguished by whether source and destination are the same validator. Consolidation merges one or more validators into another: source differs from destination, source can be either validator type, and destination must already be an active 0x02 validator. You can consolidate several sources into the same destination, or target multiple destinations within a single service request. Transition converts a validator in place: source and destination are the same validator, which must be a 0x01 validator being upgraded to 0x02. Each migrations entry describes one of these moves, and a single request can carry between 1 and 100 of them. (You may still see the field called sourceValidators in older integrations — it’s accepted as an alias, but migrations is the name to use going forward.) Because each entry needs its own signature, a service request with more than one migrations entry produces more than one instruction to sign: v3/api/servicedesk/pending returns an array rather than a single object in that case, and all of them are signed and submitted together in a single v3/api/servicedesk/approve call. See Multiple pending instructions for a single service request for the exact request shape. After any of the operations above, use Get ETH Staking Dashboard and List ETH Validators to track balances, rewards, and validator status.

FAQs

What’s the difference between Stake and Top-up?

Stake creates a new validator. Top-up adds ETH to an existing Auto-Compounding (0x02) validator without creating a new one.

Can I unstake a Regular Payout (0x01) validator?

Yes. The API always requires you to supply the validator’s public key explicitly, for both validator types — unlike the platform UI, which also allows specifying a count of validators to unstake for Regular Payout validators.

How long does staking, unstaking, or consolidation take?

Timings depend on network conditions and the specific operation (activation, exit, consolidation, transition, top-up, or partial withdrawal). Use the Get ETH Staking Dashboard or List ETH Validators endpoints, and validator status transitions, to track progress rather than relying on fixed timings.

Contact

If you’re a Zodia client and want to learn more about this feature or enable it, contact our customer service team. Email us at customerservice@zodia.io. We’re here to answer questions, provide more details, or help activate the feature. Our team is ready to assist you with quick and effective support.