Skip to main content
POST
/
4f8d8f4040bdacd1577bff8058438274
/
info
info (borrowLendUserState)
curl --request POST \
  --url https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "borrowLendUserState",
  "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
}
'
import requests

url = "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info"

payload = {
"type": "borrowLendUserState",
"user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
}
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: 'borrowLendUserState',
user: '0x31ca8395cf837de08b24da3f660e77761dfb974b'
})
};

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' => 'borrowLendUserState',
'user' => '0x31ca8395cf837de08b24da3f660e77761dfb974b'
]),
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\": \"borrowLendUserState\",\n \"user\": \"0x31ca8395cf837de08b24da3f660e77761dfb974b\"\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\": \"borrowLendUserState\",\n \"user\": \"0x31ca8395cf837de08b24da3f660e77761dfb974b\"\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\": \"borrowLendUserState\",\n \"user\": \"0x31ca8395cf837de08b24da3f660e77761dfb974b\"\n}"

response = http.request(request)
puts response.read_body
{}
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.
The info endpoint with type: "borrowLendUserState" retrieves a user’s borrow/lend positions and health status on Hyperliquid. Returns the user’s active token positions, overall health status, and health factor.
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 "borrowLendUserState".
  • user (string, required) — Onchain address in 42-character hexadecimal format.

Response

The response is an object containing:
  • tokenToState (array) — Array of the user’s borrow/lend positions per token.
  • health (string) — Overall health status of the user’s borrow/lend positions (e.g., "healthy").
  • healthFactor (string or null) — Numeric health factor, or null if the user has no active borrow/lend positions.

Example request

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"type": "borrowLendUserState", "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"}' \
  https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/info
from hyperliquid.info import Info

# The Python SDK has no dedicated borrowLendUserState wrapper, so post the
# request type directly through the Info client.
info = Info("YOUR_CHAINSTACK_ENDPOINT", skip_ws=True)

response = info.post(
    "/info",
    {
        "type": "borrowLendUserState",
        "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    },
)
print(response)
import { HttpTransport, InfoClient } from "@nktkas/hyperliquid";

const transport = new HttpTransport({ apiUrl: "YOUR_CHAINSTACK_ENDPOINT" });
const info = new InfoClient({ transport });

const response = await info.borrowLendUserState({
  user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
});
console.log(response);
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

{
  "tokenToState": [],
  "health": "healthy",
  "healthFactor": null
}

Use case

The info endpoint with type: "borrowLendUserState" is useful for:
  • Displaying a user’s borrow/lend positions and balances
  • Monitoring health factor to assess liquidation risk
  • Building lending dashboards that show active supply and borrow positions
  • Implementing risk alerts when health factor drops below a threshold

Body

application/json
type
enum<string>
default:borrowLendUserState
required

Request type

Available options:
borrowLendUserState
user
string
default:0x31ca8395cf837de08b24da3f660e77761dfb974b
required

Onchain address in 42-character hexadecimal format

Response

200 - application/json

User's borrow/lend state including positions and health

The response is of type object.

Last modified on June 24, 2026