Skip to main content

Credit Cost

1 per minute

Processing

Realtime
  • GoldRush-native: No wss://api.hyperliquid.xyz/ws equivalent.
  • Pass builder (string) for a single builder or addresses (string[]) for many. aggregateByTime optional.
  • Live-only: No historical snapshot on subscribe. For windowed history, use the Info API builderFillsByTime.
  • Same per-fill shape as userFills, plus builder and builderFee on every entry; channel name in messages is builderFills.
Subscribe to one builder address (builder) or many (addresses) and receive every fill routed through those builders as they execute, batched per block as [address, fill] tuples. Each fill carries the matched builder address and the corresponding builderFee.

Endpoint

wss://hypercore.goldrushdata.com/ws?key=<GOLDRUSH_API_KEY>
key
string
required
Your GoldRush API key. Passed as a query parameter at connection time - no Authorization header is used.

Subscribe

Send this JSON message after the connection is established. Provide either builder (single address) or addresses (array of addresses).
method
string
required
Always "subscribe".
subscription
object
required

Example

wscat -c "wss://hypercore.goldrushdata.com/ws?key=$GOLDRUSH_API_KEY"

> {"method":"subscribe","subscription":{"type":"builderFills","builder":"0xb84168cf3be63c6b8dad05ff5d755e97432ff80b"}}

Unsubscribe

Send the same subscription body with method: "unsubscribe":
{
  "method": "unsubscribe",
  "subscription": {
    "type": "builderFills",
    "builder": "0xb84168cf3be63c6b8dad05ff5d755e97432ff80b"
  }
}
Unsubscribe matches subscriptions by exact body. A subscription created with builder: "0xAAA" is a different subscription from one created with addresses: ["0xAAA"], even if they target the same builder. To narrow a multi-builder set, unsubscribe the original list in full, then resubscribe with the smaller list.

Streamed message

Each push has channel: "builderFills" and a fills array of [address, fill] tuples. The first element of each tuple is the trader who executed the fill; the fill object carries the trade details, including the builder it was routed through and the builderFee earned.
{
  "channel": "builderFills",
  "fills": [
    [
      "0x742d35cc6634c0532925a3b844bc9e7595f7f2e2",
      {
        "coin": "ETH",
        "px": "2150.5",
        "sz": "1.5",
        "side": "B",
        "time": 1704067200000,
        "startPosition": "1.5",
        "dir": "Open Long",
        "closedPnl": "125.5",
        "hash": "0xabc...def",
        "oid": 12345678,
        "crossed": false,
        "fee": "2.5",
        "tid": 87654321,
        "feeToken": "USDC",
        "twapId": null,
        "builderFee": "0.1",
        "builder": "0xb84168cf3be63c6b8dad05ff5d755e97432ff80b"
      }
    ]
  ]
}
channel
string
Always "builderFills".
fills
array<[string, object]>
Tuples of [address, fill]. The address is the trader who placed the order; the fill object carries the trade details plus builder-attribution fields.

Errors

A missing or malformed builder/addresses field returns an error message on the same channel:
{ "channel": "error", "data": "subscription builderFills requires a 'builder' field" }

allFills

stream every fill on HyperCore in real time for global market analytics and cross-wallet order-flow…

liquidationFills

stream a global, market-wide feed of every liquidation fill on HyperCore.

userFills

stream real-time trade fills for one or more wallets as they execute on HyperCore.
Last reviewed: 2026-06-19