入门指南
Obol接口提供了ETH在Obol上部署Cluster和生成Deposit数据相关的API,目前针对ETH在Obol上批量部署Validator提供了生成cluster的服务,方便您在系统中集成我们的API来完成ETH Validator部署到Obol上的相关操作。开始使用我们的DVT Staking API在Obol网络上进行质押前,有一些先决条件需要确保顺利设置:
- 最低质押要求:您需要为每个要运行的validator准备最低32个ETH。
- API密钥请求:获取认证令牌开始使用Ebunker staking API。
- FeeRecipientAddress:为了在Obol网络上获取激励,需要Ebunker提供一个Obol split地址用于拆分分配EL奖励,请注意,此地址必须在创建cluster前联系Ebunker获取,否则会影响您的Boost收益。
Obol API提供了以下接口:
- 创建 Obol cluster:构建一个Obol cluster,生成cluster关联的deposit数据和cluster部署数据。已支持Pectra升级,支持0x02类型的validator生成。
- 查询 Obol cluster:查询cluster生成的deposit数据,用来质押validator,单个cluster的数量为1~2000个validator,建议1个cluster生成足够数量的validator,可以激活部分validator,后期有增量继续质押激活剩余的validator即可.
- 取消 Obol cluster:用于取消已生成的obol cluster,请谨慎操作。取消后cluster将不再继续运行,请确保cluster上没有运行validator。
步骤
1. 创建 Obol cluster
创建一个Obol cluster,生成cluster相关的节点数据和validator池子,cluster的数据是Job任务异步生成的,当cluster查询的状态变更为ready状态后,可通过查询接口获取deposit数据用于在Beacon上质押validator,查询接口会返回所有生成的validator的deposit数据,当您想分批质押和激活validator时,您根据实际需求截取deposit数据,质押激活需要的validator即可。注意:请求参数 feeRecipientAddress
是一个Obol split地址,需要添加Obol项目方的分成地址,请联系Ebunker确认后再生成cluster,feeRecipientAddress
由Ebunker提供给用户
示例请求
curl -X 'POST' \
'https://api-test.ssv.ebunker.io/api/v1/eth/obol/cluster' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"id": "deed7216-21dc-4101-b66e-8f8e46a3a82e",
"validatorsCount": 500,
"amount": 64,
"credentialsType": "0x02",
"withdrawalAddress": "0xaC8583143bD6dCE71D15d26833CaF638A4b925b5",
"feeRecipientAddress": "0xA67a8F15E3b4780cb88e3f1B2702D0357fb2134f"
}'
请求参数
- id — cluster的UUID,后面用于查询cluster数据。
- validatorsCount — 验证者数量。
- amount — 每个验证者的ETH质押数量,32~2048。
- credentialsType — 验证者类型,0x01或者0x02。
- withdrawalAddress — validator的提款地址。
- feeRecipientAddress — 获取EL上奖励的地址。此地址为Ebunker提供的Obol split地址。
示例响应
{
"code": 200,
"message": "Success"
}
2.获取cluster数据
通过cluster id获取cluster数据,当异步任务执行完成,cluster的状态变更为"ready"时,会返回depositData用于用户在Beacon上完成validator质押
示例请求
curl --request GET \
--url https://api-test.ssv.ebunker.io/api/v1/eth/obol/cluster?id=deed7216-21dc-4101-b66e-8f8e46a3a82e \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
请求参数
- id — cluster的UUID,用于查询cluster数据。
示例响应
{
"code": 200,
"message": "Success",
"result": {
"id": "deed7216-21dc-4101-b66e-8f8e46a3a82e",
"amount": 32,
"credentialsType": "0x01",
"validatorsCount": 1,
"withdrawalAddress": "0xaC8583143bD6dCE71D15d26833CaF638A4b925b5",
"feeRecipientAddress": "0xA67a8F15E3b4780cb88e3f1B2702D0357fb2134f",
"status": "ready",
"depositData": [
{
"pubkey": "866b5ce06ffae156595f287c51423251ea118bb97dcc0231a777bf849b01103faf11757b1c18aa974e8c804047541a2b",
"withdrawal_credentials": "010000000000000000000000ac8583143bd6dce71d15d26833caf638a4b925b5",
"amount": 32000000000,
"signature": "8b7fdf95776f8adea1450499593c7c2dec44e70ea378c5fbe62fe1ee7d2534add2491c342e36a8905eedf0169c87972715c2e17b95c4c3a62661e64f6afa4852c4727ec6e575a6a51efab68f5fa5ce4529f86ceb9f69e14cad63ed16ab774813",
"deposit_message_root": "3d66694e657adf5fa5c3d23de7d233e4b395998c16861cc5890b1eabda102a30",
"deposit_data_root": "b72bb42f0dfd8e7a62cf4e7a2bd5f38639f8807555df207f1253e13092e9d42a",
"fork_version": "01017000",
"network_name": "holesky",
"deposit_cli_version": "2.3.0"
}
]
}
}
响应参数
- id — cluster的UUID。
- amount — 每个验证者的ETH质押数量,32~2048。
- credentialsType — 验证者类型,0x01或者0x02。
- validatorsCount — 验证者数量。
- withdrawalAddress — validator的提款地址。
- feeRecipientAddress — 获取EL上奖励的地址。此参地址为Ebunker提供的Obol split地址。
- status - cluster状态:init(cluster初始化) processing(cluster数据Job任务执行中) deploying(cluster节点部署中) ready(cluster完成) cancel(cluster取消)
- depositData - cluster生成的Validator的deposit数据,用于ETH Beacon上的质押
3. 取消cluster
把创建的cluster修改为取消状态,cluster修改为取消状态后Ebunker将不再部署运行该cluster生成的cluster,请谨慎操作。如果cluster的状态是processing说明生成cluster的异步Job任务正在执行,此时不能取消cluster。注意:当您取消cluster时如果生成的cluser信息已经上传了obol,那么您的cluster仍然会显示在Obol的explor里,但请不要使用已取消的cluster去Beacon上质押validator
示例请求
curl --request DELETE \
--url https://api-test.ssv.ebunker.io/api/v1/eth/obol/cluster?id=deed7216-21dc-4101-b66e-8f8e46a3a82e \
--header 'accept: application/json' \
--header 'authorization: Bearer <token>' \
--header 'content-type: application/json' \
'
请求参数
id
— cluster的UUID。
示例响应
{
"code": 200,
"message": "Success",
"result": {
"id": "deed7216-21dc-4101-b66e-8f8e46a3a82e",
"validatorsCount": 1,
"withdrawalAddress": "0xaC8583143bD6dCE71D15d26833CaF638A4b925b5",
"feeRecipientAddress": "0xA67a8F15E3b4780cb88e3f1B2702D0357fb2134f",
"status": "cancel",
"createdTime": "2025-04-11T09:18:36.654Z",
"updatedTime": "2025-04-15T06:38:04.107Z"
}
}
响应参数
- id — cluster的UUID。
- amount — 每个验证者的ETH质押数量,32~2048。
- credentialsType — 验证者类型,0x01或者0x02。
- validatorsCount — 验证者数量。
- withdrawalAddress — validator的提款地址。
- feeRecipientAddress — 获取EL上奖励的地址。此参地址为Ebunker提供的Obol split地址。
- status - cluster状态:cancel(cluster取消)