SSV Transactions
Prepare Withdraw Transaction
Construct a serialized transaction to withdraw a specified amount.
GET
/
api
/
v1
/
eth
/
staking
/
ssv
/
tx
/
withdraw
/
{id}
Prepare Withdrawal Transaction
curl --request GET \
--url https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": null,
"result": {
"list": [
{
"serializeTx": "0x02f902d70580830167...",
"to": "0x338EF19fA2eC0fc4d1277B1307a613fA1FBbc0cb",
"gasLimit": "0",
"data": "",
"value": "0",
"chainId": "0",
"type": "0",
"maxFeePerGas": "0",
"maxPriorityFeePerGas": "0"
}
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
UUID of the SSV request.
Query Parameters
Amount of tokens in ETH to withdraw from the SSV proxy smart contract. The amount must be divisible by 10⁷.
Example:
"1000"
Prepare Withdrawal Transaction
curl --request GET \
--url https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.p2p.org/api/api/v1/eth/staking/ssv/tx/withdraw/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": null,
"result": {
"list": [
{
"serializeTx": "0x02f902d70580830167...",
"to": "0x338EF19fA2eC0fc4d1277B1307a613fA1FBbc0cb",
"gasLimit": "0",
"data": "",
"value": "0",
"chainId": "0",
"type": "0",
"maxFeePerGas": "0",
"maxPriorityFeePerGas": "0"
}
]
}
}