# User position RPC calls

Endpoint reference for the 1delta API. Index: https://docs.1delta.io/llms.txt · every endpoint: https://docs.1delta.io/llms-full.txt

---

### GET /v1/data/lending/user-positions/rpc-call

- operationId: `user-position-rpc-calls`
- docs: https://docs.1delta.io/1delta-api/user-position-rpc-calls/
- markdown: https://docs.1delta.io/1delta-api/user-position-rpc-calls.md
- tags: User Positions

User position RPC calls

Prepares raw JSON-RPC calls (using multicall3 aggregate3) for fetching user lending positions on a single chain. Returns an `rpcCallId` and an array of `rpcCalls` that the integrator executes against their own RPC provider. The raw responses are then submitted to `/parse` together with the `rpcCallId`.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `account` | query | string | yes | EVM account address (0x-prefixed, 40 hex chars) |
| `chain` | query | string | yes | Chain ID to query |
| `lenders` | query | string | no | Comma-separated lender IDs to filter by. If omitted, all supported lenders for the chain are included. See the `LenderId` schema for the full set of accepted values. |
| `batchSize` | query | integer | no | Max number of sub-calls per multicall batch |
| `blockTag` | query | string | no | Block tag for the RPC calls |

**Response `200`** — Prepared RPC calls with a context ID for parsing

| Field | Type | Description |
| --- | --- | --- |
| `success` | true |  |
| `data` | object |  |
| `data.data` | object | Informational payload. `null` when the endpoint only builds calldata. |
| `data.data.rpcCallId` | string | Unique ID referencing the server-side cached context. Pass this to /parse together with the raw responses. Valid for 5 minutes. |
| `data.data.rpcCalls` | object[] | Ordered list of JSON-RPC calls to execute against the target chain RPC. Each call uses multicall3 aggregate3. |
| `data.data.rpcCalls[].method` | string | JSON-RPC method name |
| `data.data.rpcCalls[].params` | any[] | JSON-RPC parameters (call object and block tag) |
| `actions` | null |  |

**Example response**

```json
{
  "success": true,
  "data": {
    "data": {
      "rpcCallId": "string",
      "rpcCalls": [
        {
          "method": "eth_call",
          "params": []
        }
      ]
    }
  }
}
```

**Response `400`** — Validation error

**Response `429`** — Rate limited. Unauthenticated callers share a per-IP budget; send an `x-api-key` header to lift it. Retry with exponential backoff.

**Response `500`** — Unexpected server error. Safe to retry with backoff.

**Response `502`** — An upstream data source or protocol origin failed (`error.code` is `ORIGIN_FAILED`). `error.details` carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.
