Incremental Staking / Top-up
Objective
Increase the balance of an existing validator by staking additional ETH, up to a total of 2048 ETH.
Applicable scenarios
- You want to increase the stake of a validator without creating a new one
- The validator is already active and uses
0x02
withdrawal credentials
Endpoints
POST
/api/v1/eth/staking/direct/increment-request/createGET
/api/v1/eth/staking/direct/increment-request/status/{id}
Flow
- Submit the
pubkey
of the target validator and the additionalamount
to stake. - The system verifies:
- The resulting balance will not exceed 2048 ETH
- The validator is compatible with top-ups (uses
0x02
credentials)
- The API returns a transaction payload to be signed and broadcasted.
This method is supported for both Ethereum and SSV validators.
Flow Example
1. Create Increment Request
Send a POST request to /api/v1/eth/staking/direct/increment-request/create.
Example request:
curl --request POST \
--url https://api.p2p.org/api/v1/eth/staking/direct/increment-request/create \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--data '{
"id": "f293e499-9188-4e01-8e7c-621038967b06",
"pubkeys": [
"0x80001...66ea3e185fc"
],
"amountPerValidator": "10000000000",
"withdrawalAddress": "0x368F...f8e4a21"
}'
Example response:
{
"error": null,
"result": true
}
2. Check Status & Retrieve Transaction Data
Send a GET request to /api/v1/eth/staking/direct/increment-request/status/{id}.
Example request:
curl --request GET \
--url https://api.p2p.org/api/v1/eth/staking/direct/increment-request/status/f293e499-9188-4e01-8e7c-621038967b06 \
--header 'Authorization: Bearer <token>'
Example response:
{
"error": null,
"result": {
"serializeTx": "0x02f8ab8b0...",
"value": "10000000000",
"to": "0x00000000219ab540356cBB839Cbe05303d7705Fa",
"gasLimit": "100000",
"data": "0x",
"chainId": 560048,
"type": 2,
"maxFeePerGas": "2111533588",
"maxPriorityFeePerGas": "79385672"
}
}
Updated 4 days ago