> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# userAbstraction | Hyperliquid Info API

> Hyperliquid userAbstraction: fetch a user's account-abstraction mode.

<CardGroup cols={2}>
  <Card title="Credit Cost"> 1 per call</Card>
  <Card title="Processing"> Realtime</Card>
</CardGroup>

The Hyperliquid info endpoint with `type: "userAbstraction"` is used to fetch a user's account-abstraction mode.

<Tip>
  Estimate your monthly cost for this API using the [Pricing Calculator](/docs/pricing-calculator?endpoint=%2Fapi-reference%2Fhyperliquid-info%2Fuser-abstraction).
</Tip>

<Info>
  * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "userAbstraction", "user": "..."}`.
  * The response body is a **bare JSON string** (for example `"disabled"`), not an object - parse it as a scalar.
  * Values seen in production are `disabled` and `unifiedAccount`; the wider native enum also includes `portfolioMargin`, `default`, and the legacy `dexAbstraction`.
</Info>

Returns the account-abstraction mode configured for a wallet. The response is a single JSON string rather than an object: `disabled` means the account keeps separate perp and spot balances, while `unifiedAccount` means a single balance per asset is shared across all DEXes with cross-margin positions sharing collateral.

User-keyed.

## Endpoint

```
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
```

## Request

<ParamField body="type" type="string" required>
  Always `"userAbstraction"`.
</ParamField>

<ParamField body="user" type="string" required>
  The wallet address (lowercase 0x-prefixed hex).
</ParamField>

### Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://hypercore.goldrushdata.com/info \
    -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "type": "userAbstraction",
      "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
    }'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://hypercore.goldrushdata.com/info", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      type: "userAbstraction",
      user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
    }),
  });

  const mode = await response.json();
  ```

  ```python Python theme={null}
  import os, requests

  response = requests.post(
      "https://hypercore.goldrushdata.com/info",
      headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
      json={
          "type": "userAbstraction",
          "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
      },
  )

  mode = response.json()
  ```
</CodeGroup>

## Response

The body is a **bare JSON string** - not an object - naming the account-abstraction mode.

```json theme={null}
"unifiedAccount"
```

### Field descriptions

<ResponseField name="(response body)" type="string">
  Account-abstraction mode. One of:

  * `disabled` - abstraction disabled; separate perp and spot balances.
  * `unifiedAccount` - single balance per asset across all DEXes; cross-margin positions share collateral.
  * `portfolioMargin` - single portfolio unifying eligible assets with borrowing / LTV.
  * `default` - default mode.
  * `dexAbstraction` - DEX abstraction mode (legacy, being discontinued).
</ResponseField>

*Last reviewed: 2026-07-24*
