Hyperfolio API
Hyperfolio API is an onchain HyperEVM portfolio tracking API designed to support builder use cases.
Hyperfolio API
Base URL: https://api.hyperfolio.xyz
You can find the full doc here:https://api.hyperfolio.xyz/docs
Get your protocol integrated by filling in this form
🔑 Authentication
All endpoints require an API key via the x-api-key
header.
How to get an API key? Contact: [email protected]
Rate limits: We provide different plans (beta, standard, pro, admin). Contact us for details.
📚 Endpoints Overview
Wallet
GET /wallet/composition?address=...
Get the list of tokens and the total wallet value for a given address.
Query params:
address
(string, required): Wallet address
Response:
{
"tokens": [
{
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"balance": "0.4204762016985897",
"balance_value": "420476201698589664",
"chain": "eth",
"decimals": 18,
"fxBase": "USD",
"fxPrice": 2585.27,
"fxValue": 1087.05,
"name": "ETH",
"native": true,
"symbol": "ETH",
"tokenLogoUrl": "https://static.debank.com/image/token/logo_url/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/935ae4e4d1d12d59a99717a24f2540b5.png",
"type": "spot",
"usdPrice": 2585.27,
"usdValue": 1087.05
}
],
"totalWalletValue": 1087.05
}
Errors:
400: Missing address parameter
429: Rate limit exceeded
Positions
GET /positions?address=...
Get all DeFi positions by protocol for a given address.
Query params:
address
(string, required): Wallet address
Response:
Copy
{ "id": "hyperlend", "name": "HyperLend", "logo": "/logos/hyperlend.png", "url": "https://app.hyperlend.org", "totalValueUSD": "1234.56", "positions": [ { "id": "hl-1", "protocolId": "hyperlend", "protocolName": "HyperLend", "type": "lending", "positionType": "supplied", "totalValueUSD": "123.45", "healthRatio": 1.23, "version": "v1", "isIsolated": false, "details": { "token": { "address": "0x...", "symbol": "HYPE", "name": "HyperEVM", "image_url": "/hype.png", "decimals": 18, "balance": "1000000000000000000", "formattedBalance": "1.00", "usdValue": "123.45" } } } ] }
GET /positions/protocol?walletAddress=...&protocol=...
Get positions for a specific protocol and address.
Query params:
walletAddress
(string, required): Wallet addressprotocol
(enum, required): One ofhyperlend
,hyperswap_v3
,hyperbeat
,felix
,hyperswap_v2
,hypurrfi
,keiko
,kittenswap
,laminar
,sentiment
,timeswap
,valantis
Response: Same as
/positions
Errors:
400: Missing walletAddress or protocol parameter
429: Rate limit exceeded
NFTs
GET /nfts?address=...
Get NFTs and their total value for a wallet address.
Query params:
address
(string, required): Wallet address
Response:
Copy
{ "nfts": [ { "contract": "0x123...", "tokenId": "1", "name": "CryptoKitty #1", "image": "https://example.com/kitty1.png", "valueUSD": 123.45 } ], "totalNftValue": 123.45 }
Errors:
400: Missing address parameter
429: Rate limit exceeded
Points
GET /points?address=...
Get DeFi points by protocol for a wallet address.
Query params:
address
(string, required): Wallet address
Response:
Copy
[ { "protocolName": "Hyperbeat", "points": 1234 }, { "protocolName": "HyperLend", "points": 5678 } ]
Errors:
400: Missing address parameter
429: Rate limit exceeded
Vaults
GET /vaults?vaultAddress=...&user=...&action=yield
Get earned yield for a vault for a given user. (Only hbUSDT supported for now)
Query params:
vaultAddress
(string, required): Vault addressuser
(string, required): User addressaction
(enum, required): Only"yield"
is supported
Response (midas vault):
Copy
{ "yield": { "totalYield": 1.45, "totalAmountDeposited": 1000, "totalAmountWithdrawn": 400, "currentPositionValue": 600 } }
Errors:
400: Missing vaultAddress, user, or action parameter
429: Rate limit exceeded
🛡️ Security
All endpoints require the
x-api-key
header.Keys are personal and rate-limited.
Never share your API key.
📖 Full API Reference
See the interactive documentation and all response examples at 👉 https://api.hyperfolio.xyz/docs
Contact: [email protected]
For more details on each endpoint, error codes, and advanced usage, refer to the Swagger UI.
Last updated