curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"address": "<string>",
"metrics": {
"total_orders": 123,
"cancel_rate": 123,
"fill_rate": 123,
"order_to_trade_ratio": 123,
"ioc_ratio": 123,
"post_only_ratio": 123,
"tpsl_ratio": 123,
"trigger_order_ratio": 123,
"unique_coins_traded": 123,
"uses_tpsl": true,
"uses_builder": true,
"top_builder": "<string>",
"avg_order_size_usd": 123,
"max_order_size_usd": 123,
"median_cancel_speed_ms": 123,
"active_hours": 123,
"total_fills": 123,
"total_volume_usd": 123,
"maker_ratio": 123,
"long_short_ratio": 123,
"buy_volume_usd": 123,
"sell_volume_usd": 123,
"total_fees_usd": 123,
"realized_pnl_usd": 123,
"liquidation_count": 123,
"max_single_fill_usd": 123,
"unique_fill_coins": 123,
"uses_twap": true,
"twap_fill_ratio": 123,
"uses_cloid": true,
"cloid_ratio": 123,
"uses_priority_gas": true,
"total_priority_gas_paid": 123,
"total_builder_fees_paid": 123
},
"period": "24h"
},
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>",
"has_more": true,
"symbol": "<string>",
"venue": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"param": "limit",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05",
"success": false
}{
"code": 401,
"error": "Missing authentication credentials. Provide X-API-Key header or Bearer token.",
"error_code": "unauthorized",
"request_id": "71ed4b6f-63ef-4ae1-a123-07ffa47c1c14",
"success": false
}{
"code": 404,
"error": "No data found for 0x0000000000000000000000000000000000000001",
"error_code": "not_found",
"request_id": "01883301-c6eb-4b06-9f0e-cd568ec81309",
"success": false
}{
"code": 429,
"error": "Rate limit exceeded"
}Get HIP-3 wallet profile
0xArchive API reference for Get HIP-3 wallet profile. Includes authentication, parameters, response shape, examples, and route-safe implementation notes.
curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/hyperliquid/hip3/wallets/{address}/profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"address": "<string>",
"metrics": {
"total_orders": 123,
"cancel_rate": 123,
"fill_rate": 123,
"order_to_trade_ratio": 123,
"ioc_ratio": 123,
"post_only_ratio": 123,
"tpsl_ratio": 123,
"trigger_order_ratio": 123,
"unique_coins_traded": 123,
"uses_tpsl": true,
"uses_builder": true,
"top_builder": "<string>",
"avg_order_size_usd": 123,
"max_order_size_usd": 123,
"median_cancel_speed_ms": 123,
"active_hours": 123,
"total_fills": 123,
"total_volume_usd": 123,
"maker_ratio": 123,
"long_short_ratio": 123,
"buy_volume_usd": 123,
"sell_volume_usd": 123,
"total_fees_usd": 123,
"realized_pnl_usd": 123,
"liquidation_count": 123,
"max_single_fill_usd": 123,
"unique_fill_coins": 123,
"uses_twap": true,
"twap_fill_ratio": 123,
"uses_cloid": true,
"cloid_ratio": 123,
"uses_priority_gas": true,
"total_priority_gas_paid": 123,
"total_builder_fees_paid": 123
},
"period": "24h"
},
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>",
"has_more": true,
"symbol": "<string>",
"venue": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"param": "limit",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05",
"success": false
}{
"code": 401,
"error": "Missing authentication credentials. Provide X-API-Key header or Bearer token.",
"error_code": "unauthorized",
"request_id": "71ed4b6f-63ef-4ae1-a123-07ffa47c1c14",
"success": false
}{
"code": 404,
"error": "No data found for 0x0000000000000000000000000000000000000001",
"error_code": "not_found",
"request_id": "01883301-c6eb-4b06-9f0e-cd568ec81309",
"success": false
}{
"code": 429,
"error": "Rate limit exceeded"
}X-API-Key with this request. See REST authentication.Shared request rules
Shared request rules
Machine schema
Machine schema
Authorizations
API key for authentication. Get yours at https://0xarchive.io/dashboard
Path Parameters
Wallet address: 0x followed by 40 hex characters (case-insensitive).
^0x[0-9a-fA-F]{40}$"0x31ca8395cf837de08b24da3f660e77761dfb974b"
Query Parameters
Limit the metrics to one HIP-3 market (case-sensitive, e.g., xyz:XYZ100). Omit for all HIP-3 markets.
"xyz:XYZ100"
Lookback window in hours, from 1 to 168 (7 days). Larger values are capped at 168.
1 <= x <= 168Response
Wallet behavioral metrics
true
Hide child attributes
Hide child attributes
Wallet address, lowercase.
Behavioral metrics for one wallet. Ratios run from 0 to 1 unless noted; USD values use fill or order price times size.
Hide child attributes
Hide child attributes
Orders placed.
Share of orders canceled.
Share of orders filled.
Orders placed per fill (0 when there are no fills).
Share of orders that are immediate-or-cancel.
Share of orders that are post-only.
Share of orders that are position TP/SL orders.
Share of orders that are trigger orders.
Markets with orders.
True when the wallet placed any position TP/SL order.
True when any order went through a builder.
Builder address with the most orders. Omitted when no order used a builder.
Average order notional in USD.
Largest order notional in USD.
Median time from placement to cancel, in milliseconds.
Hours with at least one order.
Fills.
Fill volume in USD.
Share of fill volume that was maker volume.
Buy volume divided by sell volume (0 when there is no sell volume). Not bounded by 1.
Buy fill volume in USD.
Sell fill volume in USD.
Fees paid, net of rebates.
Realized PnL from closing fills.
Fills that were liquidations.
Largest single fill in USD.
Markets with fills.
True when any fill came from a TWAP.
Share of fills that came from a TWAP.
True when any fill carried a client order ID.
Share of fills that carried a client order ID.
True when any fill paid priority gas.
Priority gas paid.
Builder and deployer fees paid.
Lookback window that was applied, for example 24h.
"24h"
Response metadata
Hide child attributes
Hide child attributes
Number of records returned
Cursor for pagination (timestamp). Use this value as the cursor parameter to fetch the next page of results.
Unique request ID for support
Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
Present on cursor-paged routes: true when another page exists. next_cursor is present exactly when it is true.
Present on per-symbol routes: the symbol the response covers.
Present on per-symbol routes: the venue the response covers, for example hyperliquid or hip3.
Was this page helpful?