TRON
Create Vote Request
Create an unsigned vote transaction for TRX staking.
POST
/
api
/
v1
/
tron
/
{network}
/
staking
/
vote
Create Vote Request
curl --request POST \
--url https://api.p2p.org/api/api/v1/tron/{network}/staking/vote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteCount": 5
}
'import requests
url = "https://api.p2p.org/api/api/v1/tron/{network}/staking/vote"
payload = {
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteCount": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({delegatorAddress: 'TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r', voteCount: 5})
};
fetch('https://api.p2p.org/api/api/v1/tron/{network}/staking/vote', 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/tron/{network}/staking/vote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'delegatorAddress' => 'TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r',
'voteCount' => 5
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.p2p.org/api/api/v1/tron/{network}/staking/vote"
payload := strings.NewReader("{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.p2p.org/api/api/v1/tron/{network}/staking/vote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.p2p.org/api/api/v1/tron/{network}/staking/vote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}"
response = http.request(request)
puts response.read_body{
"error": null,
"result": {
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteAccount": "TXYZ...abc",
"voteCount": 10,
"unsignedTransaction": {},
"unsignedTransactionSerialized": "eyJ0eElEIjoidHJ4SWQifQ==",
"createdAt": "2025-06-03T12:00:00.000Z"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
TRON network:
- `mainnet` — TRON mainnet.
- `testnet-nile` — TRON testnet.
Available options:
mainnet, testnet-nile Body
application/json
Delegator account address used for freezing tokens.
Example:
"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r"
Number of votes to add to the default vote account. Existing votes (including votes for other validators) are preserved and this amount is added on top. Omit this field to delegate all remaining available votes.
Required range:
x >= 1Example:
5
Create Vote Request
curl --request POST \
--url https://api.p2p.org/api/api/v1/tron/{network}/staking/vote \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteCount": 5
}
'import requests
url = "https://api.p2p.org/api/api/v1/tron/{network}/staking/vote"
payload = {
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteCount": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({delegatorAddress: 'TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r', voteCount: 5})
};
fetch('https://api.p2p.org/api/api/v1/tron/{network}/staking/vote', 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/tron/{network}/staking/vote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'delegatorAddress' => 'TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r',
'voteCount' => 5
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.p2p.org/api/api/v1/tron/{network}/staking/vote"
payload := strings.NewReader("{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.p2p.org/api/api/v1/tron/{network}/staking/vote")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.p2p.org/api/api/v1/tron/{network}/staking/vote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"delegatorAddress\": \"TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r\",\n \"voteCount\": 5\n}"
response = http.request(request)
puts response.read_body{
"error": null,
"result": {
"delegatorAddress": "TNDzfERDpxLDS2w1q6yaFC7pzqaSQ3Bg3r",
"voteAccount": "TXYZ...abc",
"voteCount": 10,
"unsignedTransaction": {},
"unsignedTransactionSerialized": "eyJ0eElEIjoidHJ4SWQifQ==",
"createdAt": "2025-06-03T12:00:00.000Z"
}
}