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

# React Native and Hermes

> Use altude-js in React Native without Node.js Buffer or WebSocket polyfills.

`@altude/core` and `@altude/gasstation` publish dedicated `react-native` entrypoints. Metro selects them through the package export condition.

## Install

```bash theme={null}
npm install @altude/gasstation @altude/core
```

Use the same public imports as other runtimes:

```typescript theme={null}
import { AltudeGasStation } from '@altude/gasstation'

const gasStation = new AltudeGasStation({
  apiKey: runtimeConfig.altudeApiKey,
  network: 'devnet',
})

await gasStation.init()
```

## Compatibility behavior

* HTTP RPC clients initialize without Node.js `Buffer`
* Transaction-building paths avoid `DOMException` assumptions
* Gill's React Native entrypoint is selected instead of its Node/WebSocket build
* RPC subscriptions initialize only when a subscription-dependent property is accessed

<Warning>
  Do not add a Metro `extraNodeModules` alias that forces the Node.js Gill package. Doing so can reintroduce `ws`, `Buffer`, and other Node-only dependencies.
</Warning>

## Subscriptions

HTTP methods work with the React Native entrypoint. Accessing `rpcSubscriptions` still requires WebSocket capabilities from the target runtime.

```typescript theme={null}
const rpcClient = await gasStation.getRpcClient()

// Only access this when the runtime provides the WebSocket support Gill expects.
const subscriptions = rpcClient.rpcSubscriptions
```
