> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://sdk.railnet.org/api/mcp` to find what you need.

# useConduitPosition

Reads an account's share balance in a conduit and its value in the underlying asset.

## Import

```ts twoslash
import { useConduitPosition } from '@railnetorg/railnet-sdk/react'
```

## Usage

```tsx
import { useConduitPosition } from '@railnetorg/railnet-sdk/react'

function Position() {
  const { data, isLoading, error } = useConduitPosition({
    conduit: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    account: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
  })

  if (isLoading) return <div>Loading position...</div>
  if (error) return <div>Error: {error.message}</div>

  return (
    <div>
      <p>Shares: {data?.shares.toString()}</p>
      <p>Assets: {data?.assets.toString()}</p>
    </div>
  )
}
```

### With Connected Account

```tsx
import { useAccount } from 'wagmi'
import { useConduitPosition } from '@railnetorg/railnet-sdk/react'

function MyPosition() {
  const { address } = useAccount()

  const { data, isLoading } = useConduitPosition({
    conduit: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    account: address,
  })

  if (!address) return <div>Connect your wallet</div>
  if (isLoading) return <div>Loading...</div>

  return (
    <div>
      <p>Shares: {data?.shares.toString()}</p>
      <p>Assets: {data?.assets.toString()}</p>
    </div>
  )
}
```

## Returns

```ts
UseQueryResult<ConduitPosition, ReadContractErrorType>
```

The shares, their value in the underlying asset, and the block they were read at, as
[`ConduitPosition`](/types/ConduitPosition).

## Parameters

### conduit

* **Type:** `Address`

```tsx
const result = useConduitPosition({
  conduit: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code focus]
  account: '0x...',
})
```

### account

* **Type:** `Address | undefined`

The account to read. The query is disabled while `undefined`.

```tsx
const result = useConduitPosition({
  conduit: '0x...',
  account: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]
})
```

### chainId (optional)

* **Type:** `number`
* **Default:** the connected chain

Chain to read from. See [Query keys](/react/queryOptions#query-keys).

```tsx
import { base } from 'viem/chains'

const result = useConduitPosition({
  conduit: '0x...',
  account: '0x...',
  chainId: base.id, // [!code focus]
})
```

### enabled (optional)

* **Type:** `boolean`
* **Default:** `true`

```tsx
const result = useConduitPosition({
  conduit: '0x...',
  account: '0x...',
  enabled: false, // [!code focus]
})
```

## Query options

[`conduitPositionQueryOptions`](/react/queryOptions) is this read as TanStack Query options, with
`conduitPositionQueryKey` and `conduitPositionQueryPrefix` for invalidation.

```ts
import { conduitPositionQueryOptions } from '@railnetorg/railnet-sdk/react'

await queryClient.prefetchQuery(conduitPositionQueryOptions(client, parameters))
```

## Action

* [`getConduitPosition`](/actions/getConduitPosition)
