info (delegations)
curl --request POST \
--url https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info \
--header 'Content-Type: application/json' \
--data '
{
"type": "delegations",
"user": "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036"
}
'import requests
url = "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info"
payload = {
"type": "delegations",
"user": "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({type: 'delegations', user: '0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036'})
};
fetch('https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info', 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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info",
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([
'type' => 'delegations',
'user' => '0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036'
]),
CURLOPT_HTTPHEADER => [
"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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info"
payload := strings.NewReader("{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}"
response = http.request(request)
puts response.read_body[
{
"validator": "0xb8f45222a3246a2b0104696a1df26842007c5bc5",
"amount": "100233.20588006",
"lockedUntilTimestamp": 1751468638782
}
]Hyperliquid node API
delegations | Hyperliquid info
The info endpoint with type: “delegations” retrieves a user’s active delegations on the Hyperliquid network. Hyperliquid info via Chainstack.
POST
/
4f8d8f4040bdacd1577bff8058438274
/
info
info (delegations)
curl --request POST \
--url https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info \
--header 'Content-Type: application/json' \
--data '
{
"type": "delegations",
"user": "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036"
}
'import requests
url = "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info"
payload = {
"type": "delegations",
"user": "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({type: 'delegations', user: '0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036'})
};
fetch('https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info', 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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info",
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([
'type' => 'delegations',
'user' => '0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036'
]),
CURLOPT_HTTPHEADER => [
"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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info"
payload := strings.NewReader("{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"delegations\",\n \"user\": \"0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036\"\n}"
response = http.request(request)
puts response.read_body[
{
"validator": "0xb8f45222a3246a2b0104696a1df26842007c5bc5",
"amount": "100233.20588006",
"lockedUntilTimestamp": 1751468638782
}
]This method is available on Chainstack. Not all Hyperliquid methods are available on Chainstack, as the open-source node implementation does not support them yet — see Hyperliquid methods for the full availability breakdown.
info endpoint with type: "delegations" retrieves a user’s active delegations on the Hyperliquid network. This endpoint provides a simple list of current delegations showing the validator address, delegated amount, and lock expiration timestamp for each delegation.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
Request body
type(string, required) — The request type. Must be"delegations"to retrieve user’s delegation information.user(string, required) — Address in 42-character hexadecimal format (e.g.,0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036).
Response
The response is an array of delegation objects, each representing an active delegation to a validator:Delegation object structure
Each delegation object in the array contains:validator(string) — The validator’s address in 42-character hexadecimal format.amount(string) — The amount of tokens delegated to this validator.lockedUntilTimestamp(number) — Timestamp (in milliseconds) until which the delegation is locked.
Example request
curl -X POST \
-H "Content-Type: application/json" \
-d '{"type": "delegations", "user": "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036"}' \
https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info
from hyperliquid.info import Info
info = Info("YOUR_CHAINSTACK_ENDPOINT", skip_ws=True)
delegations = info.user_staking_delegations("0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036")
print(delegations)
import { HttpTransport, InfoClient } from "@nktkas/hyperliquid";
const transport = new HttpTransport({ apiUrl: "YOUR_CHAINSTACK_ENDPOINT" });
const info = new InfoClient({ transport });
const delegations = await info.delegations({
user: "0x2ba553d9f990a3b66b03b2dc0d030dfc1c061036",
});
console.log(delegations);
Use your own endpoint in your code. The code examples use a placeholder Chainstack endpoint (YOUR_CHAINSTACK_ENDPOINT) — replace it with your own Hyperliquid node endpoint from the Chainstack console. The curl above uses a shared public endpoint for quick checks only; do not use it in production.
Example response
[
{
"validator": "0x5ac99df645f3414876c816caa18b2d234024b487",
"amount": "12060.16529862",
"lockedUntilTimestamp": 1735466781353
},
{
"validator": "0x1234567890abcdef1234567890abcdef12345678",
"amount": "5000.0",
"lockedUntilTimestamp": 1735556781353
}
]
Use case
Theinfo endpoint with type: "delegations" is essential for applications that need to:
- Display active delegations: Show users their current validator delegations and amounts
- Track delegation amounts: Monitor how much is delegated to each validator
- Check lock periods: Display when delegations will become available for undelegation
- Portfolio overview: Provide a simple view of delegation distribution across validators
- Validator management: List which validators a user has delegated to
- Delegation planning: Help users understand their current delegation commitments
- Lock time monitoring: Track when delegations expire and become withdrawable
delegatorSummary for comprehensive staking portfolio management on the Hyperliquid network.Body
application/json
Last modified on June 24, 2026
Was this page helpful?