Staking: ETH support now live via API
Release Details
Release Date: May 21, 2026
Summary
zerohash has launched staking, starting with Ethereum. Platforms can now enable users to stake ETH end-to-end through the API, covering discovery, execution, monitoring, rewards, and unstaking. SOL is targeted for Q3 2026, with additional assets to follow.
Staking unlocks a new revenue stream and engagement surface for platforms. Users earn rewards on ETH they already hold, and platforms participate without standing up validator infrastructure or managing on-chain staking operations.
Please refer to the full Staking guide here: https://docs.zerohash.com/docs/staking
What's new
- New
/stakesAPI surface for submitting (POST /stakes), canceling pre-broadcast (POST /stakes/{stake_id}/cancel), monitoring (GET /stakes/{stake_id}/status), and unstaking (POST /stakes/unstake) - Discovery endpoints: GET /assets?staking_enabled=true for stakeable assets, GET /assets/{asset}/staking_info for estimated APY, activation time, and unstaking period
- Portfolio and rewards: GET /stakes/{participant_code} for portfolio overview, GET /stakes/{participant_code}/rewards for reward history
- Three account types to track lifecycle state, queryable via GET /accounts?account_type={type}: available (tradeable/withdrawable),
collateral(pending activation or unstaking),staked(actively earning) - Real-time webhooks across the full lifecycle:
stake.submittedthrough stake.staked, the unstake counterparts, andstaking_reward.receivedfor reward distributions - One-time terms acceptance per participant enables staking across all supported assets
Lifecycle and Balance Flow
Stakes move Submitted → Broadcasted → Confirmed → Staked, with Canceled and Failed as terminal stake states.
Unstakes follow Submitted → Broadcasted → Confirmed → Unstaked, with Canceled and Failed as terminal unstake states.
Cancellation is only possible before broadcast.
Funds transition available → collateral → staked when activating, and staked → collateral → available when unstaking. Only available balances can be traded, transferred, or withdrawn.
The activation queue is worth flagging upfront in any user-facing flow. ETH stakes can take 1-4 weeks to start earning, and the unstaking period adds waiting time on the way out. Clear expectations at confirmation prevent most of the support volume platforms typically see on staking products.
Prerequisites
KYC verification complete, staking permitted in the participant's jurisdiction, and staking terms accepted. All /stakes calls are blocked until terms are accepted.
Please note that at this time, staking is prohibited in the following states: CA, MD, NJ, WI, and WA.
Implementation Notes
- Pair webhooks with polling on GET /stakes/{stake_id}/status; webhooks are the primary signal, polling covers delivery gaps
- Acknowledge webhooks with 200 OK, process asynchronously, and implement idempotency using
distribution_idfor reward events andstake_id/unstake_id+statusfor stake and unstake events - Rewards accrue until an unstake reaches the terminal unstaked state
- Suppress staking UI entirely for participants in restricted jurisdictions
- Common validation errors:
TERMS_NOT_ACCEPTED,INSUFFICIENT_BALANCE,JURISDICTION_RESTRICTED; each returns auser_messagesuitable for display
Quick Reference
Essential Endpoints:
- Discover stakeable assets: GET /assets?staking_enabled=true
- Validate available balance: GET /accounts?account_type=available
- Check staking parameters: GET /assets/{asset}/staking_info
- Verify terms acceptance: GET /participant/{participant_code}
- Update terms acceptance: PATCH /participants/customers/{participant_code}
- Submit stake: POST /stakes
- Cancel pending stake: POST /stakes/{stake_id}/cancel
- Monitor stake status: GET /stakes/{stake_id}/status
- View portfolio: GET /stakes/{participant_code}
- Track rewards: GET /stakes/{participant_code}/rewards
- Submit unstake: POST /stakes/unstake
- Cancel pending unstake: POST /stakes/unstake/{unstake_id}/cancel
- Monitor unstake status: GET /stakes/unstake/{unstake_id}/status
Support and Resources
Please contact your dedicated Relationship Manager for:
- Frontend standards and implementation requirements
- Sample UX designs and the UX research report
- Setting your platform fee
- User education materials and user-facing FAQs
- Any additional integration support